Software Engineer III
Listed on 2026-09-10
-
Software Development
Software Engineer, Embedded Software Engineer, C++ Developer, Embedded Systems/ Firmware/ IoT
Job Description
Embedded software team for our LOCOTROL® Remote Control Locomotive, Tower Control, and Distributed Power product portfolios. Working closely with PMs, System Engineers and Architects, and test teams to align with customer requirements.
How will you make a difference?As a member of the LOCOTROL SW Team, you will be responsible for design, develop, integrate, test, demonstrate, and maintain embedded software applications used in Freight Locomotive control for our LOCOTROL® Remote Control Locomotive, Tower Control, and Distributed Power product portfolios. The systems are primarily developed in C and/or C++ targetinga variety of embedded platforms. This new role will primarily focus on design and development to integrate our Next Gen platforms with our RCS products.
Whatdo we want to know about you?
- Bachelor’s Degree in Computer Engineering, Computer Science, or related field
- Minimum of 4 years developing embedded software in both RTOS and bare metal environments.
- Experience writing multi-process / multi-threaded programs using C or C++.
- Strong understanding of software design, methods, and architectural approaches.
- Knowledge of data structures, algorithms, and software engineering principles.
- Willing and able to travel 10% of your time.
Primary project will utilize experience with
- DDS
- Yocto
- C++23
- CMake
- GTest, especially in an automated/CI environment
- DOORS Next
- VS in/with Dev Containers
- Git Lab
- Git Lab CI
- Experience in Agile software development environments including Scrum and/or Kanban.
- Experience with Cold Fire, ARM and/or PowerPC micro-processor in a C/C++ environment.
- Experience with communication protocols such as TCP/IP, UDP, RS232/RS422, HDLC, SPI, I2C, CAN.
- Experience with embedded Real Time Operating Systems (RTOS) including Green Hills INTEGRITY.
- Experience with software configuration management tools such as SVN or GIT.
- Experience with SW analysis tools (such as Klocwork, Understand, PC-Lint), and SW unit test tools (such as Vector CAST, etc.).
- Experience in design of high reliability, safety, redundant fail-safe products.
- Experience with industry standards (IEC 61508, DO-178B, Cenelec-50128, etc.).
- Develop and maintain software components, systems and their networks.
- Provide technical mentoring for more junior software engineers as needed.
- Design and implement software for embedded systems from requirements analysis through production and commercial deployment.
- Program in C and C++ all applications, components and interfaces.
- Maintain and enhance software deployed within existing embedded products and systems.
- Work closely with the business unit to ensure application development meets product specification requirements.
- Work closely with other engineering teams to ensure system functional and interface requirements are met.
- Design, implement and test software, ensuring quality specifications are met.
- Participate actively in design and code reviews.
- Drive performance and reliability enhancements.
- Interact with customers and partners in technical discussions throughout the development and deployment phases.
- Develop documentation including SW design, SW requirements, and SW architectures.
Our job titles may span more than one career level. The salary rate for this role is currently $The actual salary offered to a candidate may be influenced by a variety of factors, such as: training, transferable skills, work experience, education, business needs, market demands and work location. The base pay range is subject to change and may be modified in the future.
More information on offered benefits, which include health, welfare, and retirement, are available at Other benefit offerings for this role may include annual bonus, if eligible.
(If this job is in fact in your jurisdiction, then you may be using a Proxy or VPN to access this site, and to progress further, you should change your connectivity to another mobile device or PC).