Embedded Developer
What you’ll doDesign, write, and debug firmware in C and C++ (and Rust where it fits) for microcontrollers and embedded Linux systemsWork with ARM Cortex-M/A, STM32, ESP32, Nordic, TI, NXP, or RISC-V platformsBuild on RTOSes and frameworks such as FreeRTOS, Zephyr, or embedded Linux (Yocto, Buildroot)Write drivers and board support code for sensors, displays, motors, memory, and power managementImplement communication protocols: I2C, SPI, UART, CAN, USB, Ethernet, Bluetooth LE, Wi-Fi, LoRa, and MQTTBring up new boards alongside hardware engineers, using oscilloscopes, logic analyzers, and JTAG/SWD debuggersOptimize for memory, power, real-time deadlines, and reliability on constrained hardwareBuild bootloaders, secure boot, and over-the-air (OTA) update systems that update safely in the fieldCreate automated tests, simulation, and hardware-in-the-loop setups, and run firmware builds through CI/CDApply secure coding practices and help meet safety and compliance standards where they apply (MISRA C, IEC 61508, ISO 26262, IEC 62304, depending on the product)Write specs, design docs, and test plans that the next engineer can pick up and useSupport manufacturing, field issues, and root-cause analysis when real devices misbehaveFind your levelLevel Typical experience What you’ll ownEmbedded Developer I - 0-2 years : Well-scoped firmware features, drivers, and bug fixes, learning our hardware and codebase with a dedicated mentorEmbedded Developer II - 2-5 years : Owning subsystems end to end, leading board bring-up, building test infrastructure, mentoring newer developersSenior Embedded Developer - 5+ years : Architecting firmware platforms, setting standards, leading product-level work, driving safety, security, and OTA strategyPromotion criteria are written down at every level, with regular career conversations. You can grow as a deep technical specialist or toward technical leadership.What you bringMust haveStrong C (and ideally C++) with a solid grasp of pointers, memory, bit manipulation, interrupts, and concurrencyUnderstanding of microcontroller architecture, peripherals, and communication protocolsHands-on hardware experience, whether professional, academic, or personal: you’ve flashed a board and made it do somethingAbility to read schematics and datasheets and use basic lab tools (multimeter, oscilloscope, debugger)Comfort with Git and collaborative developmentA patient, methodical approach to debugging problems you can’t always seeBachelor’s degree in Computer Engineering, Electrical Engineering, Computer Science, or a related field, or equivalent experience. A project that runs on real hardware counts as much as a degree.Authorization to work in the USNice to have (not required)RTOS experience (FreeRTOS, Zephyr, ThreadX) or embedded Linux (Yocto, device trees, kernel drivers)Experience with Bluetooth LE, Wi-Fi, cellular (LTE-M/NB-IoT), or LoRaWANLow-power design and power profiling experienceRust for embedded, or Python for test automation and toolingFamiliarity with MISRA C, static analysis, unit testing frameworks (Unity, Ceedling, GoogleTest), or hardware-in-the-loop testingKnowledge of secure boot, cryptography, and secure OTA updatesExperience with safety or regulated standards (IEC 62304, ISO 26262, DO-178C, IEC 61508)Exposure to motor control, sensor fusion, DSP, or FPGAsIndustry experience in [medical devices, automotive, IoT, industrial automation, consumer electronics, aerospace, robotics, energy, etc.]A portfolio of builds: Arduino, Raspberry Pi, or custom boards, robotics or Formula SAE teams, drones, or open-source firmware contributions