Software Engineer - Onboard Rail Systems
Role details
Job location
Tech stack
Job description
The Senior Software Engineer will join the Onboard Systems team in Pittsburgh, PA, focusing on the development and maintenance of safety-critical onboard software for rail signaling and Automatic Train Control (ATC) systems. In this role, you design, implement, test, and support the certification of embedded C/C++ software that directly impacts train safety and operational reliability. You work in a highly regulated environment, collaborating with multidisciplinary engineering teams to deliver robust, real-time solutions for train control and protection., * Design, implement, and maintain embedded C software for onboard signaling and train control systems.
- Develop software for safety-related functions such as automatic train protection, communications handling, timing synchronization, diagnostics, and fault management.
- Integrate software closely with onboard hardware, including processors, I/O modules, communication buses, and safety peripherals.
- Ensure deterministic execution, robust error handling, and compliance with real-time constraints in embedded environments.
- Develop software in accordance with safety lifecycle requirements for railway control and protection systems.
- Contribute to safety documentation, including software requirements, architecture descriptions, and detailed design specifications.
- Implement defensive coding techniques and fault-tolerant strategies appropriate for train safety systems.
- Collaborate closely with project engineering, systems engineering, signaling design, hardware, verification and validation (V&V), and safety assurance teams.
- Provide technical leadership and mentoring to engineers working on onboard signaling software.
- Contribute to system architecture trade-offs, balancing performance, safety, maintainability, and certification impact.
- Participate in structured, audited, configuration-controlled development processes to ensure traceability and compliance.
- Support software in fielded or operational systems, contributing to troubleshooting and continuous improvement., This role is based in Pittsburgh, PA, with a hybrid work schedule that typically includes being on site 1-2 days per week or approximately 4-8 days per month. You will work within a collaborative onboard systems team that values a strong team culture, long-term engagement, and stable programs with real-world operational impact. The environment emphasizes safety-critical development, structured and audited processes, configuration control, and close interaction with hardware and systems engineering teams, using embedded and real-time technologies to support rail signaling and train control solutions.
Requirements
- Bachelor's or Master's degree in Computer Engineering, Electrical Engineering, Computer Science, or a closely related field.
- 8+ years of embedded software development experience, including work on rail signaling or other safety-critical systems.
- Expert-level proficiency in C for embedded, real-time environments.
- Strong understanding of real-time concepts, including scheduling, interrupts, concurrency, memory constraints, and hardware interaction.
- Experience working in structured, audited, configuration-controlled development environments.
- Proficiency in C++ for embedded and systems-level software development.
- Demonstrated experience with requirements analysis and translating requirements into robust software designs.
- Proven ability to develop software for safety-related functions and safety-critical applications.
Additional Skills & Qualifications
- Rail industry experience, specifically with ATC and signaling systems.
- Experience with onboard train control or protection systems such as ATP, CBTC, PTC, or ETCS.
- Exposure to railway safety standards such as EN standards and IEC 61508 or similar functional safety standards.
- Experience working with real-time or embedded operating systems.
- Knowledge of software certification processes and safety case support activities.
- Prior experience supporting software in fielded or operational systems, including diagnostics and fault analysis.
- Strong communication and collaboration skills for working with cross-functional engineering and safety teams.
- Ability to provide technical leadership and mentorship within a software engineering team., CommunicationSchedulingMentorshipLife SciencesTime ManagementSoftware EngineeringSoftware DevelopmentReliabilityComputer ScienceMechanical EngineeringSystems EngineeringTroubleshooting (Problem Solving)Computer EngineeringManufacturing EngineeringElectrical EngineeringTraceabilitySafety AssuranceCollaborationFunctional SafetyTechnical LeadershipProject EngineeringEmbedded SoftwareDeterministic MethodsEngineering Design ProcessC++ (Programming Language)Fault ToleranceBalancing (Ledger/Billing)Configuration ManagementCritical Illness InsuranceC (Programming Language)Systems ArchitectureMaintainabilityRequirements AnalysisVisionaryEmbedded CHardware Verification LanguageException HandlingIEC 61508 StandardRail Safety
Benefits & conditions
This is a Contract to Hire position based out of Pittsburgh, PA. Pay and Benefits
The pay range for this position is $57.69 - $74.52/hr.
Eligibility requirements apply to some benefits and may depend on your job classification and length of employment. Benefits are subject to change and may be subject to specific elections, plan, or program terms. If eligible, the benefits available for this temporary role may include the following:
- Medical, dental & vision
- Critical Illness, Accident, and Hospital
- 401(k) Retirement Plan - Pre-tax and Roth post-tax contributions available
- Life Insurance (Voluntary Life & AD&D for the employee and dependents)
- Short and long-term disability
- Health Spending Account (HSA)
- Transportation benefits
- Employee Assistance Program
- Time Off/Leave (PTO, Vacation or Sick Leave) Workplace Type