Hi 👋,
I am Kaustubh Maske Patil, my pronouns are he/him. I’m 21 years old. I was brought up in the city of Latur in Maharashtra in India, and I have since made a move to Bangalore. I have been programming as a hobbyist since I was a teenager. Then I stumbled into the world of open source software. My first-time contributing was one of the steepest learning curves I’ve had, and that was my segue into more serious software development.
I don’t think a resume works very well for me, or for most people for that matter. It doesn’t show the informal coursework I’ve put in, the side projects I’ve built, and the open source projects I’ve contributed to, that are just as important as the companies I’ve worked at. That’s why I’m making this page for anyone interested in hiring me, so you’ll know if I’m a good match for your team.
If you’re looking for a more personal introduction to me, go to my about page. This one is going to be all programmingy-worky kind of stuff.
A bit about me (tl;dr kinda)
- I’m interested in functional programming
- I use Neovim and type at 120 wpm
- I have been writing Python for ~5 years
- I have been incidentally exposed to a lot of infrastructure management, e.g. absurd nginx configurations and custom DNS servers
- I self-host all that I can
- Non web-dev projects also interest me, perhaps more
- Some of my quirky interests are math and visualizations. I enjoy 3 Blue 1 Brown’s Youtube channel. I also dabble in creative coding sometimes
- I’m a big chess fan. Besides playing, I also sometimes watch broadcasts for hours
Tech stack
I’m more of a generalist when it comes to programming tools. I believe in being familiar with a spectrum of available tools and then using the right ones for the right job.
That said, these are the tools I have worked with in the past and can build high quality software with:
Programming Languages
Python, Go, C, Rust, JavaScript/TypeScript, OCaml, Haskell, Lisp/Scheme
Infrastructure Tools
Nginx, Caddy, Docker, Podman, systemd, supervisorctl, Ansible, Terraform, Kubernetes, Nomad
Miscellaneous
Git, Vim, Shell Scripting, Flask, Django, Ruby on Rails, FastAPI, React, Svelte
What I can offer
I can take ownership, be pragmatic about getting things done, coach junior developers, and communicate with technical/non-technical stakeholders. I have strong foundations in computer science and programming, so I can grasp new ideas and tools quickly. I think the level of seniority where I can contribute the most would change from company to company, so I’ll leave that open for discussion.
I think my strongest point in terms of programming is an understanding of program complexity that only comes with some experience. Tools and frameworks apply only to specific problems and they can be learnt, but the idea of complexity is essential to any software project that is being built to last. I have made my mistakes and learnt how important it is to keep things as simple as reasonably possible. I have also made mistakes the other way – e.g. inventing my own abstractions prematurely to avoid having a third-party library. This idea gives engineers a common language to think and reason objectively about technical choices such as naming functions, adding/removing dependencies, or deciding when to refactoring programs. It helps us reach optimal solutions even if there is disagreement between team members. This has also taught me to carefully evaluate any new abstractions I create (such as custom ORMs – generally a bad idea).
I have exposure to all aspects of web development – frontend, backend, deployment – although my standout expertise would be in backend, deployment, and system architecture. Even though frontend development is not my strong suit, I have enough understanding to make non-trivial contributions to frontend codebases.
That said, I am also very interested in areas that are not web development. I have spent a non-trivial amount of time on machine learning, operating systems, networking, and theorem provers. And, I am specially interested in functional programming and the deisgn/implementation of programming languages. I also recently started liking Rust after learning it for a tutorial on building an operating system.
If you’re working on something interesting and think that I can contribute to your org, reach out to me at [email protected].
Work Experience
PostgreSQL
- Part of Google Summer of Code 2023
- Contributing to pg_chameleon
- Worked on rewriting the SQL parser library
- Made it much easier to add new SQL statements, and add new functionality to the library
Python Express
- Volunteered to build and manage the website for Python Express
Treadstone Media Labs
- Built a short-term consulting project to prototype a new idea
- Modified a proprietary app to make it run inside a special environment
- Worked end-to-end on researching a solution, implementing it, and making deployment as easy as possible for non-technical team members
- Communicated with different stake holders during this process
- Wrote appropriate documentation to make future maintenance
OCaml-Multicore
- On-and-off contributor to the OCaml-Multicore project
- Researched some lockfree data structures
- Documented examples of some lockfree data structures
- Built a lockfree set with an accurate size implementation, which is a non-trivial problem for lockfree data structures
- My first time implementing something directly from a research paper
Pipal Academy
- Built a custom Learner Management System (LMS) for software trainings
- Built automated triggers for allocation, deployment, and deletion of infrastructure resources
- Built an open source library to build web frontends completely in Python
- Built a system to host and serve interactive software projects as learning exercises (e.g. build your own X in 5 steps)
- Owned feature delivery from specification to implementation to production to monitoring
Internet Freedom Foundation
- On and off contributor for Internet Freedom Foundation, to build websites
- Built website for internet shutdowns in Manipur, keepusonline.in
- Built website for first edition of FoE Con
FOSS United
- Worked full-time from December 2021 - April 2022, when I helped other non-profits in adopt free and open source software
- Active volunteer for FOSS United since then. I have contributed to Mon School, managed tech infra, and evangelised FOSS at tech events
- Helped in organising community events – IndiaFOSS 2.0 & 3.0, FOSS Hack 2.0 & 3.0, FOSS Meetups, SolapurFOSS
Kawa Space
- Consulted on the platform engineering team to manage the commercial API, web backend, and database of the app
- Conducted load tests for the API
- Handled and documented production issues
- Deployed and managed Kubernetes cluster
- Mentored other developers
- Managed Airflow DAGs and productionized data science pipelines to run at scale
- Owned product-critical features from brainstorming to production to monitoring and maintenance
Hyperlog
- Started up to partially automate the process of creating developer portfolios
- Built a code evaluation engine relying on Git to assess the quality of developer contributions
- Used my knowledge of Git internals to refactor the code evaluation engine and make it ~8-10x faster
- Built a connected Applicant Tracking System (ATS) for startups, and ran pilots with them
- Designed a GraphQL API for serving code evaluation results
- Owned the backend and data science parts of the startup
Cloud-CV
- Contributor to Cloud-CV
- Won Google Code-in as a 17-year old, becoming one of the 58 global winners to get an all-expense paid trip to Google’s HQ in SF
- Conducted SPIKE for ways to load data faster in Docker containers
- Researched a new tool and built a prototype to demo it with the previous implementation (Dramatiq instead of Celery, for test environments)
- Wrote and improved unit and integration tests for a Django app
TensorFlow
- Contributor to TensorFlow
- Contributed fixes for documentation errors and inconsistencies
- Reported and fixed a bug related to the saving of TensorFlow models
- Reviewed pull requests and answered support queries on GitHub issue tracker
Learning
This is my substitute for what would generally be the Education section on a Resume. I am currently enrolled as a freshman in an online degree program in Computer Science, offered by BITS Pilani and Coursera. Most of my learning, however, has been informal (I am a big believer in unschooling). I’ll recall the specific courses I’ve taken / books I’ve read, and add some proof along with it – generally a project.
(In reverse chronological order, and as many as I can remember)
Building an Operating System in Rust
- Followed this tutorial: https://os.phil-opp.com
- Learnt both Rust and Operating Systems from this follow-along blog
- I also went on a digression to build a kernel-level snake game using a VGA buffer as the display output
- Proof of Work: rust-os:main, rust-os:snake-game
Software Foundations: Logical Foundations
- Followed this book: Software Foundations: Logical Foundations
- Learnt Coq and theorem provers
Structure and Interpretation of Computer Programs
- SICP: https://web.mit.edu/6.001/6.037/sicp.pdf
- Completed as part of Lambda Retreat
- Proof of work: metapy
Computer Systems: A Programmer's Perspective
- CS:APP - https://csapp.cs.cmu.edu/
- Proof of work: Partial list of solutions
DNS Server RFC
- Built a DNS server from scratch in Go with no third-party dependencies
- Proof of work: Simple DNS server
Functional Programming in Haskell
Bunch of machine learning courses
- Hands-on machine learning with Scikit Learn and TensorFlow
- Deep Learning from Scratch - Kaggle
- Some more …
- I was smol at the time - Report on electrification in India
Projects
autosaved
Never lose your code accidentally
OS in Rust
An operating system in Rust. (Following tutorial). And a snake game written in the Kernel (my own addition).
gitignore.sh
curl -o .gitignore gitignore.sh/python
kutty (at work)
Building composable web UIs in pure python
capstone (at work)
Framework for authoring and serving guided projects
Mathbox
Math tools to make my study easier and more interesting. Includes a subset-of-Scheme interpreter.
minesweeper
minimalist, old-school minesweeper. purely client-side
fossclub
Flexible reward badges for FOSS contributors
dns from scratch
My own implementation of a DNS server with 0 external dependencies in Go
metapy
A (~kindof) Python interpreter in Python – without using ASTs or bytecode
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]
- Creative Coding in Python, at SolapurFOSS 2023 [Date: 27 August 2023]
Achievements
- 2019 - One of the 58 global Google Code-in Grand Prize Winners in 2019 to win an all-expense paid trip to Google’s HQ in San Francisco, for open source contributions to Cloud-CV. Link
- 2022 - Winner of DotSlash 5.0 Hackathon, held by SVNIT Surat, as a solo team. Link
- 2022 - Runner-up at Mumbai Hackathon 2022, held at DBIT Mumbai, as a solo team. Link
- 2022 - Winner of FOSS Track at OSDHack 2022, held by JIIT Noida. Link
- Stayin’ alive, stayin' alive, ah ah ah ah, stayin' alive
Email me: [email protected]
I am also reachable on Telegram: @nikochiko and Twitter (X?): @n1kochiko