Senior C++ Software Engineer
We are looking for an experienced Senior C++ Software Engineer with strong hands-on development experience in C++ and a solid understanding of object-oriented programming, databases, and software design. The ideal candidate should be currently working extensively with C++ and have at least 5+ years of professional software development experience.
Experience with Versant Object Database and Embedded Systems would be highly desirable.
Key Responsibilities
- Design, develop, enhance, and maintain complex software applications using C++.
- Develop high-performance, scalable, and reliable software components following object-oriented design and programming principles.
- Work on existing C++ applications as well as new feature development, enhancements, and modernization initiatives.
- Troubleshoot complex application issues, perform root-cause analysis, and implement effective solutions.
- Write clean, maintainable, efficient, and well-tested C++ code.
- Work with databases such as PostgreSQL and/or MongoDB, including data access, queries, integration, and performance considerations.
- Collaborate with architects, developers, QA engineers, product teams, and other stakeholders throughout the software development lifecycle.
- Participate in code reviews, design discussions, debugging, performance optimization, and technical documentation.
- Contribute to application stability, scalability, reliability, and overall engineering quality.
- Support integration of software components with databases, external applications, and other system-level components.
Required Skills & Experience
- 5+ years of professional software development experience, with significant hands-on development using C++.
- Must be currently working with C++ in a development capacity.
- Strong knowledge of Object-Oriented Programming (OOP) concepts, including inheritance, polymorphism, encapsulation, abstraction, and design principles.
- Strong understanding of C++ fundamentals such as:
- Memory management and pointers
- Data structures and algorithms
- Multithreading and concurrency
- STL and standard C++ libraries
- Exception handling
- Debugging and performance optimization
- Experience working with PostgreSQL and/or MongoDB.
- Good understanding of software development lifecycle, coding standards, version control, testing, and deployment practices.
- Strong debugging, analytical, and problem-solving skills.
Preferred / Good-to-Have Skills
Versant Object Database
- Experience with Versant Object Database / Versant Object-Oriented Database is highly desirable.
- Understanding of object persistence and object-oriented database concepts.
- Experience integrating C++ applications with Versant or similar object-oriented database technologies would be an advantage.
Embedded Systems
- Experience developing software for embedded systems or embedded environments.
- Understanding of resource-constrained or performance-sensitive applications.
- Experience with low-level programming, hardware/software interaction, device-level applications, or real-time systems would be beneficial.
Ideal Candidate Profile
The ideal candidate is a hands-on C++ engineer rather than someone who has primarily moved into management, architecture, or non-C++ technologies. We are particularly interested in candidates who have recently worked on complex C++ applications involving databases, high-performance systems, embedded environments, or system-level development.
Priority of Skills
Must Have
- C++ 5+ to 8+ yrs experience
- Currently hands-on with C++
- Strong Object-Oriented Programming concepts
- PostgreSQL and/or MongoDB
- Strong debugging and problem-solving skills
Good to Have
- Versant Object Database
- Embedded Systems experience
- Multithreading/concurrency
- Performance optimization
- Linux/Unix development environment