Freelancing projects · Contract work

Feb 2019 — Apr 2019
Role: Backend developer and system administrator

Evnnt is an event directory to find events in your area—like comedy, concerts and meetups—by location, distance, category and more. I was responsible for extending and maintaining the website’s backend.


  • As a system administrator, brought the various services back up and configured them correctly.
  • Built and extended a robust scrapy pipeline for scraping events from multiple websites.
  • Created a high-performance web-app utilising Redis to monitor live statistics of the scrapy spiders.

Technologies used — Python, Django, Flask, Scrapy, Celery, Redis, Supervisord, Postgresql, Nginx, AWS SES.

Inboxignite formerly
Jul 2018 — Jul 2019
Role: Backend developer

Inboxignite is a domain reputation management platform for email marketers. I was responsible for building and maintaining most of the backend services.


  • Created a web-app for monitoring DNS records, checking availability of mail servers, and sending emails from those mail servers conveniently.
  • Created an SMTP smart-host for routing emails.
  • Created an email queuing system that sped up bulk-email sending rate over 140 times.
  • Created an email deliverability // folder placement checker.
  • Created an user authentication system and a dashboard, integrated with the database.

Technologies used — Python, Flask, Redis, Supervisord, Slimta, SMTP, IMAP, MySQL, DNS.

Oct 2018 — Jan 2019
Role: Full stack web developer

I was responsible for building a Flask web-app to be used for onboarding users to a cryptocurrency service.


  • Created a web-app facilitating user data collection and verification, complete with admin dashboard.

Technologies used — Python, Flask, SQLite, UIKit.

Sep 2018 — Dec 2018
Role: Software architect

Removeads offers a cloud-based ad blocker backed by a DNS sinkhole, that blocks all ads in your computer across applications. Ankit Solanki and I were responsible for designing and building the whole software stack from ground up.


  • Designed a system involving a GUI client app, and a fleet of DNS server which act as a DNS sinkhole.
  • Implemented automated VPS provisioning and getting an operational Pi-Hole installation.
  • Implemented a user authentication system.

Technologies used — Python, Flask, Pi-Hole, DNS.

Et Cetera …

Jan 2016 — July 2019

I had been working as an independent contractor for more than 3 years. Apart from the ones mentioned above, I have worked on numerous projects; but admittedly I have tended to choose projects with a relatively smaller scale, due to the intermittent nature of my availability as I was also continuing my college studies alongside this. I’m not currently looking for any freelance work.

Technologies used — Python, Selenium, Flask, Django.


Voluntary work

Department of Computer Science and Engineering @ IIT Delhi

Sep 2018 — Present
Role: System administrator


  • Implemented an Oauth authentication system to be leveraged by any app hosted within the infrastructure.
  • Maintaining the computer systems and networks, responding to support requests.

Technologies used — Linux, Apache2, Reverse Proxy, VM, DNS, DHCP.


Personal projects and open-source work

Contribution to Open-source


Drymail is a minimalist wrapper over Python’s existing smtplib and email libraries, designed to be friendly but unrestrictive.


  • Supports creating email with HTML content, plaintext content, or both!
  • Supports mentioning contacts in the "John Doe" <> format.
  • Support standard headers like CC, BCC, Reply-To and Authors.
  • Supports injecting custom headers.
  • Supports adding attachments.
  • And most importantly — the library being minimalist, it doesn’t restrict you in any way like some of the most fancier email frameworks do.


A simple CLI client for peer-to-peer file or message sending written in Python.


  • It supports file or message of size upto about 8.85 PeB (1 PiB ~ 10^6 GiB)!.
  • Protection against transmission error using CRC32 checksum.
  • Comes with CLI (command-line argument) and Interactive mode, both!

More on Github