Advanced Lead Engineer-MCA Platform Software-Hybrid (Ft. Worth, Remote Illinois, Pennsylvania, Texas
Design, implement, and test the MCA Platform Software architecture, including Board Support Packages (BSP), OS, Core Platform Software services, and Middleware applications.
MCA (Modular Control Architecture) is the Next Gen Locomotive Control Architecture that modernizes the electronics, software, applications, and network communication compared to previous generations of locomotive controls. MCA has been a journey of Controls development to incrementally update aspects of various locomotive types, including Evo, AC44, Dash 9, and FLX locomotives, with the objective of improving software quality, improving engineering productivity, meeting cyber security expectations, all while addressing the latest customer needs.
This MCA Platform Software Engineer will focus on delivering and sustaining an integrated series of BSPs, core software services, and middleware applications that are foundational to the MCA architecture. The Engineer will contribute to the definition of the strategy on which technologies to leverage, which security practices to employ, and will be responsible for implementing those strategies. This responsibility is cross functional in nature and requires close collaboration amongst various MCA teams.
In this role, you will:
- Design, develop, maintain, and test MCA Platform SW: BSP, Platform Services, MCA Middleware applications to connect MCA Platform with Business Logic applications
- Ensure MCA Platform SW is robust against expected configurability, performance, cyber security, and quality requirements
- Review and refine control system-level requirements to understand design intent and reconcile with MCA Platform capabilities
- Derive MCA Platform software requirements and interfaces from system requirements, allocate them to MCA Platform software components
- Develop, review, and execute hardware/software and software/software test plans for unit testing and MCA Platform integration testing
- Lead and participate in MCA Platform software troubleshooting efforts to root cause failures and defects on the various test environments
- Prepare and present technical design decisions and results to internal and external customers
- Ensure proper documentation of technical data generated for the assigned projects and/or tasks consistent with engineering policies and procedures
- Participate in, or lead as appropriate, design and code reviews.
- Support V&V through validation test cases execution on various test environments
- Provide timely communications on significant issues, risks, or developments
- Plan individual work for assigned MCA platform software features as input to project plans
- Drive process improvements and simplification initiatives to improve quality and productivity
- Prepare invention disclosures to protect the technology that provides a competitive advantage to the business
- Bachelor of Science in Software Engineering, Computer Science, or other Engineering discipline
- Minimum of 5 years' software engineering experience
- Experience in developing, modifying, and debugging device drivers, bootloaders, or board support packages
- Experience with Linux OS on embedded systems
- Knowledge of Linux kernel internals (scheduling, memory management, IPC, file systems, etc.)
- Experience with hardware/software integration
- Experience with Docker
- Experience with C/C++, Bash, Python
- Experience developing and testing embedded software
- Understanding of CI/CD software engineering practices
- Experience defining system-software designs and exploring technical feasibility tradeoffs
- Knowledge of professional software engineering practices & best practices for the full software development life cycle, including requirements management, coding standards, code reviews, source control management, build processes, defect tracking, testing, and operations
- Ability and willingness to support hands-on validation in simulation laboratory and on-locomotive
- Ability and willingness to travel as required