Description & Requirements
Job Description – C++ Developer
Job Summary:
We are looking for a highly skilled C++ Developer (8-12 years) with strong problem-solving abilities, a deep understanding of software architecture, and expertise in code quality and testing practices.
The ideal candidate should not only be proficient in data structures, algorithms, and object-oriented programming but also demonstrate critical thinking and hands-on experience in designing scalable and maintainable software.
Key Responsibilities:
• Develop high-quality C++ applications, ensuring robust architecture, maintainability, and performance.
• Enforce coding standards and best practices to achieve high-quality, modular, and testable code.
• Optimize data structures and algorithms for efficiency and scalability.
• Participate in architectural discussions on data handling, Concurrency, and system design.
• Conduct thorough code reviews to ensure adherence to coding standards and best practices.
• Implement unit tests to validate software quality.
• Debug and troubleshoot complex software issues, improving performance and reliability.
Required Skills & Qualifications:
• Strong proficiency in modern C++ (11/14/17/20) and Object-Oriented Programming (OOP).
• Hands-on experience with software architecture & Design
• Proven experience in multithreading, concurrency, and memory management in C++.
• Strong understanding of software quality principles, including code reviews, static analysis, and test-driven development (TDD).
• Familiarity with design patterns, STL (Standard Template Library), and smart pointers.
• Experience with debugging tools (GDB, Valgrind, AddressSanitizer, Clang Static Analyzer).
• Knowledge of unit testing frameworks (Google Test, Catch2, or similar).
• Hands on Experience of microservices, inter-process communication (IPC), and distributed systems.
• Experience with Agile/Scrum methodologies and CI/CD pipelines.
• Version control proficiency (Git, SVN, or Mercurial).
• Ability to articulate technical concepts clearly and participate in deep technical discussions.
Preferred Skills:
• Experience with CMake, Boost, Qt, or embedded systems.
• Scripting knowledge (Python, Bash) for automation.
• Development experience in Linux/Unix environments.
Education & Experience:
• Bachelor’s/Master’s degree in Computer Science, Software Engineering, or a related field.