
Embedded Software Developer- Bangalore
- Bangalore, Karnataka
- Permanent
- Full-time
- Design, develop, and maintain embedded software components using Modern C++ (C++11/14/17).
- Implement multithreaded and inter-process communication mechanisms for embedded systems.
- Perform Object-Oriented Analysis and Design (OOAD) for complex system modules.
- Develop software for Linux-based embedded platforms, including kernel/user-space integration.
- Write device drivers, system services, and perform low-level system programming.
- Conduct code reviews, unit testing, and system debugging.
- Collaborate with cross-functional teams including hardware, QA, and systems architects.
- Contribute to system performance optimization, boot time reduction, and resource utilization improvement.
- 5+ years of experience in Embedded Software Development using C++.
- Strong knowledge of Linux system programming: threads, processes, memory management, file I/O, signals, etc.
- Deep understanding of Object-Oriented Programming (OOP) and OOAD principles.
- Proficiency in Linux internals, POSIX APIs, and IPC mechanisms (shared memory, message queues, sockets).
- Experience with build systems (CMake, Make), version control (Git), and CI/CD pipelines.
- Exposure to real-time operating systems (RTOS) or real-time Linux (PREEMPT_RT) is a plus.
- Experience with hardware interfaces (SPI, I2C, UART, CAN) is desirable.
- Familiarity with software debugging tools like gdb, strace, valgrind, perf, etc.