We are seeking an experienced Senior C++ Developer to join our dynamic team. The ideal candidate will have 4-5 years of experience in software development using C++. You will play a key role in the design, development, and maintenance of complex software systems, working closely with cross-functional teams to deliver high-quality software solutions.
Responsibilities:
Design and Development: Lead the design and development of robust, scalable, and efficient software applications using C++.
Code Quality: Ensure high-quality code through unit testing, code reviews, and continuous integration practices.
Optimization: Identify and resolve performance bottlenecks, ensuring the software runs efficiently and meets performance benchmarks.
Collaboration: Work closely with product managers, architects, and other developers to understand requirements and translate them into technical solutions.
Documentation: Create and maintain technical documentation for the codebase and system architecture.
Mentorship: Provide guidance and mentorship to junior developers, fostering a collaborative and knowledge-sharing environment.
Troubleshooting: Analyze and debug software issues, providing timely resolutions to ensure smooth operations.
Requirements
Experience: 4-5 years of professional experience in C++ development.
Strong Knowledge: Proficiency in C++11/14/17 standards, with a deep understanding of object-oriented programming principles and design patterns.
System Design: Experience with software architecture and system design, particularly in designing scalable and maintainable systems.
Development Tools: Familiarity with development tools such as Git, Jenkins, and other CI/CD tools.
Problem-Solving: Strong analytical and problem-solving skills, with a focus on delivering high-quality solutions.
Communication: Excellent communication skills, both written and verbal, with the ability to articulate complex technical concepts to non-technical stakeholders.
Team Player: Ability to work effectively in a team-oriented environment, collaborating with other developers, QA engineers, and product managers.
Preferred Skills:
Library Expertise: Strong familiarity with the Standard Template Library (STL), Boost, and other essential C++ libraries.
Multi-Threading Proficiency: Proven experience in developing robust multi-threaded applications.
Cross-Platform Development: In-depth knowledge of developing applications for multiple platforms, including Windows, Linux, and macOS.
Agile Methodologies: Solid experience working within Agile/Scrum environments.
Standard Library Mastery: Thorough understanding of the standard library, including STL containers and algorithms.
Advanced C++ Concepts: Comprehensive understanding of dynamic polymorphism and C++-specific features, such as friend classes.
Template Programming: Familiarity with advanced C++ templating techniques.
Educational Requirements:
Degree: Bacheloror Masterdegree in Computer Science, Mechanical, Software Engineering, or a related field.