Senior Software Engineer, C++
About HireRight:
HireRight is the premier global background screening and workforce solutions provider. We bring clarity and confidence to vetting and hiring decisions through integrated, tailored solutions, driving a higher standard of accuracy in everything we do.Combining in-house talent, personalized services, and proprietary technology, we ensure the best candidate experience possible. PBSA accredited and based in Nashville, TN, we offer expertise from our regional centers across 200 countries and territories in The Americas, Europe, Asia, and the Middle East.
Our commitment to get it right every time, everywhere, makes us the trusted partner of businesses and organizations worldwide.
Overview:
We are looking for a Senior Software Engineer to maintain, enhance, and progressively modernize a large enterprise Windows desktop application built in native C++.
The current system includes UI components, backend business logic, Oracle database integrations, and SOAP-based service integrations (Axis2/C). The application has evolved over several years and contains a complex legacy codebase requiring strong debugging skills and architectural understanding.
In addition to maintaining the existing C++ system, this role will contribute to modernization initiatives by designing and developing Java-based backend services using Spring / Spring Boot, enabling gradual migration of business logic from the legacy application into scalable service-based components.
The ideal candidate is comfortable working in large legacy systems, diagnosing complex issues, and building modern service-based components that help evolve the system architecture over time.
Responsibilities:
- Maintain and enhance a large enterprise Windows desktop application written in native C++
- Understand and work effectively within a large legacy C++ codebase
- Debug complex production issues including:
- memory leaks
- race conditions
- deadlocks
- application crashes
- Perform crash dump analysis and runtime diagnostics
- Optimize memory usage, CPU performance, and concurrency
- Maintain and enhance Oracle database integrations
- Maintain existing SOAP-based integrations using Axis2/C
- Design and develop Java-based backend services using Spring / Spring Boot
- Gradually extract or migrate business logic from the desktop application into service-based components
- Design APIs that allow the legacy C++ system to interact with new services
- Troubleshoot and maintain build systems using Visual Studio and MSBuild
- Collaborate with QA, product management, DevOps, and architecture teams
- Conduct code reviews and enforce engineering best practices
- Contribute to incremental refactoring and modernization of legacy components
Qualifications:
8–12 years of software development experience, including strong experience with native C++ development and exposure to Java-based backend services using Spring or Spring Boot.
Must-Have Skills
Core C++- Strong expertise in native C++ (C++03/C++11 or later)
- Deep understanding of:
- OOP & OOAD
- STL and templates
- memory management
- RAII and object lifetime
- Experience working with large legacy C++ systems
- Strong experience with Windows desktop application development
- Familiarity with:
- Win32 APIs
- DLL development
- Windows services
- Strong proficiency with Visual Studio IDE and MSBuild
- Advanced debugging skills using:
- Visual Studio Debugger
- crash dump analysis
- memory leak detection
- performance diagnostics
- Ability to own and resolve complex issues end-to-end
- Experience developing backend services using Java
- Strong knowledge of:
- Spring / Spring Boot
- REST API development
- service-oriented architectures
- Experience integrating enterprise systems through API-based services
- Strong experience with:
- multithreaded programming
- synchronization primitives
- diagnosing race conditions and deadlocks
- Experience integrating applications with Oracle databases
- Strong SQL knowledge
- Familiarity with stored procedures / PL-SQL
- Experience with Axis2/C or SOAP-based service integrations
- Experience with MFC / ATL / COM
- Familiarity with Boost libraries
- Experience with performance profiling and tuning
- Experience with CI/CD pipelines (Jenkins or similar)
- Experience modernizing legacy systems into service-based architectures
- Strong analytical and problem-solving skills
- Ability to quickly understand complex systems
- Strong ownership and accountability
- Clear technical communication and documentation skills
- Ability to mentor junior developers
What do we offer:
Please submit resume/CV in English.
All resumes are held in confidence. Only candidates whose profiles closely match requirements will be contacted during this search.
HireRight does not accept unsolicited resumes through or from search firms or staffing agencies. All unsolicited resumes will be considered the property of HireRight and HireRight will not be obligated to pay a placement fee.