About The Role:We're looking for a Firmware/Embedded Software Engineer to write and test software for our battery electric locomotive control systems. You'll work on everything from low-level embedded firmware to industrial HMI interfaces, collaborating closely with electrical and mechanical teams to bring our locomotive to life.
We want a driven, fast-paced self-learner who can move between embedded C/C++ development, Linux system configuration, and high-level HMI design while maintaining rigorous safety standards.
We offer a competitive salary, comprehensive benefits, and the opportunity to build the software backbone of the future of rail technology.
What You'll Do:- Write and test embedded software and firmware for locomotive system controls (C/C++, Python)
- Design and implement industrial HMI interfaces using HTML or GUI programming frameworks
- Configure and maintain Linux systems, including BASH scripting and network configuration
- Implement robust communication stacks for Ethernet, CAN Bus, I2C, and SPI protocols
- Develop control algorithms for high-voltage systems including BMS and power routing
- Create and maintain software architecture documentation and technical specifications
- Implement simple signal filtering and data processing algorithms
- Develop network APIs and integrate with SCADA systems and MQTT protocols
- Design software for safety-critical systems with proper validation and verification
- Collaborate with electrical engineers on embedded controller integration
- Support system testing and validation in lab and field environments
What We're Looking For:- 3+ years of embedded software/firmware development experience (automotive, marine, industrial, or rail preferred)
- Strong proficiency in C, C++, and Python
- Experience with Linux system administration, configuration, and shell scripting
- Hands-on experience with communication protocols: CAN Bus, Ethernet, I2C, SPI
- Knowledge of high-voltage system control (BMS, power routing, contactor control)
- Experience designing industrial HMI interfaces (web-based or native GUI)
- Understanding of software architecture and documentation practices
- Familiarity with safety-critical software development principles
- Nice to have: STM32 microcontroller experience
- Nice to have: MATLAB/Simulink experience for model-based design
- Nice to have: Experience with SCADA systems, MQTT, or industrial IoT protocols
- Ability to thrive in fast-paced, high-pressure startup environments
- Proactive problem-solver who takes ownership from concept to deployment
- Passion for clean energy and sustainable transportation
- Bonus: Experience with battery management systems or electric vehicle controls
- Bonus 2: Loves trains