Machine Learning / Optimization Engineer - Flovi
Flovi makes car transportation hassle-free. Flovi is building Europe’s leading car logistics platform. With our technological platform and dynamic driver network, we transport cars with the best combination of speed, quality, and price. Our customers are mainly automotive industry operators, but we serve anyone who needs to transport cars.
Last year, we transported over 110,000 cars. We are growing rapidly: we are expanding our operations in Sweden and aim to open new European countries later this year.
Flovi has an energetic and forward-looking culture. It is a growth organization consisting of three companies with offices in Vantaa, Tampere, Oulu, and Borlänge, Sweden.
We’re hiring a Machine Learning / Optimization Engineer to turn advanced optimization models into production-grade routing services that decide, in real time, the best way to move every car.
We work with a hybrid model. Our offices are located in Vantaa, Oulu, and Tampere, and even though we operate on a hybrid model, we see each other regularly at the offices.
Job description
The role will be built around our significant development project for the first 1.5 years. In this position, you will be able to make your mark from day one and take the capabilities of our Research team to a new level with advanced solutions. You will initially work with an external consultant whose task is to support you in getting the project off the ground. After that, you will take primary responsibility and independently guide the project forward.
Your daily work will include solving challenging problems and developing and promoting new, advanced solutions for our Research team. Although you will not be part of the production team, the results of your work will be directly reflected in the efficiency of their operations. Your work will be guided by a tight but realistic schedule, and you will have the freedom to implement your own visions and methods to achieve your goals.
You will be part of a four-person team of experts consisting of you (AI Lead) and three experts. You will also be an important part of our R&D organization. We believe in the power of experienced professionals and offer an environment where you will have freedom and responsibility.
Your supervisor is based in Oulu and is analytical and thoughtful in nature, but also sociable and approachable. He is known for his ability to support his team, listen actively, and give space for success.
What you’ll do
Design and implement car transport optimization algorithms (vehicle routing, pickup–delivery with time windows, resource constraints).
Build and operate a routing/optimization microservice (Python/FastAPI + gRPC) that integrates with our logistics platform (NestJS/TypeScript).
Implement heuristics like Large Neighborhood Search, warm starts, incremental repair, ensuring fast and stable plans even under thousands of orders.
Model real-world constraints such as capacity, schedules, and service level agreements.
Work closely with the AI Lead, Optimization SME, and AI Architect to make models not just theoretically sound, but also operationally reliable.
Collaborate with backend engineers to define APIs, contracts, and pipelines for smooth integration.
Ensure robustness with regression testing, KPIs, and plan stability metrics.
What we expect from you:
👉🏻 Ability to work efficiently even under tight deadlines and to drive projects forward with determination.
👉🏻 Independent approach and ability to take responsibility and see things through to completion independently.
👉🏻 Ability to solve complex challenges and think creatively.
👉🏻 Strong background in optimization/operations research (VRP, PDPTW, scheduling, or similar).
👉🏻 Proficiency in Python and frameworks like OR-Tools, Pyomo, or similar solvers.
👉🏻 Solid software engineering skills: production APIs, Docker, CI/CD, testing.
👉🏻 Experience modeling real-world logistics constraints (capacity, time windows, schedules).
🤌🏻 Bonus:
Hands-on experience with transport/logistics optimization at scale.
Geospatial/routing data (OSM, PostGIS, OSRM/Valhalla).
C++/Rust for performance-critical components.
How we work
👉🏻 Modern stack: Python (FastAPI, OR-Tools, Pyomo), TypeScript (NestJS), Postgres/PostGIS, Redis, BigQuery, GCP Pub/Sub + Cloud Run.
👉🏻 Event-driven, microservice-oriented, CI/CD from day one.
👉🏻 Decision-driven development: every model and algorithm tied to cost, SLA, and CO₂ outcomes.
Why join us an what we offer you:
👍🏻 Impact: Your solver decides how thousands of cars move across Europe every day.
👍🏻 Challenge: Large-scale real-time routing problems with hard business constraints.
👍🏻 Culture: Modern squads, flat structure, pragmatic tech choices (Python + TypeScript + GCP).
👍🏻Future: Help us evolve from today’s operations to a fully multimodal logistics engine.
💫 Meaningful and impactful work in a growing and increasingly international company.
💫 A clear career path.
💫 An enthusiastic and youthful work community with a good team spirit.
💫 Flexible remote working practices.
💫 Attractive employee benefits, from activity and lunch benefits to leisure accident insurance.
💫 Modern leadership model, for example one-on-one meetings biweekly with yous supervisor
💫 The salary level is approximately €5,500-7,800/month, taking into account your previous experience and skills.
Process:
You can apply by September 28. We will interview applicants on week 39. After that, applicants who make it to the second round will be interviewed by Flovi during week 40 and 41. Candidates who make it to the third round after the client interview will also undergo an online aptitude assessment lasting approximately one hour.
This task will be handled by Choice's Chief Talent & Client Outi Ahorinta. If you would like to hear more about the position or Flovi, you can reach Outi on weekdays between 10 a.m. and 2 p.m. during week 37 at 050 541 3182.
Please note that we do not process applications sent by email.
- Department
- Technology & Engineering
- Locations
- Flovi, Vantaa, Flovi, Oulu, Flovi, Tampere
- Remote status
- Hybrid
- Employment type
- Full-time