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 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.
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
- Projects by user-cont team at RedHat :: Conu and Colin.
- MusicBrainz Picard website
- Mozilla’s Webcompat project :: Webcompat issue parser and Autowebcompat.
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" <email@example.com>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!