Architecture and Technical Leadership
Translate product requirements into clear system-level software architecture.
Define software interfaces, data flows, and module boundaries across the embedded stack.
Make and own key technical decisions. Document them clearly for the team.
Identify risks early and drive solutions before they become blockers.
Hands-on Development
Write, review, and maintain production firmware in C/C++ (and Rust where applicable).
Develop drivers, middleware, and application logic for sensor-rich embedded platforms.
Work with Zephyr RTOS across multiple MCU families (STM32, Nordic nRF, ESP32).
Use West and CMake to manage builds, module dependencies, and board configurations.
Debug firmware using JTAG, SWD, logic analyzers, and oscilloscopes.
Integrate and validate sensors including IMUs, accelerometers, and gyroscopes.
Implement and optimize networking stacks - BLE, Thread, and Wi-Fi.
Design and maintain backend communication protocols for reliable edge-to-cloud data transfer.
Test and Quality
Write automated unit and integration tests before or alongside feature code.
Build and maintain HIL (hardware-in-the-loop) and SIL (software-in-the-loop) test frameworks.
Set team standards for test coverage, static analysis, and CI/CD pipelines.
Perform code reviews with a focus on correctness, safety, and long-term maintainability.
Team Leadership
Lead a small team of embedded engineers. Set clear goals and unblock day-to-day work.
Mentor engineers through design reviews, pair programming, and direct feedback.
Collaborate with hardware, systems, and product teams to align on requirements.
Contribute to hiring - interview candidates and help define the team's technical bar.