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.

Score my resume against this job, free →

Get your ATS score for this role — free. Score my resume free →