Designation: Sr. Software Engineer (Embedded C/C++)
Skills: Embedded C/C++, Linux, FreeRTOS, Python, Shell Scripting
Qualification: B.E – Electronics / E&TC / Computer Science or equivalent
Location: Pune
Experience: 4 – 7 Years
Role overview
As a Senior Software Development Engineer, you will be expected to demonstrate strong developer mindset and problem-solving capabilities. The role involves developing innovative and scalable applications using C/C++ based on customer requirements, taking ownership of assigned tasks, and contributing to system design, development, debugging, testing, and maintenance activities.
Required Technical Expertise
- Strong knowledge of Embedded C/C++ programming.
- Good hands-on experience in C++, multithreading, and multitasking application development on Linux and FreeRTOS platforms.
- Strong understanding of Windows System APIs and OS concepts such as Events, Mutexes, Semaphores, etc., along with RTOS concepts.
- Experience in socket programming and networking protocols such as TCP/IP and UDP, especially in application development.
- Familiarity with development environments and IDEs such as Visual Studio, Eclipse, and STM32CubeIDE.
- Excellent debugging, analytical, and problem-solving skills.
- Experience in development on microcontrollers such as STM32, PIC32, and ESP32.
- Ability to automate existing processes using Shell scripting, Python tools, and GitHub Actions pipelines.
- Good understanding of the product development lifecycle.
- Good understanding and hands-on experience with UART and RS485 and other communication protocols and related debugging/troubleshooting.
Role & Responsibilities
- Demonstrate strong developer mindset and problem-solving capabilities.
- Develop innovative and scalable applications using C/C++ based on customer requirements.
- Take ownership of assigned tasks and work independently with minimal supervision.
- Participate in system design, development, debugging, testing, and maintenance activities.
- Coordinate with the PM/TL on current programming tasks.
- Quickly produce well-organized, optimized, and documented source code.
- Work independently when required.
- Debug existing source code and resolve problems.
- Continuously learn and improve skills to pursue new technical areas.
- Attention to detail is essential and all tasks must be carried out to the highest quality.