C++ Software Engineer
We are seeking a C++ Software Engineer with strong hands-on experience developing, debugging, and supporting applications in Linux-based environments. This role will focus on the design and development of reliable, high-performance software supporting complex, large-scale systems.
Location: Hybrid in Washington, DC; Eagan, MN; or Egg Harbor Township, NJ
Required Qualifications
- Bachelor s degree in Computer Science, Engineering, or a related technical field, or equivalent professional experience
- 3+ years of professional software development experience
- Strong hands-on programming experience with modern C++
- Demonstrated experience developing software in Linux-based environments
- Strong understanding of object-oriented programming, data structures, algorithms, and software design principles
- Experience debugging and troubleshooting complex C++ applications on Linux
- Proficiency with Linux command-line tools, shell environments, system logs, and process-level troubleshooting
- Experience developing and integrating APIs and distributed software components
- Experience with multithreading, concurrency, memory management, and performance optimization
- Hands-on experience with Git-based version control
- Experience working within Agile software development environments
- Ability to obtain and maintain required federal clearance or suitability
Preferred Qualifications
- Experience developing large-scale, mission-critical, or real-time software systems
- Strong knowledge of Linux internals, including processes, threads, networking, file systems, and resource management
- Experience with Bash or other shell scripting
- Experience with CMake, Make, GCC, GDB, or similar C++ build and debugging tools
- Experience designing or supporting distributed systems
- Experience with CI/CD pipelines and automated software builds
- Familiarity with Docker, Kubernetes, or containerized Linux environments
- Experience with messaging or event-driven technologies
- Experience supporting software in federal, aviation, transportation, defense, or other high-availability environments
Key Responsibilities
- Design, develop, test, and maintain C++ applications running on Linux-based systems
- Build reliable, maintainable, and high-performance software components
- Debug complex application issues using Linux and C++ diagnostic tools
- Develop and optimize multithreaded and concurrent applications
- Integrate software components with APIs, messaging platforms, and distributed systems
- Perform root-cause analysis of application, performance, memory, and system-level issues
- Participate in code reviews, system design discussions, and technical decision-making
- Collaborate with engineering, QA, DevOps, and platform teams throughout the software development lifecycle
- Support automated builds, testing, deployments, and continuous improvement of software delivery processes