Projects

In my spare time, I tend to work on side projects for fun. This page lists the ones which reached completion.

πŸ“š Books

1. Tracking Personal Finances using Python

https://personalfinancespython.com

Tracking Personal Finances using Python is an book I wrote to help you (ideally a Python developer) build a simple, privacy-aware, and developer-friendly workflow to keep track of your personal finances.

The Python ecosystem contains an excellent package called Beancount which provides the foundations for working with money. At its core, Beancount provides a collection of command line utilities to manage and perform different kinds of analysis on financial transactions stored in plain-text files.

In this book, I take Beancount as the starting point and help you put the pieces together to build your own multi-banking application.

πŸ•ΈοΈ Web-based

1. GeniePy

https://geniepy.com

GeniePy is an industry-standard asynchronous Python boilerplate based on Reflex to kick-start your next SaaS application.

The boilerplate implements all the standard features almost every SaaS application has. Think user management, sending emails, payments, file storage, deployment configuration files, etc.

This way you don't have to reinvent the wheel if you're trying to get your SaaS product off the ground. You can focus on your core product and save months of development time (and thousands of dollars).

2. Developer to Manager

https://devtomanager.com

"Developer to Manager" is a platform that helps developers during one of the trickiest phases of their careers - their move to management.

The site hosts a collection of interviews with experienced software developers on how they successfully transitioned into a more managerial role. The interviews range from small startups to big companies, and talk about the main takeaways, best practices, things to avoid, and a lot more.

3. Stuck in Vim? (#web #vuejs #vim)

https://siddhantgoel.github.io/stuckinvim.com

https://github.com/siddhantgoel/stuckinvim.com

This quick interactive tutorial will show you how to exit Vim, in case you're stuck.

I built this after reading the StackOverflow blog post that talked about how the question "How to exit Vim" hit more than a million views (!). This site exists mostly because I thought this sounded like a fun little idea. Here's some background.


πŸ‘¨β€πŸ’» Open-source

1. Streaming multipart/form-data parser (#python #web)

https://github.com/siddhantgoel/streaming-form-data

This library provides a Python parser for multipart/form-data encoded data (uploaded via HTML forms).

A bunch of such parsers already exist in the Python ecosystem. And most web frameworks even include such functionality within the framework.

The neat thing about this parser though is that you don't need to give it all the data at once. You can instead pass in input chunks as they are being read from the HTTP request. The parsing happens as the data is being read, and you can choose what to do with each input (stream it to disk/S3/whatever). If your application is handling file uploads often, this library can reduce the memory consumption by quite a bit.

2. Tornado-SQLAlchemy (#python #web #databases)

https://github.com/siddhantgoel/tornado-sqlalchemy

tornado-sqlalchemy is a Python library aimed at providing a set of helpers for using the SQLAlchemy database toolkit in Tornado web applications, so that handling database operations is easier/standardized in case you're using the two libraries together.

3. Beancount DKB (#python #plaintextaccounting #finance)

https://github.com/siddhantgoel/beancount-dkb

Beancount importers for converting CSV exports of DKB (Deutsche Kredit Bank) account summaries to the Beancount format. If you're into plain-text accounting and use Beancount and have an account with DKB, you might find this interesting.

4. Beancount ING (#python #plaintextaccounting #finance)

https://github.com/siddhantgoel/beancount-ing

Beancount importers for converting CSV exports of ING (Germany) account summaries to the Beancount format. If you're into plain-text accounting and use Beancount and have an account with ING, you might find this interesting.

5. Beancount Commerzbank (#python #plaintextaccounting #finance)

https://github.com/siddhantgoel/beancount-commerzbank

Beancount importers for converting CSV exports of Commerzbank (Germany) account summaries to the Beancount format. If you're into plain-text accounting and use Beancount and have an account with Commerzbank, you might find this interesting.

6. Beancount N26 (#python #plaintextaccounting #finance)

https://github.com/siddhantgoel/beancount-n26

Beancount importers for converting CSV exports of N26 (Germany) account summaries to the Beancount format. If you're into plain-text accounting and use Beancount and have an account with N26, you might find this interesting.

7. Clean Jekyll Theme (#ruby, #jekyll)

https://github.com/siddhantgoel/clean-jekyll-theme

Jekyll theme I wrote in some free time. While setting up an earlier version of this blog using Jekyll, I found it incredibly frustrating to find a theme that was a bit minimal but didn't require me to fork some random person's Github repository and then make changes. I wanted a theme which I could gem install and be done with it. So I built one.

8. StackOverflow Instant Search (#web #jquery)

https://github.com/siddhantgoel/so-instant

This was when instant search was the new hot thing and everyone was building instant search for every possible website. So I tried building one for StackOverflow. I haven't updated it in 5 years, but it surprisingly still works (mostly).