About the job Senior Software Engineer
Senior Software Engineer
Full-Time | Tulsa, OK (Onsite)
U.S. Citizenship Required
Opportunity Overview
We're partnering with an established engineering and simulation technology company developing advanced training and simulation systems used in aerospace, defense, and mission-critical environments.
We are seeking a Senior Software Engineer with strong C/C++ development experience who enjoys solving complex technical challenges, designing software architectures, and working on sophisticated real-time simulation platforms. This role combines hands-on software development, system integration, and technical leadership within a highly collaborative engineering environment.
The ideal candidate has experience developing software for simulation systems, training devices, embedded systems, aerospace applications, defense programs, or other real-time deterministic environments. Candidates with Linux experience and exposure to legacy simulation architectures written in C, C++, Ada, or Fortran will be especially attractive.
What You'll Do
- Lead software development efforts for advanced simulation and training systems.
- Design, develop, test, and maintain software applications primarily using C and C++.
- Analyze system requirements and translate them into robust software architectures and technical designs.
- Develop software solutions that support real-time, deterministic, and high-performance simulation environments.
- Define and support hardware/software integration requirements.
- Conduct technical trade studies and evaluate alternative implementation approaches.
- Collaborate closely with systems, hardware, networking, and manufacturing teams.
- Troubleshoot and resolve complex software, integration, and performance issues.
- Participate in software verification, validation, and acceptance testing activities.
- Support deployment, installation, and customer acceptance events.
- Produce technical documentation including software designs, interface specifications, test procedures, and status reports.
- Contribute to proposal efforts and future technology initiatives.
Technical Leadership Responsibilities
While this role does not include direct personnel management, it carries significant technical leadership responsibilities, including:
- Mentoring junior and mid-level engineers.
- Conducting code reviews and technical peer reviews.
- Promoting software engineering best practices.
- Supporting onboarding and knowledge transfer efforts.
- Driving process improvements and technical excellence.
- Assisting project leadership with technical planning and risk assessment.
- Facilitating collaboration across multidisciplinary engineering teams.
Required Qualifications
- Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, Physics, Mathematics, or a related technical discipline.
- 4+ years of software engineering experience.
- Strong development experience using C and/or C++.
- Experience developing software in Linux environments.
- Understanding of software architecture and object-oriented design principles.
- Experience with software integration, debugging, and testing.
- Experience using Git, Subversion, or similar version control systems.
- Knowledge of networking concepts and computer architectures.
- Strong troubleshooting and analytical skills.
- Excellent communication and technical documentation abilities.
Highly Desired Experience
Candidates with experience in the following environments should be prioritized:
- Simulation and training systems
- Flight simulators
- Aerospace software
- Defense systems
- Mission systems
- Embedded systems
- Real-time systems
- Distributed systems
- Hardware-in-the-loop (HIL)
- Software-in-the-loop (SIL)
- Deterministic computing environments
Preferred Technical Experience
Programming Languages
- C
- C++
- Ada
- Fortran
- Python
- C#
Operating Systems
- Linux
- RHEL
- Ubuntu
- CentOS
- Unix
Technical Areas
- Real-time software development
- Deterministic software execution
- Simulator architecture
- Software/hardware integration
- Networked simulation systems
- Performance optimization
- Multi-threaded applications
- Distributed computing systems
What Makes Someone Stand Out
The best candidates often come from environments where software must perform predictably and consistently under real-world conditions.
Examples include:
- Flight training simulators
- Military simulation programs
- Embedded aerospace systems
- Avionics software
- Defense platforms
- Mission planning systems
- Industrial control systems
- Real-time visualization systems
Experience with older simulator architectures that incorporate C++, Ada, Fortran, and Linux is particularly valuable.
Interested candidates can apply directly or email doug.halve@techpartnersllc.com for more information.