Job Title - Senior C++ Developer (OOP | Linux | HW-SW Integration)
Job Description
We are seeking a highly skilled C++ Developer with strong expertise in Object-Oriented Programming (OOP), a solid Linux systems background, and hands‑on experience in hardware‑software integration and testing. The ideal candidate will play a key role in developing high‑performance applications and ensuring seamless interaction between software modules and hardware components.
The role requires strong debugging skills, system‑level understanding, and the ability to work in a cross‑functional environment involving firmware, hardware, and QA teams.
Core Programming Skills
- Strong proficiency in C++ (mandatory)
- Deep understanding of:
- Object‑Oriented Programming (OOP)
- Data structures and algorithms
- Memory management (pointers, smart pointers)
- Multi‑threading and concurrency
Linux Expertise
- Strong hands‑on experience in Linux/Unix environment
- Familiarity with:
- Shell scripting (Bash)
- Linux commands & file systems
- Process and thread management
- System‑level programming (POSIX APIs)
Hardware‑Software Integration
- Experience in:
- Device drivers / embedded interfaces
- Communication protocols (UART, SPI, I2C, CAN, Ethernet, etc.)
- Interfacing with sensors, peripherals, or embedded boards
- Knowledge of firmware interaction and debugging
Testing & Debugging Tools
- Experience with:
- Debugging tools: GDB, Valgrind
- Profiling tools: perf, top, htop
- Integration testing frameworks
- Strong debugging and root cause analysis skills
Build & Development Tools
- Build systems: Make, CMake
- Version control: Git
- CI/CD familiarity (optional but preferred)
Roles & Responsibilities
Software Development
- Design, develop, and maintain robust applications using C++ (modern standards preferred: C++11/14/17).
- Implement scalable and maintainable code using OOP principles (encapsulation, inheritance, polymorphism).
- Develop low‑level and system‑level components for Linux‑based platforms.
Hardware‑Software Integration
- Work closely with hardware teams to integrate software with embedded systems, sensors, or devices.
- Develop drivers, interfaces, or middleware components to enable communication between hardware and software.
- Validate hardware behavior through software testing and debugging.
Testing & Validation
- Perform integration testing across hardware and software layers.
- Design and execute test cases for system‑level validation.
- Troubleshoot issues related to hardware interfaces, drivers, and system interactions.
Linux System Development
- Develop and debug applications on Linux‑based systems.
- Work with Linux tools (e.g., GDB, strace, top, perf) for performance tuning and debugging.
- Handle memory management, multi‑threading, and process synchronization.
Debugging & Troubleshooting
- Analyze and resolve complex issues across software, firmware, and hardware.
- Use debugging tools and logs to identify root causes.
- Optimize performance and reliability.
Mandatory Skills- Object‑oriented Programming (OOP), Linux, Shell Scripting, C++, Embedded Software, Cmake, Make