Key Responsibilities:
Design, develop, and maintain software applications for Linux-based platforms.
Implement socket programming for efficient network communication.
Develop and manage multithreaded applications to ensure high performance and responsiveness.
Implement Inter-Process Communication (IPC) mechanisms such as Linux message queues, shared memory, and pipes.
Interact with databases, including writing and optimizing queries for application requirements.
Integrate and consume RESTful APIs or other APIs as needed.
Debug, troubleshoot, and optimize applications for performance and reliability.
Collaborate with cross-functional teams for requirements gathering, design reviews, and testing.
Maintain technical documentation and adhere to coding standards.Required Skills and Qualifications:
Proficiency in C or C++ with strong programming fundamentals.
Experience in Linux application development, including system programming.
Hands-on expertise in socket programming for TCP/UDP communication.
Solid understanding of multithreading concepts and synchronization techniques.
Familiarity with IPC mechanisms, such as Linux message queues, shared memory, and semaphores.
Experience with database interaction (e.g., MySQL, PostgreSQL, or SQLite) and query optimization.
Proficiency in working with API integration, especially RESTful APIs.
Knowledge of debugging tools and techniques (e.g., GDB, strace).
Familiarity with development tools like GCC, Make/CMake, and version control systems like Git.
Strong problem-solving and analytical skills.Preferred Skills:
Experience with Python or shell scripting for auxiliary tasks.
Knowledge of software security and encryption techniques.
Familiarity with Agile development methodologies.
Understanding of cloud technologies or distributed systems.