Bachelor's degree in Computer Science, Computer Engineering, relevant technical field, or equivalent practical experience.
5 years of experience with low level development (e.g., embedded, high frequency trading, games, scientific computing).
Experience developing software applications using the C++ programming language.
Experience with object-oriented programming, templates, and the Standard Template Library (STL).
Preferred qualifications:
Experience with C and C++ or low-level engineering (e.g., pointers, memory management).
Experience with Rust.
Experience with microcontroller and embedded.
Experience with Python.
Experience with Bazel.
Responsibilities
Design and develop microcontroller platform modules (e.g., OTA, crash handling, logging, bootloaders, size analysis tooling, kernel development). This will involve low-level C, C++, Rust, occasional assembly, as well as Python-level scripting and test development.
Help define the areas that are most impactful for the team to create by learning about customer needs. These new modules may be written in C++, Rust, Python, Java, or TypeScript as appropriate.
Support client teams to ensure their success. This may at times, include travelling to factories across the ocean to help with bringup (though this is unusual and optional).