{"schemaVersion":"jobsearcher.job.v1","id":"46136533a4f27b8491f3e3ea","url":"https://jobsearcher.com/jobs/46136533a4f27b8491f3e3ea","canonicalUrl":"https://jobsearcher.com/jobs/46136533a4f27b8491f3e3ea","title":"Embedded Engineer","description":"We are seeking an embedded software engineer to develop and maintain low-level flight software for UAV platforms running PX4 or ArduPilot. This role involves board bring-up, writing and porting device drivers, working directly with MCU peripherals and hardware buses, and getting firmware onto flight controllers reliably and repeatably. The engineer will work at the bottom of the UAV stack — from bootloaders and RTOS internals up to MAVLink-level system behavior — while maintaining a strong focus on reliability and practical field performance.\nThis position requires someone who is equally comfortable in a datasheet, a debugger, and on a bench with a logic analyzer. The ideal candidate enjoys hardware/software boundary problems, can diagnose an issue whether it originates in silicon or in code, and takes ownership of projects from schematic review through flight validation.\nMUST HAVE PERMANENT RESIDENCE IN US\nResponsibilities\nDevelop and modify PX4 (NuttX) or ArduPilot (ChibiOS) firmware, including board support packages and hardware definitions for new flight controller targets\nWrite, port, and debug device drivers over UART, I2C, SPI, CAN/DroneCAN, and USB for sensors, rangefinders, radios, gimbals, and payloads\nBring up new hardware from bare board to flying vehicle: clocks, power rails, pin muxing, peripheral configuration, and first-boot validation\nBuild, flash, and debug firmware and bootloaders using SWD/JTAG probes (J-Link, ST-Link), and maintain reliable field update paths (bootloader flashing, MAVLink FTP, parameter and storage layout)\nImplement and validate MAVLink message handling and interfaces between the flight controller, companion computers, and ground stations\nDiagnose timing, interrupt, DMA, memory, and bus-level issues at the bench using an oscilloscope, logic analyzer (Saleae or similar), CAN bus analyzer, and bench supply with current monitoring\nConduct bench and flight testing, analyze flight logs and telemetry, and resolve firmware issues found in the field\nDocument hardware interfaces, driver behavior, bring-up procedures, and design decisions\nRequired Qualifications\nStrong C and C++ programming skills in resource-constrained embedded environments\nHands-on experience with ARM Cortex-M microcontrollers (STM32 or similar), including peripheral configuration from the datasheet and reference manual\nPractical experience with UART, I2C, SPI, and CAN — including debugging them on real hardware, not just calling an API\nExperience flashing and debugging embedded targets over SWD/JTAG, and working with bootloaders and firmware update mechanisms\nComfort working in an RTOS or bare-metal context (interrupts, DMA, task scheduling, memory constraints)\nExperience debugging complex software and hardware interactions with lab instrumentation — oscilloscope, logic analyzer, protocol decoders, and a multimeter as second nature\nAbility to work independently, take ownership of engineering tasks, and exercise practical engineering judgment\nPreferred Qualifications\nExperience modifying or contributing to PX4 or ArduPilot codebases, particularly drivers or board configuration\nFamiliarity with MAVLink, autopilot parameters, and flight log analysis\nExperience with DroneCAN/Cyphal, DShot or other ESC protocols, or PWM/timer-driven peripherals\nExperience integrating IMUs, barometers, magnetometers, GPS, LiDAR, or camera modules at the driver level\nExperience building or configuring drones from components, and reading schematics well enough to work with hardware engineers\nPersonal robotics, UAV, or embedded systems projects\nWhat We Value\nEngineers who build and experiment outside of work\nStrong ownership and accountability for outcomes\nPractical, hands-on problem solving\nClear communication and collaboration within small teams\nCuriosity and continuous learning","company":"Ascend Engineering","rawCompany":"ascend engineering","city":"Chicago","state":"IL","isRemote":false,"isActive":false,"createdAt":"2026-08-06T10:23:24.206Z","occupations":[{"code":"15-1252.00","title":"Software Developers","slug":"software-developers"},{"code":"15-1299.08","title":"Computer Systems Engineers/Architects","slug":"computer-systems-engineers-architects"},{"code":"17-2072.00","title":"Electronics Engineers, Except Computer","slug":"electronics-engineers-except-computer"}],"industries":[{"code":"334511","title":"Search, Detection, Navigation, Guidance, Aeronautical, and Nautical System and Instrument Manufacturing","slug":"search-detection-navigation-guidance-aeronautical-and-nautical-system-and-instrument-manufacturing"},{"code":"336411","title":"Aircraft Manufacturing","slug":"aircraft-manufacturing"},{"code":"541512","title":"Computer Systems Design Services","slug":"computer-systems-design-services"}],"jobPosting":{"@context":"https://schema.org","@type":"JobPosting","title":"Embedded Engineer","description":"We are seeking an embedded software engineer to develop and maintain low-level flight software for UAV platforms running PX4 or ArduPilot. This role involves board bring-up, writing and porting device drivers, working directly with MCU peripherals and hardware buses, and getting firmware onto flight controllers reliably and repeatably. The engineer will work at the bottom of the UAV stack — from bootloaders and RTOS internals up to MAVLink-level system behavior — while maintaining a strong focus on reliability and practical field performance.\nThis position requires someone who is equally comfortable in a datasheet, a debugger, and on a bench with a logic analyzer. The ideal candidate enjoys hardware/software boundary problems, can diagnose an issue whether it originates in silicon or in code, and takes ownership of projects from schematic review through flight validation.\nMUST HAVE PERMANENT RESIDENCE IN US\nResponsibilities\nDevelop and modify PX4 (NuttX) or ArduPilot (ChibiOS) firmware, including board support packages and hardware definitions for new flight controller targets\nWrite, port, and debug device drivers over UART, I2C, SPI, CAN/DroneCAN, and USB for sensors, rangefinders, radios, gimbals, and payloads\nBring up new hardware from bare board to flying vehicle: clocks, power rails, pin muxing, peripheral configuration, and first-boot validation\nBuild, flash, and debug firmware and bootloaders using SWD/JTAG probes (J-Link, ST-Link), and maintain reliable field update paths (bootloader flashing, MAVLink FTP, parameter and storage layout)\nImplement and validate MAVLink message handling and interfaces between the flight controller, companion computers, and ground stations\nDiagnose timing, interrupt, DMA, memory, and bus-level issues at the bench using an oscilloscope, logic analyzer (Saleae or similar), CAN bus analyzer, and bench supply with current monitoring\nConduct bench and flight testing, analyze flight logs and telemetry, and resolve firmware issues found in the field\nDocument hardware interfaces, driver behavior, bring-up procedures, and design decisions\nRequired Qualifications\nStrong C and C++ programming skills in resource-constrained embedded environments\nHands-on experience with ARM Cortex-M microcontrollers (STM32 or similar), including peripheral configuration from the datasheet and reference manual\nPractical experience with UART, I2C, SPI, and CAN — including debugging them on real hardware, not just calling an API\nExperience flashing and debugging embedded targets over SWD/JTAG, and working with bootloaders and firmware update mechanisms\nComfort working in an RTOS or bare-metal context (interrupts, DMA, task scheduling, memory constraints)\nExperience debugging complex software and hardware interactions with lab instrumentation — oscilloscope, logic analyzer, protocol decoders, and a multimeter as second nature\nAbility to work independently, take ownership of engineering tasks, and exercise practical engineering judgment\nPreferred Qualifications\nExperience modifying or contributing to PX4 or ArduPilot codebases, particularly drivers or board configuration\nFamiliarity with MAVLink, autopilot parameters, and flight log analysis\nExperience with DroneCAN/Cyphal, DShot or other ESC protocols, or PWM/timer-driven peripherals\nExperience integrating IMUs, barometers, magnetometers, GPS, LiDAR, or camera modules at the driver level\nExperience building or configuring drones from components, and reading schematics well enough to work with hardware engineers\nPersonal robotics, UAV, or embedded systems projects\nWhat We Value\nEngineers who build and experiment outside of work\nStrong ownership and accountability for outcomes\nPractical, hands-on problem solving\nClear communication and collaboration within small teams\nCuriosity and continuous learning","datePosted":"2026-08-06T10:23:24.206Z","dateModified":"2026-08-06T10:23:24.206Z","hiringOrganization":{"@type":"Organization","name":"Ascend Engineering","sameAs":"https://jobsearcher.com"},"jobLocation":{"@type":"Place","address":{"@type":"PostalAddress","addressLocality":"Chicago","addressRegion":"IL","addressCountry":"US"}},"identifier":{"@type":"PropertyValue","name":"JobSearcher","value":"46136533a4f27b8491f3e3ea"},"url":"https://jobsearcher.com/jobs/46136533a4f27b8491f3e3ea"}}