Quick overview
Job description
In this role you will be responsible for the design and implementation of real-time control algorithms, hardware communication, plus models and simulation frameworks necessary to verify those algorithms. Your algorithms will be used in critical, hard real-time applications in the SPARC project, as well as related projects. Your algorithms will generally be implemented in C++ and run as a Linux application.
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 mission-critical control algorithms
- Develop software to communicate with hardware sensors/actuators
- Develop software infrastructure to operate Hardware-in-the-Loop (HITL) and software-only testbeds
- Develop simulation models and model infrastructure for both real-time and off-line (high fidelity) simulations
- Develop offline data analysis tools
- Help define and execute end-to-end and other integrated test cases and test plans to validate SPARC control software
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 writing real-time state estimation and control algorithms
- 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 Hardware-in-the-Loop testbeds and software-only testbeds for validating control software
- Experience writing models to validate software
- Familiarity with Linux
- 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