Software Engineer
Virtusa
Hyderabad, Telangana, India
Role Overview
We are looking for an experienced C++ Developer with 7-8 years of hands-on software development experience to
design, build, optimize, and maintain high-performance applications. The ideal candidate will have strong expertise
in modern C++, object-oriented design, multithreading, data structures, debugging, and software engineering best
practices. The role requires strong problem-solving skills and the ability to work effectively with cross-functional
engineering teams in an Agile environment.
Key Responsibilities
- Design, develop, test, and maintain scalable and high-performance applications using C++.
- Translate functional and technical requirements into robust software designs and production-quality code.
- Apply object-oriented programming, design patterns, and clean-code principles to build maintainable solutions.
- Develop and optimize multithreaded and concurrent applications with focus on performance, reliability, and
resource utilization.
- Perform code reviews, unit testing, debugging, profiling, root-cause analysis, and defect resolution.
Identify performance bottlenecks and optimize CPU, memory, latency, and application throughput where required.
- Work with data structures, algorithms, STL, memory management, and low-level system concepts.
- Collaborate with architects, product managers, QA, DevOps, and other engineering teams throughout the software
development lifecycle.
- Contribute to technical design discussions, estimation, sprint planning, and continuous improvement initiatives.
- Mentor junior developers and help drive coding standards, engineering quality, and development best practices.
Required Skills & Experience
- 7-8 years of professional software development experience, with strong hands-on expertise in C++.
- Strong proficiency in C++11/14/17 or later, including STL, templates, smart pointers, lambdas, and modern C++
practices.
- Strong understanding of object-oriented programming, SOLID principles, design patterns, and software architecture
Fundamentals.
- Hands-on experience with multithreading, concurrency, synchronization, memory management, and performance
optimization.
- Strong knowledge of data structures, algorithms, debugging, and problem-solving.