Embedded Software Architect-Technical Staff
MIT Lincoln LaboratoryAbout the role
At MIT Lincoln Laboratory, located at the vibrant nexus of academia, industry, and government, we are renowned for our groundbreaking solutions to some of the nation’s most intricate and complex challenges. Within the Engineering Division, our team collaborates extensively—not only within the Laboratory but also across the MIT campus—bridging a myriad of disciplines to innovate through robust analysis, design, prototyping, and testing.
Our team culture is energized by our diverse group of talented professionals who bring a rich mix of skills and experiences to the table. We champion a balanced approach to work and life, promoting productivity through flexible schedules and hybrid work arrangements.
Help us build the future of autonomous systems in the ocean, land, air, and space!
The Control and Autonomous Systems Engineering Group is dedicated to cutting-edge research and development that spans basic research, prototyping, and field testing. Our team is highly multi-disciplinary in our approach to fielding end-to-end autonomous systems that span oceanic, terrestrial, aerial, and space environments. In particular, our group focuses heavily on several interconnected aspects of autonomous system development:
- Advanced perception, state estimation, planning algorithms, and controls for single and multiple agents
- Exquisite pointing systems for telescopes, radars, and laser systems
- Embedded hardware and software for terrestrial and space applications
Position Description
As Embedded Software Architect, candidates will contribute to a variety of programs across all phases of software development: requirement definition and functional decompositions, architecture studies, coding, unit testing, troubleshooting and system integration. Successful candidates will have hands-on, team-based experience in software engineering roles with a track record of increasing levels of responsibility. Candidates will also lead small teams (e.g. 4-8 engineers) to execute larger efforts and will guide the team in preparing and presenting technical briefings for sponsors (interim status reviews, Preliminary Design Reviews, Critical Design Reviews, etc.). Given the large portfolio of space systems development at MIT Lincoln Laboratory, candidates with significant space experience are highly desired.
Given the wide range of work in our Group, we seek the following attributes
- A Ph.D. in Software Engineering or Computer Science with experience in embedded software development. In lieu of a Ph.D., an MS degree with 5+ years in industry or academia is acceptable
- Ability to architect and design real-time embedded software systems based on high-level requirements and specifications, while balancing computational complexity within constrained systems
- Hands-on experience with developing real-time embedded software in C/C++ using VxWorks (or similar) Real-Time Operating Systems, to include coding and unit testing
- Working knowledge of Model-Based Development techniques using MATLAB/Simulink (or similar)
- Experience with implementing interfaces to various hardware subsystems and peripherals (sensors, actuators, ADCs, DACs) using SpaceWire, Ethernet, SPI, I2C, UART or similar
- Familiarity with Python, Ruby or similar scripting platforms to develop various tools and utilities to support software/hardware design and test efforts. Experience with software quality assurance, software development processes, and test driven design are desirable
- Proficiency with source code control tools such as GIT and defect tracking/management tools such as JIRA
- Ability to develop code in a Linux computing environment
- Comfortable with both agile and waterfall development strategies
- Excellent written, verbal communication skills and ability to work effectively with other team members
Exceptional candidates may also have experience in one or more of the following
- Experience with developing embedded software for space-based systems
- Ability to meet real-time requirements with resource-constrained hardware across a variety of compute platforms
- Experience with the Rust Programming Language
- Ability to read and interpret schematics and component data sheets in order to understand how electrical components i
Apply for this role
Generate a tailored application kit with a matched cover letter, interview prep, and CV highlights — in under 60 seconds.
Apply Now →Generate Application KitFree account required — sign up in 30s