Hello there! Thank you so much for taking the time to visit my website, it means a lot to me! I’m a software engineer who has been fortunate enough to work for some well-known companies in the tech industry, like Apple and Tesla. I’ve also had the opportunity to work on embedded systems in India, which was a great learning experience for me. My focus is primarily on systems programming and embedded systems, and I’ve been lucky enough to work on some interesting projects in those areas. I’m constantly learning and trying to improve my skills, and I love the challenge that comes with software development. If you’re interested in checking out some of my work, you can take a look at my portfolio. If you have any questions or just want to chat, feel free to send me an email.
Contributing to iPhone system software development, with a focus on performance enhancements and resource optimization.
Collaborating with diverse teams to implement essential features and improve system functionality.
Conducting comprehensive analysis and debugging to address system-level challenges and enhance overall stability.
Staying informed about evolving development tools and technologies to support ongoing system software improvements for iPhones.
Tesla Palo Alto, CA
Jun. 22 - Mar. 23 Autopilot Firmware Intern
Developed real-time embedded C code for ECUs across Model 3, Y, and Cybertruck platforms.
Collaborated with DSP team to rectify firmware bugs in Autopilot sensor's DSP applications.
Optimized python Hardware-in-Loop (HIL) testing scripts, boosting Autopilot sensor reliability with added features and protobuf-based communication.
Enhanced UDS routines and CAN message protocols, optimizing inter-ECU communication.
Debugged embedded software meticulously via RTOS traces, JTAG debugger, and CAN signals.
Experience (India)
IIT Bombay Mumbai, India
Jan. 19 - Aug. 21 Senior Project Technical Assistant, ERTS Lab, CSE Department
Oversaw software and firmware aspects of a pivotal development board crucial for CS684 at IIT Bombay and eY Robotics Competition, engaged by 364 participants.
Designed an ESP32 OTA application, facilitating Wireless AP setup, file serving, and OTA firmware updates for the embedded ATmega2560 and ESP32 microcontrollers on this developmental board.
Adapted ESP32's bootloader and partition table to ensure effortless OTA/user application transition, dynamically governed by real-time GPIO pin status on this development board.
CSIR - National Institute of Oceanography Panaji, India
Jun. 18 - Jan. 19 Project Assistant II
Played an integral role in the development of firmware for data acquisition systems.
Specifically focused on the TS-7260 platform, utilizing its powerful ARM9 architecture.
Authored Python scripts to streamline the data cleaning process, ensuring the integrity and quality of acquired data.
C, HTTP Server, Bootloader, OTA Update, ESP32, AVR
Led the software and firmware side of the development board, which is currently being used in the CS684 course at IIT Bombay and was used in eY Robotics Competition by 364 participants.
Developed an OTA application for ESP32 to start a Wireless Access Point, host a file server and allow OTA firmware update of the onboard microcontrollers, i.e. ATmega2560 and ESP32.
Modified the bootloader and partition table of ESP32 to enable switching between OTA application and user application in the flash, based on the status of a GPIO pin.
Nubot GPS Tracker Numadic
C, Flash Memory, OTA Update, ESP32
Extended life of W25N01GV 1Gb NAND Flash Memory used in Nubot by 29% by developing a custom logical data structure to push data in O(logN) and retrieve data from it in O(logN) (N = Total number of pages in the flash).
Wrote an OTA server to serve firmware and a client for ESP32 to fetch firmware using just sockets in C.
Developed a GATT Client Android App to debug Nubot v2 wirelessly over BLE.
Wrote firmware for this device which enabled it to host an HTTP server and serve a dynamic HTML page to plot temperature logged in real-time and provide an interface for the user to download logged data over Wi-Fi.
Software Projects (Data Structures and Algorithms Focused)
HuskyMaps University of Washington Course Project
Java, Data Structures and Algorithms
Implemented several algorithms in Java to add functionalities to HuskyMaps like autocomplete using Ternary Search Trees, changing the priority of an item using Optimized Min Heap and seam-carving of an image using Adjacency Lists, Topo Sort, Dijkstra’s and Dynamic Programming.
Built this classic game to learn OOP and Arrays data-structure.
Learned about Game-Loops also.
Software Projects
5G Home Internet QoS Prediction App T-Mobile Ongoing Project
XCAL/XCAP, Java, Python, Kotlin, scikit-learn, Spring, Android Studio
Collecting outdoor/indoor low and mid-band, 4G and 5G data using XCAL/XCAP.
Training an ML model to predict the quality of service for 5G mid-band from low or 4G mid-band signals.
Developing an Android app and the backend of the app for potential customers to predict the expected internet speed of T-Mobile 5G Home Internet at their home before they subscribe for the service.
Wrote a Golang CLI program to allow wireless uploading of Arduino sketches on both the controllers of eYFi-Mega (ESP32 and ATMega2560) via Arduino IDE.
Developed HLMSoft in C++ using Qt Framework to link additive and subtractive manufacturing commands into a single G-Code file enabling the controller of the CNC machine to control milling and welding unit for hybrid layered manufacturing.
Robotics Project
Vargi-Bots IIT Bombay Accepted in IEEE EDUCON 2022 Github Video
Python, ROS, Gazebo, OpenCV, MQTT, HTTP
Partnered with two team members to build a fully automated shipping warehouse with two UR5 Robotic Arms in Gazebo Simulator.
It can receive online orders via MQTT, log the data in a Google Sheet, send email notifications, and display relevant information on a hosted dashboard in real-time.
It was used to teach 1880 students ROS, Python, OpenCV, Robotic Manipulation and IoT.
Partnered with three team members in building MicroMouse like theme for the e-Yantra Robotics Competition 2019-20 to teach on OpenCV, Socket Programming, Embedded Systems and Hardware Designing to around 4000 students through Task Based Training.
Deep Learning Project
GymBo University of Washington Course Project Video
Python, Pytorch, OpenCV, Deep Learning, Computer Vision
Developed a deep learning-based workout assistant application to identify mistakes during an exercise and count the number of incorrect repetitions in a set of exercises. A ResNet3D-18 backbone was used to classify the exercises, and a pre-trained OpenPose MobileNetv1 was used to generate the kinematic model of the user doing the exercise.
Patent and Publications
An Apparatus having at least Dual-Microcontrollers on a Printed Circuit Board (eYFi-Mega Development Board)IIT Bombay Dr. Kavi Arya, Prasad Trimukhe, Sourav Jena, Kalind Karia Link:Product Page Status: Patent Pending (Application No: IN 202121023159)
Integrating Industry 4.0 in engineering education during a global pandemic: Approach and Learning EfficacyIIT Bombay Sourav Jena, Gayatri Ranade, Ruchi Sharma, Dr. Kavi Arya Status: Accepted in IEEE EDUCON 2022 Conference, Tunis, Tunisia
PBL Approach in Online Robotics Competition in Resource-Poor Environments: Maze Solver RobotIIT Bombay Suprabha Jadhav, Kalind Karia, Prasad Trimukhe, Sourav Jena, Dr. Kavi Arya Status: Published in IEEE EDUCON 2021 Conference, Vienna, Austria Link:Paper
Desk-Farmer: Cultivation on the Office-DeskIIT Bombay Rishikesh Madan, Sourav Jena, Rathin Biswas, Dr. Kavi Arya Status: Published in Lecture Notes in Civil Engineering, Springer Singapore Link:Paper
Retrofitment of CNC machines for Hybrid Layered ManufacturingIIT Kanpur Sourav Jena, Ravi Raj, Prof. J. Ramkumar Status: Published in SURGE 2016 Link:Report
Honors and Awards
🏆 Summer Undergraduate Research Grant for Excellence 2016, IIT Kanpur Awarded to 0.0575% of 1600 applicants. Certificate