So you want to know about me, hmm? Interesting.

This page mostly contains what, where, when, and how I do or did something (no why — too much work). Like all descriptive pages, this page obviously doesn't do justice to all incidents and tasks I do or did, and so you might have to meet me personally for in-depth description (it'll be fun).

On a side note, although this page might look like a resume, I try to keep the descriptions informal and informative, which makes this page more human. You can navigate by clicking the buttons below or by scrolling down.

Work Study Projects Recognition Social


  • Aug 2017 — Dec 2017: TA/Consultant for CS 2800 (Discrete Structures)
  • Jan 2017 — Present: TA for CS 3110 (Data Structures and Functional Programming)

As a TA, I am responsible for leading recitation/discussion sections based on the class structure, grading and office hours, and as a consultant, I’m responsible for grading and office hours.

I had performed really well in these two classes, and I wanted to aid instructors in teaching future iterations of the courses. CS 3110 in Fall 2017 had a particularly deep impact on me as a Computer Science major, and I also wrote a blog post on specific topics I liked about functional programming. I enjoy teaching a lot and hopefully, I do that well.

I am working on formulating and solving sustainability issues with computational concepts with Prof. Carla Gomes and the student researchers. On the one hand, the lab model problems like materials discovery, bird conservation, infrastructure planning etc. in computer-interpretable algorithms and structures, while on the other, develop and design more efficient computational concepts that can be utilized for solving other Computer Science problems.

You can find links to my contributions in some projects below.

I aid the Access Services staff at Olin & Uris Libraries in shelving, procuring, paging, and circulating books etc. during my school semesters. I also help the patrons access the library and its offerings, during which I frequently come across interesting literature and conversations.

The team builds robots that we find cool to work on. Some examples of what the project team has built in the past are C-3PO, R2-D2, and MiniBot. I have worked on the SwarmBot sub-team in MiniBot in Spring 2017, designing small robots that exist and move in a swarm — user-controllable through a base station. In Fall 2017, I worked on the MiniBot Platform to provide an interface-cum-software package to ease user-MiniBot interaction.

Fun fact: Although most members opt for 3 credits (~10 hours/week) worth of work in the team, we end up devoting 15+ hours as building robots is not so easy. This workload particulary peaks in the end of the semester, when we showcase our projects in exhibitions and competitions, and extensively document our full work.

Our group of 5 students from Delhi Public School, Patna, represented our state Bihar to this extension of the 20th NCSC. We attended various lectures by researchers and professors at IIT, Kharagpur, and learnt about college-level instruction and research during the 1-month stay at the university. The discussion points of lectures and experiments ranged from modular arithmetic to electronic circuits to quantum mechanics, which were aimed at providing us and the other 19 groups with an advanced introduction to higher studies in science and technology.

Following our project on Waste to Energy at the 20th NCSC, our group of 5 students worked with Prof. Ajay Kalamdhad at IIT, Guwahati, on analyzing and identifying the potential of converting Municipal Solid Waste to Energy via incineration, recycling, and pyrolysis.


Bachelor of Science in Computer Science

Cornell University, Ithaca, NY

// todo

Elementary — High School

Delhi Public School, Patna, India

// todo


Solving the Avicaching Game Faster and Better

Computational Sustainability Lab, Cornell University

What an amazing first research experience in Computer Science! The project, the internship, and the life — all — went very well during the summer. I worked with Prof. Carla Gomes and Yexiang Xue on the Avicaching game in eBird, trying to solve the models faster and obtain more optimized results. We modeled the game using neural networks and linear programming to solve Avicaching’s sub-problems and used GPUs to accelerate the computation and help the Cornell Lab of Ornithology scale the game to more locations. My contributions and work can be broken down into some sub-tasks for readability:

  • Understand the architecture of GPUs and identify its benefits for certain types of computation, and shortfalls for others. I also implemented some simple saxpy kernels in CUDA to measure the extent of performance difference in parallel programming on GPUs.
  • Optimize the Avicaching sub-models on GPUs by utilizing neural networks implemented with PyTorch. As we found out, our models learnt better than previous models in simulation, and also ran faster — though that was possible by relaxing some constraints, as is often the case in Computer Science.
  • Write a report on the decisions we took, problems we formulated, and results we obtained. This was in addition to documenting the full code repository.
  • Present my work on GPU architecture, parallel programming gotchas on GPUs, and an overview of the Avicaching game modeling to the researchers at Computational Sustainability Lab at Cornell.

A Modular Approach to Optimal Hybrid Bus Allocation for TCAT

Cornell Mathematical Contest in Modeling (CMCM)

During the 3-day hackathon, we wrote a research paper for modeling efficient routes for Ithaca’s bus service (TCAT) considering its new hybrid buses to minimize the net fuel consumption. We modeled the routes directed graphs and ran search algorithms to find efficient routes in the network. To allocate which buses are suited for which routes, we came up with a Stack-Queue algorithm that exploits Computer Science concepts to allocate buses.

We had to model the problem, run experiments, and write an extensive report in 3 days! It was a tiring hackathon.

Fall 2017

Following our work on MiniBot Platform in Java in Spring 2017, we reasoned to rewrite all code in Python in Fall 2017. This was decided for two reasons:

  • Our client demanded a full Python code base so that we remained consistent in style and it was easier for developers to read and contribute in the future.
  • Python is more readily understood and used by beginner programmers, which our MiniBot project targets.

My major contributions were to:

  • Rewrite the back-end ‘basestation’ part of the MiniBot Platform source code, minus the Vision modules inside that directory. The basestation files were previously written in Java and it comprised the major chunk of the rewrite process that had to be written in Python. Since the fundamentals of this part of MiniBot Platform had already been established in Spring 2017’s Java version, rewriting wasn’t a very difficult 1-month job. However, I added type annotations (using the typing module) in dynamically-typed Python code and removed circular dependencies that had been glaring in the Java code.
  • Program a Raspberry Pi Zero W to function as an Access Point when it couldn’t connect to the internet, and create a hotspot. The user would then connect to the hotspot and enter their home’s Wifi credentials on a website hosted on that access point, which would reconfigure the Pi to connect to that Wifi network. After a reboot, the Pi would seamlessly connect to Wifi. This was done primarily to prevent beginner users from freaking out while setting up their MiniBot’s Raspberry Pis. The Access Point setup provides a seamless experience where the beginner users (and short-tempered developers for that matter) would not have to waste time setting up their Raspberry Pi to get started. Here’s the directory.

Spring 2017

After joining the team in early Spring’17, I worked on the SwarmBot subteam in the MiniBot project. Our group of 4-5 undergrads, among a total of ~50 team-members, brainstormed this idea of educational “Swarm Robotics” as a core element in the MiniBot kit, and worked on emulating a “pseudo-swarm” that would be controllable through a base station. I focused more on:

term-monopoly is a terminal-based framework for the Monopoly game built by Jehron, Jared, Marina, and me for our CS 3110 final project in OCaml. The salient features of our project are that one can play Monopoly with other friends inside their computers’ terminals (Linux and macOS supported), and they can write custom Monopoly boards to use in the framework. The framework provides for the basic rules of the game, and can be used to play on any compliant Monopoly board with upto 8 players. We also provide 3 AI agents, characterized by their complexity in analyzing their position in the game, which can be played against. To get started with playing and contributing, read this brief README.

I worked with Jehron on designing the GUI framework for term-monopoly, which was the central interface to interaction between the game State (state.mli) and AI controllers (controllers.mli). This involved learning Object-Oriented Programming styles in OCaml, using lambda-term and lwt to program a turn-based Monopoly framework, and designing different frames for display in the terminal.

These are some screenshots of the game, played in my computer’s terminal (background is my wallpaper).

Initializing term-monopoly
Initializing term-monopoly
Screen for a human player's turn: Frame shows several actions and views that the player can perform at this moment
Screen for a human player's turn: Frame shows several actions and views that the player can perform at this moment
Racecar gets another turn since they rolled a double: term-monopoly follows numerous Monopoly rules and features such as trading, selling, property color groups etc.
Racecar gets another turn since they rolled a double: term-monopoly follows numerous Monopoly rules and features such as trading, selling, property color groups etc.

Potential of Conversion of Waste to Energy in India

Dept. of Civil Engineering, IIT, Guwahati

The research program aimed at mapping the feasibility of converting MSW to Energy in India, and specifically in my city, Patna. We conducted Proximate Analyses of the waste that we sampled from residences in the university’s campus, and estimated the feasibility of waste-to-energy conversion based on Carbon, Nitrogen etc. content. Ultimately, we came up with a proposal for our city, Patna, to establish a waste-to-energy unit near the official landfill, with a rough financial estimate of the plant’s operating costs and profits/losses. We also compiled our 1-month research details into a project report.



I prefer people contact me via this form — it keeps my mailbox manageable. I’m not extremely active on online social media (prefer offline social media), so I may not be prompt in responding there.

Facebook   LinkedIn   Github