Senior Embedded Software Engineer
As a Senior Embedded Software Engineer, you will be responsible for the design, implementation, and verification of software and controls for advanced R&D equipment and complex machinery.
As a member of the Software Engineering team, you will be a hands-on technical contributor. You will be a champion of writing excellent quality, production-ready code for mission-critical real-time systems. You will collect functional requirements from customers and produce software solutions to meet these requirements.
You will work with a variety of engineers to integrate your software into software testbeds, hardware testbeds, and the production tools. You will also contribute to the broader software ecosystem to improve tooling and processes used across the company.
What you'll do:
- Develop control software across multiple platforms, including real-time Linux, microcontrollers, and FPGAs
- Verify embedded software with Hardware-in-the-loop testbeds and field commissioning activities
- Improve software tooling to increase developer velocity and enable new capabilities
What we’re looking for:
- Bachelor's degree in a relevant engineering field (computer science, computer engineering, electrical engineering, industrial engineering, etc.)
- 7+ years relevant experience
- Professional experience with embedded, real-time control systems
- Professional experience with producing production quality control software
- Experience with modern software development lifecycle practices (CI/CD, git version control, unit testing, integration testing, etc
- Proficiency with python
- Proficiency with at least one real-time control language (c++, rust, etc)
Bonus points for:
- Experience with mission or safety critical systemsExperience with large-scale industrial systems
- Experience with large-scale industrial systems
- Familiarity with real-time Linux
- Familiarity with bare-metal micro controllers
- Familiarity with FPGA development
- Familiarity with common I/O protocols (SPI, CAN, serial, etc)
- Familiarity with general networking (IP/UDP)
Must-have Requirements:
- Perform activities such as typing, standing, sitting, etc. for extended periods of time
- Dedication to safety to mitigate industrial hazards that may include heat, cold, noise, fumes, strong magnets, lead (Pb), high voltage, high current, pressure systems, and cryogenics
- Willingness to occasionally travel or work required nights/weekends/on-call