Senior Embedded Software Engineer (C/C++)
Werfen · Bedford, MA · 1 wk ago
Engineering$130k–$160k/yrFull-time
Responsibilities
- Design, develop, and maintain embedded firmware for motion control systems using microcontrollers
- Develop software on bare-metal and RTOS-based systems with strict real-time constraints
- Implement and optimize stepper motor control, sensor interfaces, and deterministic control loops
- Design and implement low-level drivers, including: DMA drivers, Interrupt service routines (ISRs), Timer, GPIO, and peripheral drivers
- Collaborate closely with hardware engineers to: Read and interpret schematics and datasheets, perform hardware bring-up and board-level debugging, interface with and debug embedded peripherals such as: SPI, I²C, CAN bus, UART, PWM, GPIO
- Apply strong knowledge of computer architecture, including: CPU pipelines, cache behavior, memory hierarchies, Microcontroller buses and peripheral architectures
- Perform advanced debugging using: JTAG-based debuggers, Oscilloscopes, Logic analyzers, Function generators
- Create and maintain technical documentation, including design descriptions and test procedures
- Mentor junior engineers and participate in technical design and code reviews
Qualifications
- Minimum Knowledge & Experience Required for the Position:
- Bachelor’s Degree plus a minimum 8 years of related experience or Master’s Degree plus a minimum 4 years of related experience or waiver based on experience.
- Experience with popular RTOS platforms (e.g., ThreadX)
- Experience with motor control algorithms such as microstepping or closed-loop control
- Development experience in regulated industries, including FDA-regulated medical devices, with exposure to design controls and verification/validation practices
- Knowledge of safety-critical, real-time, or high-reliability systems
- Awareness of EMC/EMI considerations in embedded designs
- Extensive experience developing software for embedded microcontrollers
- Strong hands-on experience with Real-Time Operating Systems (RTOS), including task design, scheduling, synchronization primitives, and interrupt handling
- Proven experience designing and implementing: DMA-based data transfers, Interrupt-driven software architectures
- Solid understanding of computer architecture, including cache, memory, and peripheral subsystems
- Strong knowledge of embedded communication protocols: SPI, I²C, CAN bus, UART
- Extensive experience debugging embedded systems using JTAG or equivalent on-chip debug interfaces
- Proficiency in hardware/software debugging with: Oscilloscopes, Logic Analyzers, Function Generators
- Strong embedded C/C++ programming skills
- Excellent problem-solving, debugging, and root-cause analysis skills
Pay
The annual base salary range for this role is currently $130,000 to $160,000 range. Individual employee compensation will ultimately depend on factors including education, relevant experience, skillset, knowledge, and particular business needs.
Benefits
- Medical, dental, and vision insurance
- 401k plan retirement benefits with an employer match
- Paid vacation and sick leave