Full-Stack Software Engineer, Controls

Job type: Full Time · Department: Software · Work type: On-Site · USD 90,000-115,000 / year

St. Louis, Missouri, United States

About Us

At Intramotev, we are dedicated to revolutionizing the freight industry by liberating tons of freight from congested highways, reducing carbon emissions, and enhancing transportation efficiency. We are deploying self-propelled battery-electric railcars and vehicles to transform freight logistics and bring innovation to our rail network. Based in St. Louis, MO, we are committed to promoting industrial revitalization, saving lives, and minimizing the environmental impact of trucking.

We actively foster a work environment for every teammate that's welcoming, respectful and inclusive, with great opportunities for professional growth. Find your future with us.

Role Overview

We're building the next generation of the control system that plans trips for our vehicles, keeps them safe, and drives them. We're hiring a Full-Stack Software Engineer on the Controls team to own that system across its full depth, from the server-side modules that plan and administer a trip to the onboard components that carry it out on the vehicle.

You'll work at the core of how our vehicles move: taking a requested trip, turning it into a safe plan, dispatching it, and making sure it executes correctly in the real world. You'll partner closely with the Perception team to bring autonomous capabilities into the system, and with the Embedded and Applications teams whose work sits alongside your own. "Full-stack" here means the full depth of the control stack, from the ground to the vehicle.

This is a full-time, 100% in-office role based in St. Louis, MO. You'll work within a team of 3–10 engineers and engage in occasional domestic travel for testing, integration, demonstrations, and customer interactions. This is hands-on, safety-critical work. When the system says stop, several tons of moving railcar need to stop. If that's the kind of problem that gets you out of bed, keep reading.

About You: Basic Qualifications (Required Skills/Experience)

  • Approximately 2 years of professional software engineering experience building and shipping production software.

  • Strong problem-solving ability. You can take an ambiguous, underspecified problem, break it down, reason about trade-offs, and drive it to a working solution.

  • Solid understanding of data structures, algorithms, and how to design maintainable systems: fundamentals that carry across languages.

  • Comfort in one or more of the languages we build in (Python, C, C++, Rust, Go, MATLAB/Simulink), or the demonstrated ability to ramp into a new systems language quickly.

  • Comfort reasoning about a system where multiple components talk to each other over a network, both on the ground and on the vehicle.

  • Discipline about testing before production. You write unit and integration tests, verify behavior before it ships, and when you fix a bug you reproduce it and lock it down with a regression test.

  • Proficiency with Git in a collaborative workflow: branching, merging, pull requests, code review.

  • Comfort working in a Linux command-line environment.

  • Fluent, demonstrated use of AI-assisted development tools (Claude, Cursor, Copilot, etc.) on real work, and a thoughtful point of view on when they help and when they get in the way.

  • Willingness to expand into technical areas beyond your area of expertise; ability to develop innovative and novel approaches.

  • Open-minded and comfortable working in a teaming environment as an individual contributor.

  • Fluent in both written and verbal English.

  • U.S. Person (immigration or work visa sponsorship will not be provided).

Preferred Qualifications (Desired Skills/Experience)

None of these are required. If you meet the basic qualifications and the role excites you, apply. But if you bring some of these, you'll ramp faster and we'll notice. Candidate should have a working knowledge of one or (ideally) multiple areas listed below:

  • Experience with real-time, embedded, or onboard software, and the constraints that come with running on a vehicle rather than a server.

  • Experience with message-driven or distributed systems and the delivery-guarantee trade-offs involved (pub/sub, queues, streams, and handling late, dropped, or out-of-order messages). Familiarity with Redis or ZeroMQ is a plus.

  • Experience with a database as a source of truth, and a feel for data integrity in a distributed setting (versioning, checksums, content hashing).

  • Coursework or project experience in robotics, controls, autonomy, or real-time systems.

  • Experience with rail, electric vehicles, or unmanned/autonomous systems.

  • Exposure to perception, sensor fusion, localization, or GNSS/INS data, enough to build good software around it.

  • Working knowledge of Docker and containerized development workflows.

  • Experience with CI/CD pipelines.

  • Experience reading and extending an existing codebase, not only building from scratch. Most professional engineering is understanding systems that already exist.

  • Comfort working across disciplines. Collaborating with hardware, electrical, or mechanical engineers translates directly here.

Why Join Us?

Your code runs on real machines. The software you write controls and informs physical vehicles carrying real freight on real rail lines. The feedback loop between your code and the physical world is short, visible, and unforgiving in the best way.

Small team, real ownership. You'll own the control stack end-to-end, from trip planning on the server through execution on the vehicle, participate in design decisions early, and ship code that matters from your first months. The tradeoff is honest: fewer layers of support, more responsibility on your shoulders sooner.

The problem is worth working on. Freight trucking is one of the largest sources of carbon emissions and highway fatalities in the country, and the economics of rail have been broken for decades. We're not optimizing ad clicks. We're building the infrastructure that moves freight off highways and onto electric rail.

What You Will Do Day to Day

  • Trip Planning & Dispatch: Design and build the server-side modules that plan and administer a trip: turning a requested trip into a route, dispatching the plan, tracking progress, and reporting status.

  • Onboard Execution: Build and maintain the onboard modules that run on the vehicles and execute the plan safely.

  • Prototyping & Hardening: Prototype quickly, then harden the pieces that need it into production-quality code in whichever language fits the job.

  • Messaging & Delivery Guarantees: Build and harden the real-time messaging between the server-side and onboard software, choosing the right delivery guarantees for each kind of message (the latest state where only the newest value matters, versus commands and events that must not be lost and must be processed in order).

  • Data Integrity: Work with the data that describes our track and vehicles and the interfaces that serve it, including the version and integrity checks that keep each deployment in sync.

  • Collaboration: Partner with the Perception team to bring autonomous capabilities into the system, and coordinate with the Embedded and Applications teams on the layers alongside your own.

  • Engineering Practice: Write unit and integration tests and verify behavior before it ships; investigate and fix bugs in production systems by reproducing them, diagnosing root cause, and writing the regression test; participate in code reviews, both giving and receiving feedback; and work with senior engineers to break requirements into concrete implementation tasks.

  • Field Support: Support field testing and integration on physical rail vehicles when needed.

Our Interview Process

We evaluate depth of understanding over breadth of buzzwords. Our process includes a brief technical screen focused on fundamentals, a short technical presentation from you (details below), and a final on-site conversation with the engineering team. We provide clear expectations before each stage and aim to complete the process within three weeks.

For the presentation, we ask for a short 5 to 10 minute talk on a technical topic you've worked on in the past in your area of expertise. Something that you can go in depth on for at least 5 minutes. Ideally, this is a very narrow part of a big project, but go as deep as you can in those 5 to 10 minutes. A chance to really "nerd out" on something, for lack of a better term.

Compensation & Benefits

Base salary range: $90,000 to $115,000, commensurate with experience.

Intramotev offers a comprehensive benefits package for all team members, including:

  • Medical coverage: We cover 100% of employee medical premiums, plus low-cost dental and vision options.

  • Vacation: Full-time employees enjoy unlimited paid time off.

  • Equity: Full-time employees receive equity in the company.

  • Parental leave: New parents receive paid time off to spend quality time with their family.

Typical Education and Experience

Education/experience typically acquired through advanced technical education (e.g. Bachelor and/or Master) and typically 2 or more years' related work experience, or an equivalent combination of technical education and experience.

Relocation

Intramotev offers relocation based on candidate eligibility.

Equal Opportunity Employer

Intramotev is an Equal Opportunity Employer. Employment decisions are made without regard to race, color, religion, national origin, gender, sexual orientation, gender identity, age, physical or mental disability, genetic factors, military/veteran status or other characteristics protected by law.

Closing

If you're passionate about software engineering and eager to contribute to autonomous rail technology, we'd love to hear from you!

Made with