Embedded Software Engineer
C++ Language
Embedded
Embedded C
Embedded Development
Embedded Firmware
Embedded Operating Systems
Embedded Software
Embedded Systems
Embedded Systems Software
Engineer
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 team to design and deliver complex real-time embedded software for resource-constrained systems in Cambridge.
- Location: Cambridge, Massachusetts (onsite)
- Compensation: USD 75,000 - 156,000 per yearly
- Experience: 3+ years
- Education: Bachelor’s degree in Computer Science, Computer Engineering, or Electrical Engineering
Responsibilities
- Designs and implements embedded software architecture for equipment monitoring and control
- Evaluates embedded software, firmware, and hardware as part of system design
- Codes, debugs, and tests system software
- Performs embedded software and multi-platform software implementation
- Contributes to overall system design using demonstrated expertise and applicable experience
- Contributes content for technical reports and presentations with minimal guidance
- Proactively identifies design-decision needs and concerns and communicates them to project leadership
- Adapts work to changes in program requirements
- Identifies challenges in assigned work and communicates them to project leadership
- Performs other duties as assigned
Requirements
- Embedded development and troubleshooting strengths on embedded targets
- Experience using in-circuit emulators, JTAG debuggers, and laboratory test equipment
- Strong knowledge of OS coding techniques, IP protocols, interfaces, and hardware subsystems
- Knowledge of development for real-time execution
- Excellent organizational skills and attention to detail
- Strong analytical and problem-solving skills
- Knowledge of software configuration management tools, defect tracking tools, and peer review processes
- Excellent time management with a proven ability to meet deadlines
- Excellent verbal and written communication skills
- Bachelor’s degree in Computer Science, Computer Engineering, or Electrical Engineering
Technical Focus & Tools
- Languages: Rust, C, C++, Python
- Low-level/Systems: kernel code, machine code
- Architecture: RISC-V
- Operating environments: multi-core operating systems, real-time operating system
- Hardware interfaces/peripherals: UART, SPI, DMA controller, memory controller
- Debugging: JTAG debuggers, in-circuit emulators
Additional Job Description
- Expertise in embedded systems, multi-core operating systems, and modifying or writing kernel code, machine code, and C/C++
- Ability to learn or bring knowledge of multi-core processing and scheduling
- Learn or bring knowledge of RISC-V architecture
- Working knowledge of Rust or C experience, plus a strong desire to learn Rust
- Experience designing and implementing a real-time operating system
- Familiarity with processor low-level peripherals: UART, SPI, DMA controller, memory controller
- Ability to absorb detail on processor and peripheral operation similar to complex commercial processors and microcontrollers
- Ability to debug and isolate HW issues from a SW/user perspective
- RISC-V architecture familiarity is preferred; Python experience is also preferred
- Selected applicants must obtain and maintain a government security clearance
- Active Top Secret Clearance is preferred
- Job Location: Cambridge, Massachusetts 02139-3563-3563