Projects
Xorg(Mesa): Implement presentation features in VDPAU state tracker
Mentor: Christian König (Senior Developer, AMD) Code
- Implemented luma keying as part of color space conversion code and bicubic and lanczos interpolation algorithms as fragment shaders in TGSI
- Reworked the VPDAU mixer implementation so that it uses temporary buffer while applying filters
- Implemented DRI3 helper code for the Gallium interface for hardware with PRIME GPU offloading
- Used the DRI3 to send handle of a texture directly to X to be used as back buffer and avoids extra copying
Analysing the effect of kernel mode switch on multithreaded applications
Undergradutae Project, Prof. Mainak Chaudhuri
- Used a modified version of qemu and linux kernel to collect traces for mutlithreaded applications including traces for OS activity
evdev-rs: rust bindings for libevdev
Mentor: Peter Hutterer (Senior Software Engineer, RedHat)
- Implemented a safe wrapper to use libevdev in Rust, libevdev is a wrapper library for handling evdev kernel devices
- Used high level rust features to encorporate enum type safety, memory safety, and type inference
Analysing high performance cache replacement policies for CloudSuite
Course Project, Prof. Biswabandan Panda
- Analyzed the CloudSuite for their performance with respect to Last-level cache replacement policies like Hawkeye, ShiP++, etc
- Used CRC2 simulator ”ChampSim” which models a out-of-order superscalar processor with the entire cache heirarchy and a DRAM model
Java Compiler in Python (JCP)
Compiler Design, Prof. Amey Karkare
- Implemented a Java to x86 compiler from scratch in python using ply
- Incorporated advanced features like object heap allocation, classes, foreign funtion interface
Online Academic Registration System(OARS)
Mentor: Prof. P.P. Kurur and Prof. Satyadev Nandkumar
- Build a web application using Ruby on Rails to facilitate the process of academic registration
- Used docker for development and deployement of the system in production
Edge-disjoint spanning trees in undirected graphs
Mentor: Dr. Ovidiu Daescu (Professor, The University of Texas at Dallas)
- Worked on finding 2 edge-disjoint spanning trees in a special class of graphs with 2n-2 edges and a double edge
- Proved a lemma regarding allocation of edges of 2,3 and 4 degree vertex
- Conceptualized an algorithm to construct the two trees using the lemma, currently trying to implement and prove it
Rust bindings for libevdev
Mentor: Peter Hutterer (Senior Software Engineer, RedHat) Code
- libevdev is a wrapper library for handling evdev kernel devices
- Implemented a safe wrapper to libevdev library, also wrote documentation and tests for the bindings
Social Robot
Mentor: Prakhar Jawre
Documentation
Project Video
Code
- Developed an animatronic head capable of human interaction via speech and through its Twitter handle
- Used Radxa Rock as the main development board along with Arduino Mega for controlling servos and Python as the primary language
- Implemented Speech to text using Google’s speech API, Artificial Intelligence through Pandorabots API, text to audio using eSpeak and connected to Twitter using TweetPony API

NachOS
Course Project under Dr. Mainak Chaudhuri(Associate Professor, IIT Kanpur)Code
- Implemented system calls pertaining to fork, exec, join, yield, sleep and exit for NachOS
- Implemented process scheduling algorithms like UNIX scheduling, round-robin, SJF, non preemptive
- Implemented page replacement algorithms such as random page allocation, FIFO, LRU and LRU clock
App Timer
Mentor: Prashant Jalan
AppTimer is a android library which provides the time spent by the user on each app. AppTimer supports until Android Kitkat. It uses GET_TASKS permission to retrieve the app which is running in the foreground.
- Explored various ways to calculate the time spent by user on each ways and implemented the most efficient one
- Developed a background service which would run at specific intervals and record the application which was running in foreground at that time and store it in SQL database
- The Code is available on github
Stable Marriage Problem
Mentor: Dr. Rajat Mittal (Professor, IIT Kanpur)
The Report is available here
- Studied the Stable Marriage Problem and Analysed the proof of the algorithm to solve it
- Studied various standard techniques used in solving the problem and its variants
- Analysed theorems regarding existence of a stable marriage in case of incomplete lists