Lead Software Engineer
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.