Responsibilities:
C++ Application Development:
- Design, develop, and maintain robust and high-performance C++ applications on Linux
- Write clean, efficient, well-documented, and testable code
- Optimize performance using advanced C++ features such as memory management and inline functions
Multithreading & Performance Optimization:
- Implement and optimize multithreaded applications
- Use synchronization mechanisms (e.g., mutexes, condition variables) to manage thread-safe operations
- Troubleshoot and resolve performance bottlenecks
Software Lifecycle & Collaboration:
- Participate in the complete SDLC including requirements gathering, design, coding, testing, and deployment
- Contribute to architectural design and software discussions
- Collaborate with cross-functional teams including QA, project managers, and fellow developers
Environment & Tools:
- Develop and troubleshoot within a Linux environment using command-line and POSIX standards
- Work with source code management tools such as Git or ClearCase
- Utilize Agile/Scrum development practices
- Use Docker or similar containerization tools for deployment
Continuous Learning & Contribution:
- Stay current with modern C++ standards and best practices
- Participate in code reviews and documentation activities
- Contribute to improving team processes and system architecture
Mandatory Skills:
- 5+ years of C++ development experience
- Strong expertise in multithreaded programming
- Proficiency in Linux OS development and debugging
- Deep understanding of memory management, file I/O, and software architecture
Good to Have Skills:
- Source code management tools (Git, ClearCase)
- Familiarity with Linux IDE setups
- Experience with Agile/Scrum workflows
- Knowledge of Docker and containerization for deployment
- Web application development exposure on C++ platform
- Performance troubleshooting and debugging tools
- Project lifecycle and SDLC understanding
- Experience using Confluence for documentation
Soft Skills:
- Excellent communication and documentation skills
- Strong interpersonal skills and ability to collaborate in a team environment
- Proactive attitude with adaptability to changing priorities
- Sound decision-making and analytical thinking skills
- Team-oriented with a willingness to support others and share knowledge