Jagvir Dehal - Software Developer
Email: [email protected] | Github: jagvirdehal | LinkedIn: jagvirdehal
Summary
- Many years of experience working with C/C++, JavaScript and
Python
- Very well-versed in Linux, with several
years of experience using it as a desktop and server
- Comfortable working with large codebases
(Tesla, AMD, Ford)
- Well-practiced in operating systems and
real-time programming
- In-depth knowledge of firmware development
at Tesla and Ford
Work Experience
Maps and Navigation (C/C++, Go, Python)
- Developed a vehicle simulator for navigation
validation (Python, C++)
- Built a replacement for our firmware
networking code to utilize gRPC
(C++, Go)
- Implemented a new weather radar service in
Go, which in turn, saved $1.8 million.
- Integrated an AWS Client into our Navigation
infrastructure to significantly reduce costs and
deployment time
- Reproduced and patched a 2 year old
networking bug in our production
K8s deployment, as well as an
ETA update bug caused by a race
condition
- Contibuted a total of 122 PRs throughout the
internship
Bluetooth Drivers (C/C++)
- Developed a tool to tunnel UART bluetooth
data from an Android device (car) over a
TCP/IP socket to a Linux workstation in
C
- Cleaned up 10,000+ bugs and warnings in a large C/C++ and Java
codebase
- Worked on filtering PIIs from Bluetooth packets using C/C++ and
Wireshark
- Gained a solid understanding of the Make/SOONG build system in
AOSP
Display Abstraction Layer (C/C++)
- Updated 4 year old driver code for an FPGA GPU
to enable DisplayPort over USB 4 using
latest drivers.
- Refined my ability to use debug tools such
as gdb and WindDBG to quickly understand
a massive C/C++ codebase (the AMD display driver).
- Resolved issues and completed USB4
compliance process for Ryzen
6000 mobile GPUs using Voyager M4x, UCD-400, and
debugging tools
Systems Software/Architecture (Python)
- Developed a firewall automation portal to enhance NCR's new security policies
- Learned and utilized new technologies such as Ansible Tower (AWX),
Fortinet, and LDAP
- Collaborated remotely with teams in India, Ireland and USA
- Submitted a professional report to NCR's security team to support the adoption
of my firewall portal
Projects
Real-time Operating System from Scratch
(C++)
- Created a microkernel OS for a Raspberry Pi to control a
model train set from the 1980s
- Implemented a scheduler, interrupt handler/controller,
and several user tasks to build up our operating
system in C
- Created several patches to QEMU's
source code to implement Raspi functionality
that was not yet implemented
- Collected velocity and acceleration data of the model
trains to accurately predict their positions, avoid
collisions, and route them efficiently
(C++)
- Created a compiler for a subset of the Java language in
C++
- Autonomously tested compiler using the Fuzzing technique
via LibFuzzer and LibProtoBuf Mutator
- Compiler performs scanning/parsing of source code,
static checking on the resulting abstract syntax
tree, and code generation into x86 assembly
Custom Keyboard Firmware
(C)
- Developed custom firmware for my ATMEGAU32 keyboard using QMK
- Implemented a feature to dynamically display my WPM on the keyboard via
backlights
- Connected the keyboard to my smart home to control the lights and AC
- Goal: To gain experience with open source software, creating
firmware in C, and APIs
(Python)
- Developed a program that can arbitrarily solve endgame chess positions using graph
theory
- Optimized algorithms to work with large datasets upwards of 4.5 million
graph connections
- Utilizes data structure and algorithms knowledge to reduce time and space
complexity
(JavaScript + Docker)
- Developed an accessible flight simulation experience that uses a smartphone
accelerometer to control the airplane
- Implemented camera controls and movement from scratch using primative computer
graphics (vectors, quaternions, etc.)
(PyTorch)
- Developed a project focused on improving CNN accuracy for image
classification from unlabeled data
- Utilized Principal Component Analysis (PCA) to normalize and reduce image
complexity
- Clustered images together using K-means clustering approach
Skills
Languages | Knowledge | Tools
Hackathons
- Hack the North 2021
- Hack the North 2020++
- UofT Designathon 2020
- StarterHacks 2020
- Hack the North 2019
- ETHWaterloo 2019
- VikingHacks 2019 (organizer)
- PCHacks 2019
- WolfHacks 2018
- Hack the Hammer 2018
- UofT Local Hackday 2017
Education
Computer Science (BCS)
- Real Time Programming
- Operating Systems
- Data Structures & Algorithms
- Computer Vision