Embedded Software Engineer
As an embedded software engineer at Paradromics, you will work in tandem with neuroengineers and electronic designers to realize low-latency, high-fidelity brain machine implants. You'll own the firmware that sits between neural hardware and downstream inference, with a focus on real-time performance, power efficiency, and the reliability standards that come with an implantable medical device.
Responsibilities
- Contribute to multi-component embedded software, with an eye to improving reliability and latency.
- Write performant and understandable Rust.
- Participate in code reviews, design discussions, and work prioritization.
- Develop and maintain automated tests, including unit tests, integration tests, and hardware-in-the-loop tests.
- Profile and optimize firmware for memory usage, power consumption, and real-time performance.
- Write and maintain technical documentation, including architecture decisions, API references, and troubleshooting guides.
Required qualifications
- Proficiency in C++, Go, or Rust.
- Familiarity with embedded systems, including:
- Handling tradeoffs between complexity and cost,
- Working within power and memory constraints,
- Debugging live systems with JTAG or serial,
- Interfacing with engineers at other levels of the stack,
- Experience with build tools like {c,}make.
- Experience building low level software running in Linux.
Preferred qualifications
- Experience interpreting schematics and datasheets.
- Experience building software under an RTOS, or bare metal.
- Experience building software with Yocto and/or Buildroot.
- Understanding of OTA updates and/or secure boot.
- Experience working on projects involving quality management systems, such as medical device development, aviation, finance, defense.