Job: Routing Engineer
You will be the architect of our map's intelligence, building the brain that powers our next-generation navigation experience. We aren't just finding the shortest path; we're creating a deeply personalised, multi-modal, and predictive routing engine from the ground up. This is a unique opportunity to solve complex algorithmic challenges and build a system that learns from every journey, powered by cutting-edge research and high-performance code.
As a key "tree-shaped" member of our team, you will own the core routing engine—from algorithm research and implementation to its deployment as a scalable production service—while also contributing your skills across our engineering stack.
Your primary focus will be designing, prototyping, and implementing state-of-the-art routing algorithms in high-performance C++, Java or Rust.
You will actively follow and apply the latest academic research in routing, inform our product strategy with your technical insights, and help build out our APIs or geospatial data pipelines.
- Designing and building a highly customisable engine, with the choice to extend an existing open-source project (like OTP, Graphhopper, Valhalla) or build our own to meet unique product needs.
- Designing clean, scalable routing APIs and collaborating with backend and mobile engineers to ensure they are robust and easy to use.
- Contributing across the stack by applying your engineering skills to our backend services or geospatial data processing pipelines.
- Creating the foundation for our AI-powered personalisation, where edge weights (speed, cost, preference) are dynamically adjusted for each user.
- Implementing complex multi-modal routing logic that can seamlessly combine walking, public transport, and ride-sharing into a single, optimised journey.
- Solving for modern transport challenges, such as building Electric Vehicle (EV) routing that intelligently incorporates charging stops, battery levels, and station availability.
- Developing and optimising core routing algorithms like A*, Contraction Hierarchies (CH), or other speed-up techniques for continental-scale networks.
- A portfolio or GitHub profile showcasing strong projects in algorithms, data structures, or systems programming.
- Deep proficiency in a high-performance language, specifically C++, Java or Rust.
- Proven experience implementing and working with graph algorithms, particularly for routing (e.g., Dijkstra, A*, CH, Isochrones).
- Familiarity with the challenges of routing on real-world data like OpenStreetMap (OSM).
- Experience in API design and a solid understanding of how to build scalable, low-latency web services.
- A "T-shaped" or "tree-shaped" mentality, with a genuine interest in contributing to different parts of the product.
- 3+ years experience in a professional environment with a demonstrable record of shipping production software