Job Overview
-
Date Posted
November 28, 2024
-
-
Job Description
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.