Do you have a profound experience level of modern C++? Are you vividly capable of productizing algorithms and intelligently using compute resources as needed? We are developing a software stack that allows rapid prototyping of Augmented Reality applications for automotive use-cases, and turning these prototypes into deployment-ready products running on a car’s embedded hardware. If this sounds like your cup of tea, keep reading..
BASEMARK: AR, automotive & compute/graphics software product company based in Helsinki, 90 employees worldwide, satellite offices in Germany and the US. We are world-class experts in real-time 3D graphics, GPU-compute programming and design.
The situation:
The main responsibility of our team revolves around the Augmented Reality algorithms part of the stack: we develop and productize AR algorithms to use both in the prototyping product and in the deployed to embedded in-car environment product. As the perfect candidate, you don’t need to have AR-domain specific knowledge necessarily, but you must come from a strong general computer science, engineering and software development background.
The main responsibility of our team revolves around the Augmented Reality algorithms part of the stack: we develop and productize AR algorithms to use both in the prototyping product and in the deployed to embedded in-car environment product. As the perfect candidate, you don’t need to have AR-domain specific knowledge necessarily, but you must come from a strong general computer science, engineering and software development background.
Responsibilities:
– help to lead or co-lead our solution development
– solve engineering problems, usually in collaboration with other engineers
– oversee all and sometimes take care of some particular technical aspects of software development.
– help the team to be fully in sync with the solution design
– help the team members to grow as engineers by discussing, conducting high-quality PR reviews, and overall sharing your knowledge in abundance.
– cooperate with other teams and stakeholders to reach the common goal
– help to lead or co-lead our solution development
– solve engineering problems, usually in collaboration with other engineers
– oversee all and sometimes take care of some particular technical aspects of software development.
– help the team to be fully in sync with the solution design
– help the team members to grow as engineers by discussing, conducting high-quality PR reviews, and overall sharing your knowledge in abundance.
– cooperate with other teams and stakeholders to reach the common goal
Key challenges are:
- efficient productization of algorithm prototypes. A domain expert has made a research prototype of some algorithm – you need to help them to turn the proto into product grade implementation while adhering to certain quality & safety requirements; then integrate the productized algo into a suite of other coherently running algorithms.
- efficient use of available compute resources: AR algorithms are compute heavy and many of them have to run concurrently, while embedded SoCs are usually pretty weak.
- efficient code modularization and fast and safe refactoring to accommodate newly learned knowledge.
- challenges include not only things directly related to C++ engineering (though it’s a major part), but other areas that are required to produce a final product: requirements handling, architecture decisions, testing, build systems, CI/CD & whatnot.
Requirements:
– huge total programming experience, out of which at least the last decade+ is in a C++ engineering
– strong understanding and experience with a full software development cycle; git
– strong under-the-hood understanding of C++11/14/17
– a decent ability to program a build system with CMake
– main platforms are Linux/Ubuntu and Windows, hence a good command of primarily bash scripting (+ git-bash quirks) is required.
– good spoken and written English
– huge total programming experience, out of which at least the last decade+ is in a C++ engineering
– strong understanding and experience with a full software development cycle; git
– strong under-the-hood understanding of C++11/14/17
– a decent ability to program a build system with CMake
– main platforms are Linux/Ubuntu and Windows, hence a good command of primarily bash scripting (+ git-bash quirks) is required.
– good spoken and written English
Please send your CV and cover letter to jobs@basemark.com with the subject entitled Senior/Principal C++. We look forward to meeting you!