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 (acquired)
Update: I sold the project to a new owner in June 2024.
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
"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).