Embedded Software Engineer with 7+ years of experience in embedded software development on Linux/RTOS platforms. Skilled in developing component-based architectures and designing software for microcontrollers using C programming language. Extensive experience with Embedded Linux boards including RPI, Orange Pi Pc Plus, ESP32, EFR32, MW300, and NRF52. Strong knowledge of communication protocols such as I2C, SPI, MQTT, MODBUS and UART. Hands-on expertise in interfacing with devices like GPIO expanders, RF readers, sensors, and TFT using a frame buffer. Well-versed in client-server communication through Socket programming using TCP/IP, UDP, and low-level Socket APIs in C. Solid understanding of Linux operating system concepts including basic commands, process management, multi-threading, signals, synchronization, inter-process communication, and memory management.
Project 1: EMS System (Schneider Electric - DC System, Netherlands)
Description: Developed a DC/DC converter system that functions as both a battery charger and a communication interface with the Battery Management System (BMS). Compatible with NiMH, Li-ion, and Lead battery storage systems, this solution is ideal for applications such as peak shaving, UPS (emergency systems), and grid-congestion management. It operates autonomously without external control and includes protections against various faults, including grid-side peak current faults, overvoltage, and battery overvoltage.
Skills and Technologies: C++, Modbus
Responsibilities:
Project 2: TeSys Island Predict POC (Schneider Electric)
Description: Developed TeSys Predict, an algorithm-driven solution based on Model-Based Voltage and Current (MBVI) techniques for predictive maintenance, condition monitoring, and energy management. This includes real-time system diagnostics and 1- and 3-month fault predictions. The Predict module, part of a larger configuration with TeSys Island BC, VIM, Starter & Predict modules, reads CAN data, generates CSV files for VI sampling, and provides input to the Faraday algorithm.
Skills and Technologies: C, CAN, Linux
Responsibilities:
Project 3: Dpas-Lora (Schneider Electric)
Description: The Dpas-Lora system integrates three chips—EFR32 (BLE), Zigbee, and LoRa—for a range of IoT applications. Zigbee sensors like Power Tag, Heat Tag, and OFSD transmit data, events, and alarms through the LoRa chip to a gateway, while the BLE EFR32 chip connects to a mobile app (Android/iOS). EFR32 serves as the main controller, handling data management, firmware updates, LoRa packet transmission, and HMI status control.
Skills and Technologies: C, Communication Protocols, BLE EFR32
Responsibilities:
Project 5: Access Control System (Print Electronics Equipment)
Description: Built a biometric attendance system that authenticates users through fingerprint scanning. Upon successful fingerprint verification against the stored database, an Employee Code (AID) is generated, which is then cross-referenced with the system database. Attendance is recorded if the employee is registered, and users can also clock in using an RFID card.
Skills and Technologies: C, UART, I2C
Responsibilities:
Project 6: WIPRO PIAM (Print Electronics Equipment)
Description: Designed to operate on Wipro’s proprietary PIAM protocol, this project involved configuring the device as a TCP/IP server to receive offline commands from a Wipro client application, as well as acting as a client to send online user records to the Wipro server. Additionally, the system uses UDP for IP configuration, FTP for firmware updates, and data backup.
Skills and Technologies: C, Shell Script, CGI programming for Webserver
Responsibilities:
C
CPP
Agile
Algorithm Development
Requirement Analysis
Debugging
Linux Internals
Shell script
Hardware Skills
Test strategy
Serial Communication
Traveled to the Netherlands for hands-on knowledge transfer session with DC systems on the EMS project