Position: Senior Software Engineer – Real-Time Systems
Location: Chennai
Experience: 5+ Years
Notice Period: Max 30 days
Role Overview
We are looking for a Senior Software Engineer specializing in Real-Time Systems to design and build high-performance software for a complex, hardware-integrated product.
The ideal candidate is first and foremost a strong C++ software engineer with experience building reliable, multithreaded, performance-sensitive systems. You should be comfortable working close to hardware and developing software where latency, timing, concurrency and deterministic behavior matter.
Experience with robotics, embedded systems, medical devices, or other hardware-integrated products is a bonus .
Key Responsibilities
Design, develop and maintain production-quality software in modern C++ .
Build high-performance, low-latency and real-time software components.
Develop multithreaded and concurrent software with predictable behavior and performance.
Design clean, modular, maintainable software architectures and APIs.
Work on software components that interface with hardware, sensors, actuators and other system components.
Analyze and improve application performance, latency, memory usage, and CPU utilization.
Diagnose complex software issues involving concurrency, timing, resource management, and system performance.
Develop robust error handling, fault management, logging and diagnostic capabilities.
Write unit tests, integration tests and automated software validation.
Participate in architecture, design, and code reviews.
Collaborate with systems, hardware, controls, test and other software engineering teams.
Contribute to engineering best practices around coding standards, testing, CI/CD, debugging and software quality.
Required Qualifications
BS/MS in Computer Science, Computer Engineering, Electrical Engineering or a related technical discipline or equivalent practical experience.
5+ years of professional software development experience.
Strong proficiency in modern C++ , preferably C++17/20 or later.
Strong understanding of:
Object-oriented software design
Data structures and algorithms
Multithreading and concurrency
Memory management and resource ownership
Templates and STL
Modern C++ design patterns and idioms
Experience developing software on Linux .
Experience developing performance-sensitive, low-latency, or real-time software.
Strong software debugging and problem-solving skills.
Experience diagnosing race conditions, deadlocks, memory issues, and performance bottlenecks.
Solid understanding of software testing and maintainable software architecture.
Ability to work effectively across software and hardware-oriented engineering teams.
Preferred Qualifications
Experience in one or more of the following areas is a plus:
Real-time operating systems or real-time Linux
PREEMPT_RT, QNX, or similar real-time environments
Hardware/software interfaces
Embedded software development
Robotics or industrial automation
Medical-device or surgical-robotics software
Sensors, actuators, or motor-control systems
Inter-process communication and shared-memory systems
CAN, EtherCAT, Ethernet, SPI, I2C, UART, or similar communication interfaces
Performance profiling and system-level debugging
What We Value
We are looking for engineers who have strong software engineering fundamentals and can build software that is reliable, understandable, maintainable and performant.
Experience developing embedded software, robotics systems or other software that interacts with physical hardware is a strong bonus .
📌 Senior Software Engineer (Chennai)
🏢 Meril
📍 Chennai