Harsh Gondaliya
I am deeply interested in building distributed networked systems and working on solving technical challenges to help operate these systems at scale with high performance and efficiency. I have hands-on experience building distributed networked systems end-to-end (through academic projects), have in-depth knowledge of different layers of the Networking stack, and have a solid understanding of the Internet Infrastructure.
Since 2016, I've been actively volunteering at Yogi Divine Society (an International NGO) to help 220+ youths (spread over 7 countries) imbibe spirituality in their daily lives and be successful in their careers.
My latest resume is available here (Last Updated: September 10, 2023).
Email: harshgondaliya99@gmail.com
LinkedIn: linkedin.com/in/harshgondaliya
GitHub: github.com/harshgondaliya
Publications
Comparative Evaluation of IP Address Anti-Spoofing Mechanisms on a P4/NetFPGA-based Switch
EuroP4’20: Proceedings of the 3rd P4 Workshop in Europe
Harsh Gondaliya, Ganesh C. Sankaran, Krishna M. Sivalingam
PDF PPT Video GitHub Repository
P4 and NetFPGA based secure in-network computing architecture for AI-enabled Industrial Internet of Things
IEEE Internet of Things Journal 2021
Ganesh C. Sankaran, Krishna M. Sivalingam, Harsh Gondaliya
PDF GitHub Repository
Selected Project Work
Fault-Tolerant Distributed Key-Value Storage System
Developed a fault-tolerant distributed key-value storage system using Rust language that supports a Twitter-like application where users can follow-unfollow other users, post messages from different frontends, and view posts of users they are following on their timeline.
The distributed system comprises 300 backends each hosting multiple user-specific key-value stores called bins. Furthermore, 10 keeper instances take charge of synchronizing the clocks of all the backends and maintaining two replicas of each bin at different backend servers.
SurfStore: Cloud-Based File Storage System
Developed a Dropbox-like cloud-based file storage system using Go language that syncs a local directory of multiple clients with the remote directory in the cloud by downloading and uploading necessary file changes.
Surfstore runs a Blockstore service on the cloud that is used to store and retrieve blocks of file data, and a Metastore service that is used to store information about the mapping of files to their respective file blocks' hashes.
Multi-Cloud-Based Active Network Measurement Pipeline
Developed an active measurement pipeline using SaltStack and Netbird that automates the process of launching ping experiments to all public router IP addresses on the Internet from 85 vantage points hosted in 27 different AWS regions around the world, and collection of aggregated results at the server.
Mentored a graduate student to add 109 vantage points hosted in 37 different Google Cloud Platform regions and 88 vantage points hosted in 36 different Microsoft Azure regions to the aforementioned active measurement pipeline.
Custom HTTP Web Server
Implemented a custom HTTP web server from scratch in Go language (without using Go net/http package functions) that parses a subset of HTTP request-response headers, handles concurrent client connections and sends appropriate HTTP responses as per the HTTP GET requests received.
Distributed Sort
Implemented distributed sort algorithm using socket programming in Go language that reads an input file, partitions data records, sends data records to peer servers, receives data records from peer servers, sorts the data records, and writes the sorted output to a file.
Each peer server maintains a TCP connection with every other peer server and uses the connection to send/receive items to/from the peer server.
Tribbler: Blockchain-Based Decentralized App
Developed a Twitter-like application hosted on the Ethereum test network that allows users to follow-unfollow other users, post messages from different frontends, and view posts of users they are following on their timeline.
Used Solidity programming language to write smart contracts for the app and Python to write code for frontend clients.
High-Performance Matrix Multiplication Implementation
Implemented a Scalable Vector Extension (SVE) instruction-based microkernel, memory packing and register tiling code in C language to achieve around 21.5 Gflops peak performance for square matrix multiplication computation for matrix sizes in range 511 to 2048 on AWS arm64 c7g.medium EC2 instance.
Implemented matrix multiplication kernel, matrix tiling, and memory coalescing code using CUDA (C/C++ based parallel computation API) to achieve 3000+ Gflops peak performance for square matrix multiplication computation for matrix sizes in the range 512 to 4096 on NVIDIA's Turing GPU.
Parallelized Implementation of Aliev-Panfilov Cardiac Simulation
Parallelized the scalar implementation of Aliev-Panfilov Cardiac Simulation in C++ language that could achieve 1515 Gflops peak performance (vs 12.7 Gflops for the original scalar implementation) on 384 cores of Expanse supercomputer at San Diego Supercomputer Center.
Implementation involved using MPI to communicate intermediate results between neighboring cores.
Performance Characterization of ThinkPad T470 running Ubuntu 20.04.2
Implemented test framework in C language to measure and analyze the performance of CPU, OS services (process vs. task creation time, context switch time), memory (cache vs. RAM access time, RAM bandwidth, page fault service time), network (application-level round-trip time, peak bandwidth, connection overhead), and file system (file cache size, local vs. remote file read time, contention) for Lenovo ThinkPad T470 running Ubuntu 20.04.2 LTS.
Regional Access Network Topology Inference
Deduced the access network topology of Excitel broadband (a medium-sized wireline broadband provider in India) by analyzing traceroutes launched from different RIPE Atlas vantage points to the company’s entire public IPv4 address space and identifying backbone routers using the Rapid7 reverse DNS dataset.
BurstRadar (Research Paper Implementation)
Implemented using P4 V1Model Architecture, BurstRadar: Practical Real-time Microburst Monitoring for Datacenter Networks paper by R.Joshi et al., published in the Proceedings of the 9th Asia-Pacific Workshop on Systems (APSys’18).
BurstRadar detects a microburst in the dataplane, captures a snapshot of telemetry information of all the involved packets, and exports this information to a monitoring server in an out-of-band manner.
Tested the system's effectiveness by deploying it in a network created in a mininet environment and simulating microburst events.
P4-NetFPGA Workflow Setup & Testing
Carried out hardware, software, and network topology set up from scratch to compile, deploy, and test P4 programs on NetFPGA SUME.
Created a network topology of workstations embedded with NetFPGA SUME to successfully test the In-Band Network Telemetry (INT) and SwitchCalculator P4 programs.
Added missing steps for the tutorial assignments in the GitHub wiki of the P4-NetFPGA-public repository.
Corrected description of the multicast exercise in the p4lang/tutorials GitHub repository.
Conducted Performance Evaluation of Open vSwitch with DPDK datapath (OvS-DPDK) for Inter-VM Communication.
KVM-QEMU hypervisor was used to run the virtual machines.
After fine-tuning all DPDK parameters, achieved the following performance improvements in OvS-DPDK, as compared with OvS:
TCP Connection: 43.3% decrease in Latency, 93.2% increase in Throughput
UDP Connection: 55.9% decrease in Latency, 78.6% increase in Throughput
BrainLee: An Ed-Chatbot for Facebook Messenger
Teaches students a variety of Computer Science subjects by interacting with them.
Intelligently delivers material to provide an adaptive learning experience to students.
Sends students detailed notes (as an email attachment) for the conversations held with it.
Built using Engati Chatbot Platform.
Multi-feature Smart Stick for Blind
An Arduino-based Stick that assists blind people in walking by providing the following four crucial features:
Obstacle Detection: When an object is detected within a 3-meter range of the stick, a buzzer rings. Video Link
Water Sensing: When the base of the stick touches any water or liquid element, a buzzer rings. Video Link
Stick Searching: When the blind needs to search for his stick, he could press an IR Remote button. This will ring a ringtone at the active buzzer embedded in the stick. The sound of this ringtone will enable the blind to search for his stick. Video Link
Smart Decision Making: If all three features need to be triggered at the same time then the priority is given as:
Stick Searching > Water Sensing > Obstacle Sensing Video Link
Lifestyle Store Shopping Website
Designed an e-commerce website having user account management and shopping cart management facility.
Used PHP and MySQL to provide back-end support; HTML, CSS, and Bootstrap to build the front-end of website.
Computer Networking Teaching Service
Winter 2022 Evaluation Report [By Course Instructor]
Winter 2022 Evaluation Report [By Course Students]
Spring 2022 Evaluation Report [By Course Students]
Winter 2023 Evaluation Report [By Course Students]
Served as a Teaching Assistant for the CSE 123: Computer Networks course at UC San Diego for three academic quarters.
Teaching duties involved designing Computer Networking homework, leading discussion sessions, conducting office hours, and leading two one-month-long C programming projects that involve implementing Sliding Window Protocol and a basic router that supports ARP, IP, and ICMP protocols.
Awarded the Honorable Mention for Excellence in Teaching Award for two consecutive years for exemplary performance and dedication in teaching the Computer Networking undergraduate course for the academic year 2022-23 and 2021-22.
Community Service
Youth Leader
In 2016, I spearheaded the initiative of conducting online weekly assemblies for youths in Yogi Divine Society (YDS).
In these meetings, talks are delivered by invited speakers from YDS (backgrounds: saints, researchers, professors, teachers, entrepreneurs, etc.) to edify youths, inspire them to imbibe spirituality in their daily life, and support them in achieving their career goals.
My weekly service involves inviting speakers, convening youths, and coordinating with all the volunteer members.
As of July 2023, 280+ weekly assemblies have been conducted, 220+ youths spread over 7 countries are a part of the weekly assemblies, and 70+ invited speakers from 6 countries have taken part in the weekly assemblies.