Logo
Extropic

Embedded Software Engineer

Extropic, Boston, Massachusetts, us, 02298

Save Job

Position Overview:

Extropic is seeking a highly skilled

Embedded Software Engineer

with deep experience in both bare-metal firmware development and embedded Linux application design. The ideal candidate should have a strong background working with heterogeneous multi-core RISC‑V or ARM processors (e.g., Cortex‑R5, Cortex‑A53), excel in C/C++ and Python programming languages, and be comfortable developing across the entire embedded software stack—from low-level drivers to Linux user-space applications to host‑side tooling.

This role is highly hands‑on and involves close interaction with the systems, IC design, test, and physics cross‑functional engineering teams. You will architect, implement, and debug complex embedded systems, integrating multiple processors, real‑time firmware, and Linux‑based applications.

Key Responsibilities

Architect, design, and implement embedded software across bare‑metal, RTOS, and embedded Linux environments.

Develop firmware, Linux drivers, user‑space applications, and host‑PC tools supporting the full embedded software stack.

Work with heterogeneous multi‑core SoCs (e.g., Cortex‑R5 real‑time cores and Cortex‑A53 application cores), enabling inter‑processor communication, synchronization, and resource sharing.

Implement multi‑threaded, multi‑core software architectures with attention to power, performance, determinism, and reliability.

Develop and maintain low‑level drivers for peripherals including SPI, I2C, UART, GPIO, timers, and DMA engines.

Debug real‑time embedded systems using JTAG/SWD debuggers, in‑circuit emulators, and software diagnostic tools.

Perform hands‑on system characterization using oscilloscopes, logic analyzers, and protocol analyzers (SPI/I2C/UART, LVDS, Ethernet, USB, etc.).

Write clean, robust, well‑tested C/C++ code for bare‑metal and Linux environments.

Develop Python tools for automation, test, and host‑side applications.

Collaborate closely with hardware, FPGA, and systems engineers to bring up new boards, validate interfaces, and resolve integration issues.

Contribute to system architecture decisions, design reviews, and technical documentation.

Required Qualifications

Bachelor’s or Master’s degree in Electrical Engineering, Computer Engineering, Computer Science, or related field.

5+ years of hands‑on experience in embedded firmware and Linux software development.

Strong proficiency in C, C++, and Python, with emphasis on embedded and deeply embedded programming.

Deep experience with bare‑metal firmware development, interrupt‑driven systems, and hardware bring‑up.

Proven experience with embedded Linux (build systems, user‑space applications, drivers, device trees).

Hands‑on experience with heterogeneous multi‑core RISC‑V and ARM processors, such as Cortex‑R5 and Cortex‑A53.

Strong understanding of multi‑threaded and multi‑core software design principles.

Experience developing and debugging drivers and applications using I2C, SPI, UART, DMA, and other common peripherals.

Strong lab skills: oscilloscopes, logic analyzers, protocol analyzers, power measurement, and signal debugging.

Proficiency with software debuggers (GDB, OpenOCD, Lauterbach, etc.).

Ability to analyze, troubleshoot, and optimize system performance across the entire hardware/software boundary.

Preferred Experience

Experience with Yocto/PetaLinux, Buildroot, or similar embedded Linux build systems.

Familiarity with IPC mechanisms (RPMsg, shared memory, message queues) in heterogeneous SoC environments.

Experience integrating firmware with FPGA‑based systems or custom ASIC’s.

Familiarity with FPGA embedded software environments such as AMD/Xilinx Vitis.

Knowledge of network protocols and experience building socket‑based host‑PC applications.

Experience with continuous integration, test automation, and version control (Git).

Soft Skills

Strong analytical and problem‑solving ability.

Excellent communication skills for cross‑team collaboration.

Self‑starter attitude and ability to take ownership of complex features from architecture to deployment.

Comfortable working in a fast‑paced, hands‑on engineering environment.

$150,000 - $250,000 a year

#J-18808-Ljbffr