Software Engineer, Senior

FlightSafety InternationalBroken Arrow, OK

About The Position

Design, develop, and enhance high-fidelity simulation environments and real-time software systems supporting advanced training and testing platforms. Bridge hardware interfaces with complex distributed software architectures while leading technical efforts, defining engineering requirements, estimating labor, and guiding software development teams.

Requirements

  • Bachelor's degree in Computer Engineering, Software Engineering, Electrical Engineering, Computer Science, or a related engineering discipline, or an equivalent combination of education and experience.
  • 5+ years of related experience in software engineering preferred.
  • C, Modern C++, C#, .NET, Python, Lua, Fortran
  • Distributed Interactive Simulation (DIS), High Level Architecture (HLA), TENA, Command and Control, Simulation Scheduling
  • Service-Oriented Architecture (SOA), API Design, Distributed Systems, Real-Time Systems, Object-Oriented Design (OOD), Object-Oriented Programming (OOP)
  • UML, SysML, Model-Based Systems Engineering (MBSE)
  • ZeroMQ, DDS, EMQX, JSE/Grid
  • Visual Studio, Visual Studio Code (VS Code), Eclipse
  • Microsoft Windows, Linux, Red Hat Enterprise Linux (RHEL), Ubuntu Linux
  • Google Test, Automated Testing, Manual Testing, Software Verification, Software Validation
  • Git
  • Jira, GitLab
  • Azure DevOps, Git, etc.
  • Strong geometry and mathematics capability, Euclidean geometry, matrix algebra, vector math, calculus, differential equations.
  • bash, Power Shell, Python, Perl or other scripting experience
  • MS Visual Studio
  • Reading and using technical specifications
  • Lean/Agile Software Development

Responsibilities

  • Design, develop, modify, test, integrate, and maintain high-fidelity real-time simulation software, executive control software, systems-level software, and scalable applications supporting distributed training and simulation environments.
  • Develop data-centric services, reusable software components, development frameworks, and enterprise software solutions throughout the software development lifecycle, including research, design, implementation, integration, testing, deployment, maintenance, and sustainment.
  • Modernize legacy applications by transitioning software to Service-Oriented Architecture (SOA) using API-driven design principles.
  • Design and maintain distributed software architectures, reusable services, middleware, APIs, and scalable enterprise simulation platforms.
  • Develop distributed simulation environments utilizing Distributed Interactive Simulation (DIS), High Level Architecture (HLA), and Test and Training Enabling Architecture (TENA).
  • Support command and control systems, simulation scheduling, distributed computing, real-time processing, and advanced simulation technologies.
  • Develop, integrate, and maintain hardware interface software, device drivers, middleware, and distributed systems.
  • Support hardware/software integration, troubleshoot technical issues, evaluate system performance, and recommend improvements for reliability, scalability, maintainability, and operational efficiency.
  • Design and execute manual and automated testing, develop software test procedures, contribute to automated test suites, perform software verification and validation, resolve defects, and improve software quality throughout the development lifecycle.
  • Apply Object-Oriented Programming (OOP) and Object-Oriented Design (OOD) principles, including inheritance, encapsulation, and polymorphism.
  • Perform software requirements analysis, software architecture, interface design, implementation planning, configuration management, code reviews, design reviews, and technical documentation.
  • Research, design, and prototype new technologies, algorithms, software architectures, engineering processes, and simulation capabilities.
  • Conduct research and development, develop engineering tools, and remain current with emerging technologies through technical publications, training, and industry conferences.
  • Provide technical leadership by mentoring software engineers, supporting project engineers and team leaders, estimating engineering effort, defining simulation engineering requirements, recommending technical solutions, and supporting project execution.
  • Collaborate with software engineers, hardware engineers, systems engineers, project engineers, program management, and cross-functional teams to deliver integrated simulation systems, communicate technical recommendations, solve engineering challenges, and support continuous improvement.
  • Support computer system requirements, hardware integration, software maintenance, system upgrades, lifecycle management, engineering documentation, technical reports, operating procedures, and software documentation.
  • Maintain compliance with export control regulations, security policies, and company procedures governing technical data, software, equipment, and proprietary information.
  • Ensure documentation accuracy, complete assigned work with accountability, maintain accurate time reporting, adhere to work schedules, support travel, overtime, and shift work as required, demonstrate professionalism with internal and external customers, promote teamwork and collaboration, work safely in a constant state of alertness, and obtain or maintain a security clearance when required.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service