Software Engineer
Posted 6 Oct 2026
Advertised as “Backend Software Engineer II”
BranchFactor Summary
The original posting with the fluff stripped out
- Level
- II
- Expected experience
- 3+ yrs
- Management level
- Individual contributor
No salary listed for this role.
Field of studyComputer Engineering, Computer Science (or related)
Study levelBachelor's
Parallel Systems is pioneering autonomous battery-electric rail vehicles designed to transform freight transportation by shifting portions of the $900 billion U.S. trucking industry onto rail. Our innovative technology offers cleaner, safer, and more efficient logistics solutions. Join our dynamic team and help shape a smarter, greener future for global freight.
Backend Software Engineer II
Parallel Systems is seeking a Software Engineer II to help build the train control software that lets our autonomous rail vehicles operate safely on the rail network. You'll work on the backend systems, written primarily in Rust, that model how trains are authorized to move: movement authorities, bulletins, switches, and signals, implemented in our system as motion rules and Parallel blocks.
This is a hands-on role with a clear growth path. You'll start by closing edge cases in our existing train control logic, move on to owning new features end to end (from reading railroad specs through technical design, backend, and UI changes), and grow into a core contributor on our path to supporting Positive Train Control (PTC). Prior rail experience is not required; curiosity and a willingness to learn a deep domain are.
Responsibilities:
- Implement and extend backend features for critical train control applications, adding support for new train control concepts with guidance from senior engineers.
- Develop and maintain system-level software written primarily in Rust.
- Improve the reliability and correctness of existing code by finding and fixing edge cases in train control logic.
- Write and test code that meets our safety, security, and compliance standards.
- Debug and diagnose issues in simulation and on real hardware, escalating complex problems when needed.
- Participate in code reviews and technical discussions and help write technical specs for the features you build.
What Success Looks Like:
- After 30 days: You understand the core concepts behind train control (movement authorities, bulletins, switches, and signals) and how they're implemented technically in our system through motion rules and Parallel blocks. You've added support for one or two missing edge cases in train control.
- After 60 days: You've added support for a new train control feature, such as movement authorities that are only valid depending on the movement of other trains. You analyzed the requirements from specs, wrote a technical spec covering the necessary backend and UI changes, and implemented them in our codebase. You've also begun learning the concepts behind PTC and reading the associated specs.