Embedded Engineer

Ascent Engineering Service
Chicago, IL, United States
about 1 month ago
Apply on www.indeed.com
Prepare application

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Job source

Tech stack

Board Bringup Adobe Flash Application Programming Interfaces (APIs) ARM Architecture Booting (BIOS) CAN Bus Computer Programming Datasheets Software Debugging Multiplexing Device Drivers Embedded Software
+12 more
Firmware Global Positioning Systems (GPS) Hardware Interface Design Joint Test Action (IEEE Standards) Log Analysis Real-Time Operating Systems Universal Asynchronous Receiver/Transmitter File Transfer Protocol (FTP) Serial Peripheral Interface Bare Metal Codebase Lidar

Job description

  • Develop and modify PX4 (NuttX) or ArduPilot (ChibiOS) firmware, including board support packages and hardware definitions for new flight controller targets
  • Write, port, and debug device drivers over UART, I2C, SPI, CAN/DroneCAN, and USB for sensors, rangefinders, radios, gimbals, and payloads
  • Bring up new hardware from bare board to flying vehicle: clocks, power rails, pin muxing, peripheral configuration, and first-boot validation
  • Build, 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)
  • Implement and validate MAVLink message handling and interfaces between the flight controller, companion computers, and ground stations
  • Diagnose 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
  • Conduct bench and flight testing, analyze flight logs and telemetry, and resolve firmware issues found in the field
  • Document hardware interfaces, driver behavior, bring-up procedures, and design decisions

Requirements

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.

This 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.

MUST HAVE PERMANENT RESIDENCE IN US, * Strong C and C++ programming skills in resource-constrained embedded environments

  • Hands-on experience with ARM Cortex-M microcontrollers (STM32 or similar), including peripheral configuration from the datasheet and reference manual
  • Practical experience with UART, I2C, SPI, and CAN - including debugging them on real hardware, not just calling an API
  • Experience flashing and debugging embedded targets over SWD/JTAG, and working with bootloaders and firmware update mechanisms
  • Comfort working in an RTOS or bare-metal context (interrupts, DMA, task scheduling, memory constraints)
  • Experience debugging complex software and hardware interactions with lab instrumentation - oscilloscope, logic analyzer, protocol decoders, and a multimeter as second nature
  • Ability to work independently, take ownership of engineering tasks, and exercise practical engineering judgment, * Experience modifying or contributing to PX4 or ArduPilot codebases, particularly drivers or board configuration
  • Familiarity with MAVLink, autopilot parameters, and flight log analysis
  • Experience with DroneCAN/Cyphal, DShot or other ESC protocols, or PWM/timer-driven peripherals
  • Experience integrating IMUs, barometers, magnetometers, GPS, LiDAR, or camera modules at the driver level
  • Experience building or configuring drones from components, and reading schematics well enough to work with hardware engineers
  • Personal robotics, UAV, or embedded systems projects

What We Value

  • Engineers who build and experiment outside of work
  • Strong ownership and accountability for outcomes
  • Practical, hands-on problem solving
  • Clear communication and collaboration within small teams
  • Curiosity and continuous learning

Apply for this position

This job is hosted externally. Click below to view the full posting and apply.

Apply on www.indeed.com
Prepare application

Good distractions

Talks and stories from around this role — technically off-topic, practically not.

2:17 min

Validating lidar sensor models against real noise

Ulrich Wurstbauer +1 · LIVE

1:29 min

Managing queues using Azure Service Bus Explorer

Radu Vunvulea Radu Vunvulea · World Congress 2022

3:34 min

Augmenting codebases with semantic architectures

Zaak Chalal Zaak Chalal · World Congress 2026 Europe

1:19 min

Advancing autonomous driving capabilities with specialized software talent

Katrin Lehmann Katrin Lehmann +1 · Coffee With Developers

2:08 min

Processing physical environment data with lidar models

Oliver Zimmert · LIVE

3:51 min

Technical skills and collaborative mindsets for mobility engineering roles

Georg Kühberger +1 · LIVE

Videos

See all

Related articles

See all