We9re hiring an Embedded Software Engineer to architect and build the software inside our next generation of PNT products. You9ll report to our Technical Director and play a lead architecture and development role: evaluating and selecting processors and subsystems, writing embedded code for single-core and multi-core processors, and integrating civilian and military next-generation GNSS receivers, inertial measurement units (IMUs) and other state-of-the-art sensors. There9s no large software organization behind you here, so you9ll own decisions from processor selection to the code that ships, working side by side with our hardware, systems and test engineers. The role is based in Ashburn. We9d prefer you on-site, and a hybrid schedule is possible.
On the Android and Linux side, you9ll customize and integrate Android OS for embedded devices and custom hardware. You9ll work in the Linux kernel, device drivers, the hardware abstraction layer (HAL) and system services to get the performance, functionality and hardware compatibility our platforms need. You9ll lead board bring-up and board support package (BSP) development, develop and optimize drivers for our peripherals, and debug low-level problems from bootloaders to kernel panics and driver failures. You9ll analyze and tune performance and power consumption, and keep the platform secure with secure boot, SELinux and dm-verity.
On the microcontroller side, you9ll write code and state machines for 32-bit microcontrollers on bare metal, an RTOS or Android. You9ll work across SPI, I2C, UART, MIPI, CAN and USB interfaces, GPIOs and interrupts, and integrate wireless links including Bluetooth, Wi-Fi, LoRa and ISM-band radios. You9ll manage power through power islands and power states, core switching and dynamic clocking.
Who You Are
You9re an embedded engineer who wants to own the software from the first register read to the fielded product, and you9d rather build the architecture than inherit it.
You live close to the hardware. You9re at home with a datasheet, a scope and a debug probe. When a new board comes up dead, you want to be the one who finds out why.
You think in systems. Processor choice, power budget, boot time and security all trade against each other. You weigh them together, and you can explain why you picked what you picked.
You9re curious about navigation. You want to know how a GNSS receiver tracks a signal, how an IMU carries the solution when GPS is jammed, and what that means for the code that brings them together. When something is new to you, you read up and keep asking questions until it makes sense.
You don9t stop at the symptom. A kernel panic, a dropped interrupt or a driver that fails one boot in fifty doesn9t get a workaround from you. You chase it to the root cause and write down what you found.
You own it at small scale. There9s no platform team or build engineer to hand work to here. When something is missing, you set it up. When something isn9t working, you say so and fix it.
You care who9s on the other end. Our products go to warfighters who need to know where they are when GPS is jammed or spoofed. The code you write runs in their hands. You take that seriously, and it shows in your work.
Required Experience
Embedded Linux and Android. You9ve customized and integrated Android or embedded Linux on custom hardware, working in the kernel, device drivers, the HAL and system services. Pick a platform and you can walk us through what you changed and why.
Board bring-up and BSPs. You9ve brought up a new board and built or maintained its BSP. You9ve debugged bootloader, kernel and driver failures on real hardware, and you can describe the hardest one and how you found it.
Microcontroller firmware. You9ve written firmware and state machines for 32-bit microcontrollers on bare metal and on an RTOS. You9ve worked with SPI, I2C, UART, MIPI, CAN and USB, GPIOs and interrupts, and you can explain how you handled timing and concurrency.
Processor and architecture decisions. You9ve evaluated and selected processors or subsystems, or made the major architecture calls, for a product that shipped. You can show us the trade-offs you weighed and what you9d change now.
Multi-core, performance and power. You9ve written code for multi-core processors and optimized a system9s performance and power consumption using power states, core switching or dynamic clocking. You can show us the measurements before and after.
U.S. person status. This position requires access to technical data controlled under U.S. export control laws. Applicants must be U.S. persons as defined in the ITAR (22 CFR 120.62): U.S. citizens and nationals, lawful permanent residents, and persons admitted as refugees or granted asylum.
Clearance eligibility. You must be able to obtain and maintain a U.S. government security clearance, which requires U.S. citizenship.
Nice to Haves
GNSS and inertial sensors. You9ve integrated GNSS receivers, IMUs or other navigation sensors, and ideally a military receiver. You understand how their data comes together into position and time.
Wireless protocols. You9ve integrated Bluetooth, Wi-Fi, LoRa or other ISM-band radios on an embedded device.
Platform security. You9ve implemented secure boot, SELinux policy or dm-verity, and kept a device compliant through software updates.
Active clearance. You already hold a current U.S. government security clearance, at any level.
$130,000 - $160,000 a year
TAG is a small, veteran-owned company, and more than a quarter of our team has served. You9ll work directly with leadership and with our hardware and systems engineers, and the software you write will ship in products used in the field.