Embedded Software Engineer
C++ Language
Developer
Embedded
Embedded C
Embedded Development
Embedded Firmware
Embedded Operating Systems
Embedded Software
Embedded Systems
Embedded Systems Software
Engineering
Hardware Engineering
Hardware Software Co Design
Information Technology (IT)
Linux Kernel
Programming Language
Programming Languages
Risc V
RTOS
Rust
Software Development
Software Engineer
Software Engineering
Systems
Job Description
Join a mission-focused engineering team in Cambridge, Massachusetts to build and lead real-time embedded software for resource-constrained systems.
Responsibilities
- Design and implement embedded software architecture for equipment monitoring and control
- Evaluate embedded software, firmware, hardware, and related design approaches
- Code, debug, and test system software
- Support embedded software and multi-platform software implementation
- Contribute to system design using demonstrated expertise and applicable experience
- Develop technical report and presentation content with minimal guidance
- Proactively surface design-decision needs, risks, and concerns to project leadership
- Adapt work as program requirements change
- Identify challenges within assigned work and communicate them to project leadership
- Perform other duties as assigned
Requirements
- Minimum 3 years of experience
- Strong development and troubleshooting skills on embedded targets
- Experience using in-circuit emulators, JTAG debuggers, and laboratory test equipment
- Excellent knowledge of OS coding techniques, IP protocols, interfaces, and hardware subsystems
- Knowledge of development for real-time execution
- Strong organizational skills and attention to detail
- Analytical and problem-solving skills
- Knowledge of software configuration management tools, defect tracking tools, and peer review processes
- Excellent time management skills and ability to meet deadlines
- Excellent verbal and written communications skills
- Education: Bachelor’s degree in Computer Science, Computer Engineering, or Electrical Engineering
Core Technologies
- Rust, C, C++
- Kernel code and machine code
- RISC-V
- Python
- Multi-core operating systems
- Real-time operating system (RTOS)
- UART, SPI
- DMA controller, memory controller
- JTAG debuggers, in-circuit emulators
Additional Role Description
- Expertise in embedded systems and development involving multi-core operating systems
- Experience modifying or writing kernel code, machine code, and C/C++
- Ability to learn or apply knowledge of multi-core processing and scheduling
- Ability to learn or apply knowledge of RISC-V architecture
- Working knowledge of Rust or C experience, with a strong desire to learn Rust
- Design and implement real-time operating system capabilities
- Familiarity with low-level peripherals including UART, SPI, DMA controller, and memory controller
- Ability to debug and isolate hardware issues from a software or user perspective
- Familiarity with RISC-V architecture preferred; Python experience preferred
- Selected applicants must obtain and maintain a government security clearance
- Active Top Secret Clearance preferred
Location & Compensation
- Location: Cambridge, Massachusetts (onsite)
- ZIP: 02139-3563-3563
- Salary: USD 75,000 - 156,000 per year
Systems and Domains: imaging, controllers, navigation/mapping across undersea, terrestrial, air, hypersonics, and space.