C++ Software Engineer
Description
We are looking for a skilled C++ Software Engineer with strong hands-on experience in C++14 and above on Linux-based systems. The ideal candidate should have expertise in inter-process communication (IPC), multithreading, socket communication, and microservice architecture, along with experience in developing web services, APIs, and MQTT-based communication solutions.
Roles & Responsibilities:
- Design, develop, test, and maintain high-performance software applications using C++14 and above on Linux.
- Implement IPC mechanisms and multithreaded applications to ensure efficient communication and concurrency.
- Apply appropriate design patterns and software engineering best practices to build scalable and maintainable solutions.
- Develop and integrate microservices, web services, and REST APIs.
- Implement socket-based communication for reliable data exchange between applications and systems.
- Work with MQTT clients and brokers for message-based communication and device integration.
- Debug, troubleshoot, and optimize application performance, reliability, and resource utilization.
- Collaborate with cross-functional teams to understand requirements and deliver robust software solutions.
- Participate in code reviews, unit testing, integration testing, and technical documentation.
Required Skills:
- Strong programming skills in C++14 or above on Linux/Unix platforms.
- Hands-on experience with IPC mechanisms and multithreading.
- Strong understanding of object-oriented programming, data structures, algorithms, and design patterns.
- Experience with microservice architecture and distributed application development.
- Proficiency in socket programming and network communication protocols.
- Experience developing and consuming web services and APIs, preferably REST APIs.
- Hands-on experience with MQTT clients and brokers.
- Good debugging, troubleshooting, and performance optimization skills.
- Familiarity with Git, Linux development tools, and build systems such as CMake.
Good to Have:
- Hands-on experience working with physical devices, embedded systems, or hardware interfaces.
- Knowledge of device communication protocols and hardware-software integration.
- Experience with Docker, CI/CD pipelines, and automated testing frameworks.
- Familiarity with messaging systems and distributed communication patterns.
Qualifications:
- Bachelor's degree in Computer Science, Information Technology, Electronics, or a related engineering discipline.
- 3-5 years of relevant experience in C++ software development.
- Strong analytical, problem-solving, and communication skills.
