About the author

I am a graduate of Netaji Subhas University of Technology (NSUT), India, with my degree in the field of Electronics and Communication Engineering (ECE), currently working as a research intern at Microsoft Research India. Before that, I worked as a research assistant with Dr. Rahul Purandare at Program Analysis Group (PAG), IIIT-Delhi. I have a keen interest in Operating systems, Program Analysis, and compilers.

Github Profile link:
Personality type: INFJ

Career Timeline

Sept, 2021 University of British Columbia, Vancouver
Master's Student

Advisor: Karthik Pattabiraman

Specialization: Error Resilient computing

August, 2020 Microsoft Research, India
Research Intern

Advisor: Akash Lal.

Worked on the development and benchmarking of a language - agnostic, systematic concurrency testing framework.

Aug, 2019 IIIT-Delhi, New Delhi
Research Assistant

Advisor: Rahul Purandare.

Worked on aiding program comprehension through the extraction of object-oriented features like class relationships from X86 executables, DLLs and representing them as UML class diagrams.

May, 2019 University of Delhi, New Delhi

Graduated from the University of Delhi - First class with distinction 🙂

April, 2019 University of Delhi, New Delhi
Bachelor's thesis defense

Advisor: Kunwar Singh

Successfully did my  thesis defense, Yipieeee!!
Specialization: Neuromorphic CMOS-Memristor hybrid ICs.
My thesis: LINK

May-August, 2018 Google
Google Summer of Code

Advisor: Gedare Bloom

* One of the 1268 students selected by Google worldwide to work with leading open source organizations;
* Worked on Real-Time Executive for multi-processor systems (RTEMS) and Flexible I/O tester (FIO) to develop a port and use it for benchmarking various In-memory, Flash and Block filesystems supported by RTEMS.

August, 2015 University of Delhi, New Delhi
Undergraduate Student

Specialization: Electronics and Communication Engineering.


Ongoing Projects:

1. Delay Injection:

Objective: To come up with delay fuzzing algorithms that efficiently explores the interleaving space of concurrent programs to find data races, atomicity/order violations and deadlock bugs.
Motivation: For testing multi-threaded programs, we can either do stress testing (run a multi-threaded application with large number of worker threads and then hope for the bugs to manifest themselves) or systematic testing/model checking (systematically explore the thread interleaving space). One big implementation hurdle with systematic testing is that it requires complete control over the concurrency, synchronization primitives and all blocking system calls/3rd party APIs. So, as an alternative to SCT, we are trying to use delay fuzzing for exploring the interleaving space of the programs. However, delay fuzzing with randomly injecting delays doesn’t work well and so we need to come up with other smarter algorithms.