Senior Software Engineer - Map(Golang)

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

  1. Guiding the creation and evolution of the architecture of the solution that the team is working on.
  2. Mentoring and coaching other team members in architecture practices and issues.
  3. Ensuring that the solutions will be easy to support by encouraging good design and refactoring to minimize technical debt.
  4. Ensuring that the solutions are integrated and tested on a regular basis, ideally via the practice of continuous integration(CI).
  5. Advise the product owner on technical priorities.
  6. Build architectural spikes.
  7. Mentor team members in organizational architectural guidance and roadmaps

Requirements

  1. Bachelor’s degree in Computer Science or relevant field.
  2. 5+ years of software engineering industry experience.
  3. 2+ years experience with Golang.
  4. Deep understanding of clean architecture concepts.
  5. Deep understanding of Event Driven Software.
  6. Deep understanding of OOP concepts.
  7. Deep understanding of software testing.
  8. 1+ years of team technical vision leading. ( have at least 1 tech lead experience in the CV)
  9. Proficiency with software development methodologies such as Agile.
  10. Exposure to some or all of these technologies: Docker, Kubernetes, Redis, OLTP and OLAP DatabasesTransactional Databases, and monitoring tools
  11. Be able to understand the big data technologies' tradeoffs.

Preferred Qualifications

  • Have ML or big data-related experience
  • Understanding of Domain-Driven Design Approach
  • Familiarity with OpenStreetMap and map-related services
  • Being passionate about Data
  • Have an understanding of OKR planning and be able to contribute to team OKR and missions.