C++ Developer – Data Processing / Map Pipeline
We’re hiring a C++ developer to take over an important internal data pipeline that turns raw map data from external providers into the formats used by our navigation and routing products.
This is not a shiny greenfield role. It’s a hands-on engineering job for someone who is comfortable working with older systems, learning a complex process properly, and improving it step by step.
The pipeline processes very large data sets several times a year. Most of the time the work is about running and maintaining a process that is already in place. When source data changes or older tooling breaks, the job is to debug the issue, fix it properly, and keep the process reliable.
Over time, this person will become the main owner of the map update process.
What you’ll do
- run and maintain recurring map data update processes
- work with large raw data sets from external map providers
- understand and maintain a toolchain written mainly in C and C++
- debug failures in data import and conversion workflows
- learn internal data formats used by our products
- improve legacy tools gradually
- replace older C code with modern C++ where it makes sense
- speed up parts of the pipeline, including with multithreading
- help investigate and add new kinds of data when needed
What we’re looking for
- strong C++ skills
- good understanding of C
- confidence working with legacy code
- solid debugging skills
- a careful, methodical way of working
- willingness to learn a fairly specialized technical domain
- interest in long-term ownership of a core process
Useful but not essential
- experience with data processing pipelines
- experience with performance optimization
- experience with multithreading
- Linux development experience
- GIS, spatial data, or map data experience
- familiarity with shapefiles or projection concepts
What this role is really like
This role will suit someone who likes getting deep into a system, understanding how it works, and making it better over time.
A lot of the work is practical and detail-heavy. Some update cycles will run smoothly. Others will fail because an external provider changed a small detail or because an old tool makes assumptions that no longer hold. That is the job: find the problem, fix it, and make the process more robust for next time.
There is room for cleanup, automation, and performance work, but this is not a role for someone who needs constant novelty or wants to avoid older code.
Onboarding
You would start with simpler tasks: building the tools, running the full process on a known-good data set, and learning the pipeline step by step. From there, you would take on fixes, refactoring, and eventually ownership of the full update process.
This is a long-term role with a meaningful learning curve, and we are ready to invest in the right person.
Required skills experience
Required languages
| English | B2 - Upper Intermediate |
| Ukrainian | C2 - Proficient |