مهندس ارشد نرم‌افزار (گولنگ)

اسنپ تهران

منتشر شده 14 روز پیش

Job Description

About Snapp:

Snapp is the pioneer provider of ride-hailing mobile solutions in Iran that connects smartphone owners in need of a ride to Snapp drivers who use their private cars to offer transportation services. We are ambitious, passionate, engaged, and excited about pushing the boundaries of the transportation industry to new frontiers and being the first choice of each user in Iran.

About the team:

On the surface, Snapp’s ride-hailing technology may seem simple: a user requests a ride from the app, and a driver arrives to take their destination. Behind the scenes, however, a giant infrastructure consisting of hundreds of services and terabytes of data supports each and every trip on the platform. At the heart of this infrastructure, both map data and services enable the most basic features powering our business. In our early days, we used third-party services such as Google Maps, but these services lack the customizations and localizations that our business needs. Furthermore, there are the usual risks of using third-party services outside Iran and their relatively high costs. The Maps Team at Snapp is looking for Software Engineers to join us and help create a set of new services that are customized to our business needs.

About the role:

Map’s software engineers are a group of people who directly impact the daily lives of more than a million users in Iran. As a software engineer, you are the architect, designer, and coder of your project. You will struggle with lots of open-source projects and contribute back when you can. In addition, you work closely with our engineers to ensure system consistency and improve the user experience. In a nutshell, you will build highly scalable services supporting the enormously growing load of Snapp. We are looking for the type of person who feels uncomfortable when a day goes by without achieving something impactful. Someone who is driven to get things done and views obstacles as an exciting challenge that demands a creative solution.

Responsibilities:

  • Guide the creation and evolution of the architecture of the solution that the team is working on.
  • Mentor and coach other team members in architecture practices and issues.
  • Ensure that the solutions will be easy to support by encouraging good design and refactoring to minimize technical debt.
  • Ensure that the solutions are integrated and tested on a regular basis, ideally via the practice of continuous integration(CI).
  • Advise the product owner on technical priorities.
  • Build architectural spikes.
  • Mentor team members in organizational architectural guidance and roadmaps

Requirements

  • Bachelor’s degree in Computer Sciences, or relevant fields.
  • 5+ years of software engineering industry experience; 2+ years experience with Golang; 1+ years of team technical vision leading (at least 1 tech lead experience in the CV).
  • Proficiency with software development methodologies such as Agile.
  • Deep understanding of clean architecture concepts.
  • Deep understanding of Event Driven Software.
  • Deep understanding of OOP concepts.
  • Deep understanding of software testing.
  • Exposure to some or all of these technologies: Docker, Kubernetes, Redis, OLTP, and OLAP Databases Transactional Databases, and monitoring tools.
  • Able to understand the big data technologies' tradeoffs.

Preferred Qualifications:

  • Have ML or big data-related experience.
  • Understanding Domain-Driven Design.
  • Familiarity with OpenStreetMap and map-related services.
  • Passionate about data.
  • Understanding OKR planning and being able to contribute to team OKR and missions.

برای مشاهده‌ی شغل‌هایی که ارتباط بیشتری با حرفه‌ی شما دارد،