Lead Embedded Software Engineer
About the Company
General Matter enriches uranium.
We are designing, building, and operating the world’s lowest-cost enrichment services, here in the US.
In the process, we are restoring America’s ability to produce nuclear fuel to power AI, advanced manufacturing and critical industries our country relies on to remain competitive.
Fuel drives the cost of advanced reactor electricity production, and enrichment drives the cost of the fuel that advanced reactors consume. Reliable, low-cost enrichment is the catalyst for the nuclear Renaissance now under way.
Our mission is to make nuclear not only the cleanest and safest source of baseload power, but also the most affordable. We believe abundant nuclear energy will lead to a post-scarcity society.
We were incubated inside Founders Fund, like Anduril and Palantir before us, and are backed by over a dozen of the world's top venture capital firms.
Our lean, world-class team of engineers and operators is applying a first-principles approach to solving the problem of nuclear fuel production.
We are a mission-driven company with a culture of urgency, accountability, and transparency.
Help us build a high-energy society by making the cleanest, safest form of baseload energy the most affordable.
About This Role
We're looking for a Lead Embedded Software Engineer to design and develop firmware for the safety-critical electromechanical systems in service of our mission, and to lead the growing team that builds it. The role is hands-on and covers the whole embedded stack. You'll bring up new boards, write drivers, design portable hardware abstraction layers and build the hardware-in-the-loop (HIL) infrastructure that tests every change on real hardware. You'll set the technical direction and architecture for our embedded software and make system-level decisions that shape how other teams design and build.
Because these systems are safety-critical, you'll think carefully about how they can fail, and you'll make sure your team does too. Much of your time will go to writing code and solving challenging engineering problems, with a heavy emphasis on efficiency and safety. You'll work closely with electrical and controls engineers: reviewing boards, turning control requirements into firmware architecture and debugging on the bench. You'll also mentor engineers and set the bar for how the team designs, reviews and tests firmware.
Responsibilities
- Develop bare-metal, safety-critical software in modern C++ that is readable, testable and efficient.
- Bring up new boards and debug board-level issues with oscilloscopes, logic analyzers and other lab equipment.
- Write drivers for a range of ICs over UART, SPI and I2C.
- Write and maintain wired communication stacks, e.g. CANopen, TCP, UDP
- Design HAL interfaces that let applications move between platforms.
- Use MCU peripherals to enforce safety at the hardware level and make applications more efficient.
- Analyze how electromechanical systems and your software can fail together and work to mitigate the effects.
- Build HIL CI infrastructure that tests software changes on real hardware.
- Work cross functionally with engineers across multiple disciplines (electrical, mechanical, software)
- Present firmware designs to stakeholders to keep all engineering disciplines aligned.
- Participate in code reviews, design reviews, and failure mode analysis reviews
- Provide technical and architectural leadership based on first principles thinking
Basic Qualifications
- B.S. in Computer Science, Computer Engineering, Electrical Engineering or a related field
- 7+ years of professional software development experience with a majority in an embedded domain
- 1+ years of experience leading a team
- Strong production experience in modern C++ or Rust
- Hands-on experience integrating hardware and software and developing device drivers
- Comfortable reading schematics and datasheets and debugging on the bench
Preferred Skills and Experience
- Experience implementing wired communication stacks such as CANopen, TCP, and UDP
- Experience designing bootloaders and firmware update mechanisms