Skills:
Linux system administration, Shell scripting, Programming in C/C++, Knowledge of Linux kernel, Experience with Linux distributions, Debugging and troubleshooting skills, Version control systems (e.g. Git), Understanding of network protocols,
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.