CV
CV
Research Experience
Doctoral Researcher | May 2020 - Present
Embedded Pervasive Lab
- Edge computing, specifically on control and data plane optimization for edge infrastructure with Dr. Umakishore Ramachandran.
- Network centric programming data plane optimizations with Dr. Alexandros Daglis.
Graduate Research Assistant | August 2018 - May 2020
Embedded Pervasive Lab
- Edge computing, specifically on control and data plane optimization for edge infrastructure.
Work Experience
Senior Software Engineer | Intel Corporation | June 2022 - Present
- Windows OS/VMM Internals
- Hardware/Software Virtualization on x86
- Windows Device Drivers (WDF/WDM)
- Windows User and Kernel Debugging
- Computer Architecture
Senior Software Engineer | Lockheed Martin | June 2020 - June 2022
Advanced Development Programs
- Technical lead for development, design, and implementation for communications software.
- Senior developer for communications and interfacing software for various hardware platforms supporting communications via wired and wireless communication protocols and communication standards using C/C++ and Python.
- Lead developer and functional owner for embedded linux distribution built with YoctoLinux to run CUDA/Deepstream object detection pipeline and supporting software on Tegra Xavier SoC.
- Lead developer and functional owner for simulation infrastructure to generate synthetic, auto labeled data for AI/ML object detection pipelines using MetaVR and AFSIM used to train deep learning models.
- Responsible for YoctoLinux toolchain/SDK infrastructure supporting both Windows(mingw32) and Linux(gcc) development toolchains to develop applications for embedded linux and baremetal platforms.
- Developed C/C++ vehicle control software for embedded linux and baremetal platforms for Xilinx Zynq Ultrascale+ MPSoC, Tegra Xavier SoC, and x86_64 based systems.
Lead Embedded Software Engineer | Georgia Tech Research Institute | August 2019 - June 2020
- Lead middleware developer for radar research products, developing abstraction layer between application and FPGA via Ethernet/AXI based communication using C++
- Lead developer on Ettus Software Defined Radio development using C++/Python APIs and GNU Radio
- Developed baremetal software to control filters/DAC for incoming/outgoing signals in C using MPLAB
- Developer for ALQ-213 using PowerPC MPC5200 Processor, and VxWorks 653 Partitioned/Module OS to communicate between interior “Guest” OSes.
- Lead effort to improve portability with in C/C++ code by reorganizing bitfield based structures into bit mask and shift based implementations
- Lead development of Partitioned OS compatible with POSIX and an emulated socket based ethernet stack in order to connect legacy VxWorks system with “system of systems” STITCHES generated code in C/C++.
- Developed ethernet communication for avionics radio communication logic in C, conducted code reviews on other developer code in Bitbucket
- Designed test harness and infrastructure in Python in order to test new partition functionality as well as test/characterize system for STITCHES integration needs.
- Built Vagrant compatible virtual windows development/build environment to build RTOS software seamlessly which removed massive overhead in keeping legacy Vxworks tools updated with continuously updating versions of windows.
Embedded Software Engineer | General Electric | July 2017 - August 2019
- Lead developer and functional owner for YoctoLinux based OS on ARM Cortex A53(Zynq Ultrascale+ MPSoC) and x86_64 Intel based platforms.
- Technical and Project Lead for TSN integration on locomotive control nodes, responsible for integration of scheduling infrastructure and overall hardware/software integration tasks.
- Lead developer for implementation of I/O messaging system driver in the ARM Linux kernel, leveraging use of softirqs to ensure efficient and performant delivery of I/O information from several I/O cards, using a proprietary messaging and networking protocol.
- Lead developer on software drivers that exercise many different areas of the Linux Kernel, including SPI, USB, I2C, and custom AXI FPGA device drivers. -Team Lead of Agile team as Scrum Master, using CA Agile Central(Rally) to denote priorities and tasks, plan sprints, assign team members to relevant tasks, and track velocity.
Edison Engineering Development Program | General Electric | July 2015 - July 2017
Edison Engineering Development Program(EEDP) is a two- to three-year early career program consisting of three or more rotational assignments. Rotational assignments are engineering projects driven by real GE business priorities. The program cultivates technical problem-solving skills via advanced engineering coursework, formal reports and presentations to senior leadership, in addition to valuable work experience.
Embedded Software Engineer | July 2016 - July 2017
- Worked with a cross functional team on development and integration of drivers that interface with FPGA and peripherals for new Zynq Ultrascale+ MPSoC in YoctoLinux OS. -Drivers developed/integrated include:
- Keypad Interface, Touchscreen Integration, PCI Express Gen2, Chromium Integration,UCD9016 Power Sequencer, TPM, PMU(Power Management Unit). -Migrated YoctoLinux from Linux Kernel 4.4 to 4.9. -Used Perl , Python, and Bash to develop Power On Self Test mechanism for locomotive display as well as other necessary boot, flash/eMMC/EEPROM programming, and initialization functions. -Implemented Secure(Encrypted and Authenticated) Boot and Multi-boot(golden image boot) to enhance security and reliability. -Developed documentation/automated how to build and create necessary boot files for SD Boot, USB Boot, and flash/eMMC.
Electronic Hardware Design Engineer | February 2016 - July 2016
- Lead obsolescence schematic design and verification for ethernets on display and consolidated input/output panels.
- Developed production test software for display card and consolidated input/output panel using QNX 6.3.2 and 6.5 RTOS.
- Developed FPGA based keypad interface and verification test software for development of new display using Xilinx Vivado on Zynq Ultrascale+ and PetaLinux OS.
- Established battery contactor control logic and developed verification test software on CPLD using Xilinx ISE 14.7 and QNX 6.4 OS.
Systems Engineer | July 2015 - February 2016
- Developed concept level solution to turbocharger reliability issues
- Developed system level requirements to be passed down to component level engineers
- Verified consolidated cooling models using hardware in the loop testing
- Analyzed subsystem level requirements for new real time clock algorithm
- Compared different software in the loop alternatives for next generation simulation testing
Teaching Experience
Graduate Teaching Assistant | August 2021 - Present
CS-8803 SDC (Systems Design In Cloud Computing) under Dr. Umakishore Ramachandran Terms: Fall 2021 to Present I am a teaching assistant for Systems Design in Cloud Computing a class that covers 4 main topics:
- Software Defined Networks (SDN)
- Cloud System Software
- Network Function Virtualization
- Cloud Applications
Specifically, I am fully responsible for the Cloud System Software Module.
Education
- 2020-2025 (expected)
- PhD, Computer Science; Georgia Institute of Technology
- 2017-2020
- MS, Computer Science; Georgia Institute of Technology
- 2011-2015
- BS, Electrical Engineering; Lehigh University
Awards and Honors
- Marshall P. Williamson Fellowship
- President’s Fellow
Publications
- Harshit Gupta, Tyler Landle, and Umakishore Ramachandran, ePulsar: Control Plane for Publish-Subscribe Systems on Geo-Distributed Edge Infrastructure, The Sixth ACM/IEEE Symposium on Edge Computing, San Jose, CA, December 14-17, 2021