About This Role
Summary
This is a hands-on software engineering position in CAE’s Systems and Software Engineering Center (SSWEC) organization. This group is responsible for the development and delivery of total training solutions for real-time simulation applications. The successful candidate will support integration and configuration of computational system architecture and system software for flight simulators, with a specific focus on the operating systems, build environments, and automation that support those applications.
Essential Duties and Responsibilities
Reasonable accommodations may be made to enable individuals with disabilities to perform the essential functions.
- Maintain and evolve an in-house Linux distribution for real-time applications.
- Optimize and configure kernel and system configuration for high performance.
- Diagnose and optimize bottlenecks due to scheduling, priority, and network settings.
- Update OS components to maintain compatibility, stability, and security across multiple deployed systems.
- Standardize processes, practices, and configurations for security compliance and modern best practices.
- Stay current with Linux security patches and compliance requirements.
- Support and maintain existing CI/CD pipelines and build environments for multiple teams and products.
- Technologies include but are not limited to git, GitHub Actions, Perforce, Bamboo, etc.
- Develop and manage build scripts and tooling (CMake, Docker, Python) to streamline builds and deployments.
- Diagnose networking and network traffic related system issues.
- Manage current automations and develop additional solutions to increase automation.
- Configure and manage virtualized environments for development, testing, and deployment.
- Design, integrate, and test flight simulator architectures, specifically the operating systems, networks, and interfaces that comprise those systems.
- Coordinate with multiple teams and products to test, debug, and optimize, the fully delivered training solution.
- Provide the OS and tools necessary for the application teams and assist and advise those teams on OS related issues.
- Assist with debugging application issues that may be caused by system-level interactions.
- Respond to incidents and perform root-cause analysis for system regressions and performance degradation.
- Develop GUI tools for developers, lab techs, and end-users to quickly assess overall system status.
- Travel as needed to maintain existing solutions at customer sites.
Qualifications and Education Requirements
- Bachelor's Degree in Computer Science, Computer Engineering, or related discipline.
- 2-5 years of professional experience in systems engineering, Linux system administration, or software development. (2 years with Master’s Degree).
- DoD Secret Clearance (or ability to obtain one required to start).
- Due to U.S. Government contract requirements, only U.S. citizens are eligible for this role.
Core Skills
- Strong proficiency with Linux system administration (preferably RHEL or derivatives).
- Strong proficiency troubleshooting and diagnosing OS-level impacts on system performance and stability.
- Proficiency with CI/CD platforms, build automation tools, and version control systems (Bamboo, Perforce, GitHub Actions, git).
- Proficiency with shell scripting and higher-level scripting languages (Python and Bash preferred).
- Familiarity with virtualization technologies and containerization (VMware, Docker).
- Familiarity with C++ build environments and tooling (CMake, compilers, linkers).
- Knowledge of networking fundamentals and security practices in Linux environments.
- Comfortable collaborating across engineering teams and communicating clearly about system-level issues.
- Can communicate technical decisions with consideration and understanding of varied perspectives.
- Strong analysis and problem-solving skills.
- Can work independently and manage priorities with only general technical direction.
Preferred Skills
- Experience customizing and maintaining Linux kernels or distributions.
- Experience maintaining Linux distributions targeted for specialized workloads.
- Experience with OS monitoring and logging tools.
- More advanced knowledge of containerized deployment.
- Mid-level knowledge concerning compiler and linker infrastructure.
- Management of a software baseline, including branching, merging, building, and maintaining a stable software product for multiple end users.
- Understanding of software development lifecycle and release management in a multi-team environment.
- Ability to get CompTIA Linux+ and Sec+ if necessary.
Physical Demands
This role requires the ability to maneuver body in/out of cockpit contain sensitive equipment.
Other Duties
Please note this job description is not designed to cover or contain a comprehensive listing of activities, duties or responsibilities that are required of the employee for their job. Duties, responsibilities, and activities may change at any time with or without notice.