As a programmer, I am a generalist who can work on most anything from low-level IoT and compilers to distributed systems in Kubernetes and Nomad. I have a few years of experience in building web apps and in open source, with different tech stacks. I like learning and I am always learning something. As a result of that, I know a bit too much of Python. I have been interested in functional programming and programming languages for a while and I’ve gotten good at writing Haskell/OCaml/Scheme. Recently, I have been exploring interactive theorem provers such as Coq, and dependent types. Adjacently, I have also started taking some interest in math after school.
I also self-host a lot. You can find what I self host in this post.
Traditionally, my way to solidify what I’ve learnt is to build something with it. As a result, in the past, I have built a DNS server from scratch, an SMTP server, a Python interpreter, and implemented coroutines in Python. Recently though, I have also been trying out writing about what I’ve learnt as a way to do that. Most often, I’ll start with implementing something and then write about it. I’ve found that that is the most thorough approach to learning new things.
Besides tech, I also read random fiction/philosophy, play chess, and enjoy art. I’m lazy when it comes to reading, so I stick to only those books that are most gripping to me (or those I listen to as audiobooks). My favorite reads have been Dune, Kafka on the Shore, and some of Camus' works.
Interesting Projects:
Here are some of my personal hobby projects that I find to be cool:
Mathbox [2023]
Math tools to make my study easier and more interesting. Includes a subset-of-Scheme interpreter.
JavaScript, Svelte
OS in Rust [2023]
An operating system in Rust. (Following tutorial). And a snake game written in the Kernel (my own addition).
Rust, Operating Sytems
autosaved [2022]
Never lose your code accidentally
Go, Git, Command line
gitignore.sh [2023]
curl -o .gitignore gitignore.sh/python
Linux, Bash, Caddy
minesweeper [2023]
minimalist, old-school minesweeper. purely client-side
JavaScript, HTML, CSS
kutty (at work) [2022-2023]
Building web UIs in pure python
Python, AST, composability. Elm-esque?
capstone (at work) [2022-2023]
Framework for authoring and serving guided projects
Python, Flask, Nomad, Redis, Task Queues, PostgreSQL, HTML/JS/CSS
fossclub [2022]
Flexible reward badges for FOSS contributors
Python, Django, APIs, UI design
khansama [2022]
Clean UI for recipes
Python, Flask, JavaScript, VueJS, Schema.org, UI
dns from scratch [2022]
My own implementation of a DNS server with 0 external dependencies in Go
Go, DNS, Reading RFC
metapy [2022]
A (~kindof) Python interpreter in Python – without using ASTs or bytecode
SICP, Python.
wizard chess [2019-2020]
Blindfold chess in Google Assistant
My first showcaseable hobby project.
Python, DialogFlow, Flask, Static Typing, Clever Logic
devtime [2020]
Plugin for devs to track their coding time
Python, Flask, VSCode integration, UX, Ingenious Auth Systems
kaspy [2023]
chess engine named after one of my favorite chess players
Python
Other contributions
Besides these, I have also contributed to some FOSS projects in various capacities, and volunteered to build and maintain software for some non-profit communities I like. I have also volunteered to do non-technical things in organising events.
Talks and workshops:
Sometimes I talk.
- What’s wrong with how we think about web development, at Barcamp Bangalore, 2022, RV University [Date: 5 Nov 2022]
- Objects and Types in Python, at FOSS Meetup Bangalore, Jan 2023, eGovernments Foundation Office [Date: 21 Jan 2023]
- Objects and Types in Python, at PythonPune Meetup, Jan 2023, Online [Date: 28 Jan 2023]
- 3-hour Workshop on Self-Hosting 101, at FOSSMeet ‘23, NIT Calicut [Date: 11 Feb 2023]
- Self-Hosting 101 in 20-minutes, at MumbaiFOSS 2023, IIT Bombay [Date: 11 Mar 2023]
- The Python Type System, at BangPypers Meetup Mar 2023, Deepsource Office [Date: 18 Mar 2023]
- Concurrency in a single thread: building asyncio from scratch, at ChennaiFOSS 2023, KISSFlow WTC Chennai [Date: 20 April 2023]
- The FOSS United Community, at JSConf 2023 [Date: 2 June 2023]
Volunteer(ing/ed) at:
- FOSS United [2021-Present]
- tech infra
- various errands (tech/outreach) at multiple community events
- helping other non-profits with tech
- Python Express [2023-Present]
- website, tech infra
- IFF [2022, 2023]
- website
- KeepUsOnline.net
- Shunya [2018-2020]
FOSS Contributions:
- small contributions to different projects.
Miscellaneous Flex
- I won Google Code-in contest in 2019 and won a trip to Google HQ in SF. Sadly, COVID hit in at the same time and I couldn’t go. [Late 2019-Early 2020]
- I won 1st prize at the DotSlash 5.0 hackathon conducted by NIT Surat, with a team of one :). I built autosaved [Jan 2022] during this hackathon.
- My team won the Best FOSS Hack prize at the OSDHack ‘22. We built fossclub. [Jan 2022] hackathon.
- I won 2nd prize at the Mumbai Hackathon, again as a solo participant. I built Khansama. [Apr 2023]
- I have written a DNS server in Go from scratch with zero dependencies. This wasn’t a full-blown server but it could do the basic serving of all kinds of SOA, A, and CNAME records. I had to implement the header encoding by hand which was challenging.
- I have also written an SMTP server from scratch. To learn about it.