Your Role and Responsibilities We are seeking a detail-oriented and at least 5 to 10 years experienced C/C++ developer proficient in building high-performance applications and has a solid understanding of .NET and related technologies. The ideal candidate will have expertise in optimizing C/C++ applications for both Windows and Linux operating systems, experience with database technologies and knowledge in implementing automated testing frameworks. This role requires a deep experience and understanding of multi-threading, multi-processing, and parallelization. Optimization techniques to process large amount of data including streaming data.
Key Responsibilities:
Develop and optimize C/C++ application for high-performance on Windows and Linux platforms.
Utilize advanced multi-threading, multi-processing, and process synchronization techniques to exploit all the available computing resource for building high-performance applications.
Leverage Git and GitHub for source code management and to foster code collaboration and review processes.
Work on continuous integration and delivery (CI/CD) pipelines, developing and incorporating automated testing and other common deployment practices.
Work with .Net applications integration, relation databases such a MS SQL Server, DB2, Json databases such as MongoDB, and in memory databases.
Implement and refine automated testing frameworks such as Google Test, Boost.Test, and CppUnit to ensure code quality and reliability.
Collaborate closely with cross-functional teams to troubleshoot complex technical challenges.
Stay abreast of the latest trends and technologies in software development, DevOps, and database management.
Required Technical and Professional Expertise
6 to 10 years experience
Bachelor’s or Master’s degree in Computer Science, Engineering, or related field.
Strong proficiency in C/C++ programming and a solid grasp of software development principles. • Expertise in optimizing applications for Windows and Linux environments, with a strong understanding of operating system fundamentals.
Deep Knowledge multi-threading, multi-processing, and synchronization techniques for efficient parallelization and optimization.
Understanding of network programming, processing data streams and adherence to security best practices.
Extensive experience with SCM tools, particularly Git and GitHub, and familiarity with branching strategies and workflows.
Demonstrated knowledge of DevOps practices, including but not limited to CI/CD pipelines, version control, automated testing, and configuration management.
Familiarity with .NET framework, .NET Core, ASP.NET, Entity Framework, and other related technologies.
Proficient in database technologies, especially MS SQL Server, DB2, NoSQL, in memory databases with knowledge of database design, development, and optimization.
Hands-on experience with automated testing frameworks and a commitment to maintaining high code quality through automated tests.
Excellent problem-solving abilities and the capacity to work in a fast-paced and dynamic environment.
Effective communication and teamwork skills.
Preferred Technical and Professional Expertise
Experience with containerization technologies (Docker, Kubernetes).
Familiarity with cloud services (IBM Cloud, AWS, Azure, Google Cloud) and their respective management tools.
Understanding of TCP/IP, UDP and S3 protocol for fast data transfer over network.