Machine Learning Engineer(Map)

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 (either junior, mid-level, or senior) to join us and help create a set of new services that are customized to our business needs.

About the Role

As a machine learning engineer, you will be responsible for the end-to-end development and deployment of complex models and machine learning pipelines for use cases in the areas of Supervised and unsupervised learning methods and you will be responsible for their constant quality control.


  • Develop machine learning algorithms, and custom data models for cleansing, integrating, and evaluating large datasets.
  • Build scalable and efficient machine learning pipelines and workflows for data processing, feature engineering, model training, deployment, and monitoring.
  • Work closely with Product Managers and Software Engineers.
  • Ability to manage multiple and competing priorities.
  • Excellent written and verbal communication skills in the English language.


  • Master's degree in Computer Engineering(AI), Computer Science, or related science field.
  • Minimum of 5 years of relevant work experience.
  • Experience with Language Models (Embedding, Attention, Name Entity Recognition, Transformers). LLM Experience is a plus.
  • Knowledge of various Machine Learning techniques and algorithms (Supervised, Unsupervised, etc.) and their real-world advantages/drawbacks.
  • Proficiency in Python language and experience with the common data science packages.
  • Experience with relational (SQL) and non-relational databases(No-SQL) like PostgreSQL, MySQL, ClickHouse, and Elastic.
  • Experience with BigData Computing tools like Apache Spark.
  • Familiar with Streaming data processing.
  • Understanding the model build life-cycle, including feature engineering and optimization, model selection and validation, and ongoing model maintenance.
  • Experience with ML Deployment and Management Tools (Docker, Kubernetes, Model Registry and Serving tools, etc.)

Preferred Qualifications

  • Familiar with Search and Ranking Engines
  • Software engineering knowledge like (Object Oriented Programming, Design Patterns, ….) and other programming experience.