-
Experience
Embedded Software Engineer - Caterpillar Inc April 2019 to present
Responsible for design, development and testing of Applications that enable back office communication, delivery of Over the Air software update and remote trouble shooting of Medium and Large earth moving machinery using C++, C & Shell Script on Embedded Linux communication devices (Network Managers, Cellular Radios, Satellite Radios and Infotainment Displays).
Responsible for developing and managing drivers for ethernet Switches and PHYs, Cellular and Satellite Modems, CAN controllers, the management of SDK for different architectures of Embedded Linux Devices.
Member of “Core Information Software Security” team tasked with the development and management of security for Caterpillar’s Embedded Linux devices and ECUs.
Developed and Implemented Display Initiated Troubleshoot and Flashing Client API for Caterpillar’s proprietary Embedded Applications.
Developed and Implemented long term fixes for devices with GPS Rollover issues caused by the 10-bit week counter in reading NMEA 0183 sentences, which overflows every 19.7 years. Was awarded the “GPS Rollover Hero” award for efforts in getting the fixes out to field.
Developed ethernet (2-wire and 4-wire) drivers for Broadcom and Microchip based PHYs and ethernet switches.
Software Engineer - Cyient Inc. July 2015 to April 2019
Active member of highly Agile Client Team at Core Information Software Security, CAT Electronics, responsible for development of cutting-edge technology for telematics radios and network managers.
Responsibilities include developing and testing system level applications as well as drivers for telematics devices for its use on Embedded Linux based Systems using C, C++, shell script and python, whose scope include CAN, Ethernet, Flashing and Back office communication applications.
Implemented Dual Stack IPv4v6 Support for CAT Electronics line of Telematics ECUs and Radios, thereby making CAT fleet of telematics ECUs capable of switch over to IPv6 completely by a back-office command remotely.
Accomplished real-time fleet telematics device statistics monitoring by implementing Monit based system alert mechanism capable of detecting issues on machines real-time at remote locations of earth using telematics onboard-offboard handshakes
Achieved 80 to 90% reduction in cost of updating software every year of Caterpillar Telematics Devices by inventing and implementing ‘Retroactive Differential Flashing for Telematics Devices’ allowing devices that do not support delta flashing to undergo delta flashing.
Managed and led the development of ‘USB plug and Flash; type System Flash Application for next-generation Hydraulic Excavator Machine to and flash all ECMs on a vehicle from a USB Drive, achieving a cost reduction of almost the entire amount by making the procedure to not require a professional to update software on Caterpillar’s Hydraulic
-
Projects
802.1Q Port Based Vlan Trunking for telematics devices November 2020
Responsible for investigation and development of 802.1Q vlan trunking feature for Caterpillar’s line of telematics devices.
Developed and added driver API to enable trunking feature and its components for telematics devices.
Retroactive Differential Flashing for Telematics Devices January 2017 to November 2020
Co-Invented & Developed a method to allow for a differential flashing application over a cellular connection which effectively identifies, patches and flashes the telematics device, making it usable on a device that does not have the capability of differential flashing or delta flashing, i.e., Devices with software older than ones that support differential flashing.
Integrated the method in already existing flashing logic to provide for System Flash as an extension of the implementation.
Devised reliable state machine logic to reliably download, sort, update, patch and flash the OS and Application components and report the states to Caterpillar Backoffice securely without affecting Machine Operation.
Raspberry Pi based Home Automation Tool January 2017
Developed raspberry Pi based home automation using email containing the JSON message to parse commands and execute them
Wrote a python based script to which fetches email as command every minute with the aid of a monit.
Parser uses a unique identifier to verify the authenticity of command and use it to control hardware pin voltages
Android Blog Reader Application March 2015
Developed an android blog reader app, which fetches live feed information from the website through JSON API and displays blog posts in orderly option with sort options to sort according to date.
The application was implemented using MVC Architecture with a UI approach of having a Splash Screen, Post Lister and Post Content Display
Two Wheel Balancing bot using LPC 1768 and MPU-6050 October 2013 to November 2013
Led a team of 2 in developing and testing a two-wheeled bot capable of balancing itself based on the principle of inverted pendulum using 6DOF MPU 6050 Gyroscope and LPC 1768 Microcontroller through I2C using C++
Implemented a design that utilizes Kalman filter implementation to remove noises in gyroscope values and achieved instant prediction of equilibrium changes to the bot
Speed control of BLDC Motor using PIC 16F877A Microcontroller June 2011 to May 2012
Led a team of three in developing a Low-Cost Controller for BLDC Motor utilizing PIC 16F877A with C-Program
The Design developed supports for power range up to 800 watts at relatively cheaper hardware
The Controller includes an inbuilt inverter module and driver. The designs were prototyped using PROTEUS and then implemented in PCB using EAGLE.
Implemented 2-Layer PCB designs in hardware using sta