I am an incoming undergraduate computer science student at IIIT Hyderabad. I have contributed 400+ issues/PRs across 30+ repositories over the past seven years - starting with my first PR for Google Code-In when in 2018, to most recently working with MIT Media Lab’s Large Population Models (LPM) team on their AgentTorch project for differentiable agent based learning since April 2024.
I’m the co-maintainer for the popular node.js libraries express-rate-limit and express-slow-down used to shield servers from DDOS attacks, contributor to vercel/serve, Refined Github, FPM, Beckn, Sunbird Registries and Credentials, and have created projects such as Dabbu (a knowledge platform), office-text-extractor, as well as yeet (a package manager for Arch Linux), amongst others. I participated in the national ONDC Grand Hackathon in 2022 and my team won a special mention award. I was also invited to give a talk titled 'A 12 Grader's Journey to Opensource Contribution via Sunbird and Beckn' at the Sunbird DPG Tech Fusion Conference in 2024.
Rewrote the library in Typescript, created the modern store interface and continue to maintain it alongside @nfriedly, the original author. Help in maintaining 7 out of the 8 stores written for the library, and helped rewrite the default memory store to make it more memory-efficient.
Helped with the rewrite in Typescript, and achieving feature parity with express-rate-limit. I continue to maintain it alongside @nfriedly, the original author.
Created a custom model using the framework to simulate movement of predator and prey on a map of Central Park, NY. Also added a feature that allows for easier declaration of substeps using decorators.
Currently working on improving the Python API, creating interactive simulations for various use cases such as solar panel adoption, zoning policy, as well as integrating it with Beckn.
Refactored the library, added tests, and transitioned to ESM + Typescript.
Contributed to 8 popular features, including useful-not-found-page, restore-file, quick-comment-edit, linkify-code and forked-to.
Restructured the documentation, rewrote parts of the installation page, added a getting started page, tutorials and examples, as well as a CLI flags reference page.
Fixed a bug where the library does not export-default an expression when re-exporting the default export from another file.
Added a host validation check to the flutter doctor tool.
Documented process of creating and working with registeries, and created the registry-cli package to spin up a registry quickly and easily.
Helped create a site for developer documentation using Gatsby and Astro, and dockerized the reference Beckn app implementation.
Updated the library to work with the latest version of V.
Added installation guide to the readme.
Created a script to automate adding plugins to the official channel.
The Dabbu Knowledge Platform was created with an aim to rethink the way we organize and traverse large amounts of knowledge, no matter where it is stored. Dabbu allows you to access any of your personal information (Gmail, Google Drive, OneDrive, your hard drive, etc.) as simple files and folders from the Dabbu CLI.
You can also go into the knowledge drive where you can pivot
information by topics/people/places. For example,
k:/$ cd austin
will return you all your information
from Gmail, GDrive, OneDrive that has a reference to the place
Austin. You can further narrow your search by running
k:/austin$ cd ravi@example.com
. This would show you
all emails and files that are related to Austin and from/to
ravi@example.com.
The feature that allows you to organise/search your files based on
topics in the files' text, uses the Latent Dirichlet Algorithm to
extract the topics. In the future, I'd like to generate a
one-pager/summary related to a certain set of
topics/places/people. For example,
k:/austin/ravi@example.com$ one-pager
should give me
a neatly organized one pager of all Austin related things I have
discussed with ravi@example.com. This could be tackled using small
AI models, or simple natural language processing.
The specification and minimal reference implementation for a plugin-based service that allows issuers to render verifiable presentations, based on the W3C verifiable credential specification from templates, and store it in a queryable database for holders to list/retrieve.
Yet another library to extract text from docx, pptx, xlsx, and pdf files. What sets it apart is that it parses files based on their mime types, and not their file extensions. It does not spawn a child process to use a tool installed on the device, and it reads and returns text from the file if it contains plain text.
While the parsers for pdf, docx, and xlsx files use popular libraries, the parser for pptx files is written and maintained by me.
A minimalistic pacman wrapper written in bash.
A minimalistic backup tool written in bash.
tiny, adorable urls: a url shortener, written in python using flask and sqlite3.
A HTTP content negotiator for V that allows you to parse the Accept header of an HTTP request and get the preferred response media type specified by the client.
Plugins to format and lint code using Prettier and XO for my favourite editor, Micro.
A python that uses Deeplator to translate subtitles in .srt files to and from six different languages. This project was one of my first open source projects, and my submission to Google Code-In in 2018.
I participated in the Hackathon with my younger brother to reimagine how kirana store owners would update their catalog online. My brother did the UX designs, while I helped create a Beckn-powered Svelte web component that enabled voice based search and creation of items in a crowdsourced product catalog. It uses the Webkit Speech Recognition API built into Chromium-based browsers and fuzzy search to return useful search results.
Our submission won a special mention award from the jury.
The following are topics I would like to research in the near future.
The following are areas that I have previously explored: