- Lead software design and implementation across the full Software Development Life Cycle (SDLC), including requirements analysis, design, coding, testing, and deployment.
- Design and develop embedded software solutions in C and C++ for target platforms, including baremetal and RTOS-based environments.
- Perform unit testing (preferably using Gtest), bench testing, and module-level verification for developed or modified components.
- Experience in architecting embedded software or contributing to high-level system design.
- Collaborate with cross-functional and global teams for software integration, requirement clarification, and customer interactions.
- Provide technical guidance and support to project team members and participate in technical reviews.
- Analyze and troubleshoot complex issues in existing codebases; propose effective solutions and improvements.
- Prepare technical documents including design specifications, test reports, and release documentation.
- Ensure adherence to software quality standards, coding guidelines, and secure coding practices.
- Contribute to project planning activities such as effort estimation, risk identification, and mitigation planning.
- Support sustaining engineering activities for released products when required.
Requirements
- Bachelor’s degree in Electronics Engineering, Computer Engineering, Computer Science, or related field.
- 8 to 15 years of experience in embedded software development.
- Strong understanding of embedded systems, including microcontrollers and (preferably) microprocessors.
- Solid programming expertise in C and C++.
- Hands-on experience with RTOS, multi-threading, and inter-process communication mechanisms.
- Practical knowledge of serial communication protocols such as RS232, RS485, and peripheral interfaces like I2C and SPI.
- Strong debugging skills and experience working with large, complex codebases.
- Good understanding of the Software Development Lifecycle (SDLC) and configuration management practices.
- Working knowledge of Embedded Linux, MODBUS, and BACnet is an added advantage.
- Exposure to Visual Studio or PC-based application development is desirable.
- Preferred: Knowledge of automation frameworks to automate development testing
- Self-driven, with strong problem-solving abilities and a high level of ownership.
- Excellent verbal and written communication skills, with the ability to convey technical concepts effectively to internal teams, customers, and suppliers.