Role Overview
We are looking for an experienced C/C++ Developer with 2–4 years of hands-on experience in C/C++ programming and Linux-based development. The candidate will be responsible for developing, debugging, optimizing, and maintaining software applications and system-level components in a Linux environment. This is a full-time position located in Vizag, requiring willingness to travel as needed.
Responsibilities
- Design, develop, test, and maintain software applications using C and C++.
- Develop and maintain applications/components on Linux/Unix-based systems.
- Write clean, efficient, scalable, and maintainable code.
- Debug and troubleshoot software issues using appropriate debugging tools.
- Analyze existing code and implement enhancements, fixes, and performance improvements.
- Work with Linux system calls, processes, threads, IPC, sockets, and memory management.
- Develop and integrate APIs and software modules as required.
- Perform unit testing, integration testing, and debugging.
- Identify and resolve memory leaks, performance issues, and application crashes.
- Collaborate with cross-functional teams including software, QA, hardware, and product teams.
- Participate in code reviews and follow coding standards and development best practices.
- Prepare technical documentation related to software design, implementation, and testing.
- Troubleshoot issues reported from testing or production environments.
Requirements
- 2–4 years of professional experience in C/C++ development.
- Strong programming knowledge in C and C++.
- Hands-on experience with Linux/Unix environments.
- Good understanding of Object-Oriented Programming (OOP) concepts.
- Strong understanding of Data Structures and Algorithms.
- Experience with multithreading and concurrency.
- Good knowledge of Linux processes, threads, IPC, and memory management.
- Experience with GDB or similar debugging tools.
- Good understanding of Git/version control systems.
- Strong debugging and problem-solving skills.
- Good understanding of software development lifecycle.
- Bachelor's or Master's degree in Computer Science or Information Technology.
Nice to Have
- Experience with Linux system programming.
- Knowledge of TCP/IP, UDP, Socket Programming.
- Experience with CMake/Makefiles.
- Exposure to Embedded Systems / Firmware development.
- Knowledge of STL, Boost, or modern C++ standards (C++11/14/17).
- Exposure to CI/CD tools and automated testing.
- Experience working in Agile/Scrum development environments.
Skills
LinuxGDBGitMultithreading