About
Posts
Projects
All tags
#arch-linux
The switch from Arch to Debian
Oct 24
#async
Not everything needs to be async
May 25
#aws
ELB proxy protocol health check
Jan 23
#backups
Offsite backups using Restic
Jul 12
#beancount
Moving from Beancount 2.x to 3.x
Jul 10
Automatically balancing Beancount DKB transactions
Aug 16
Beancount DKB
Apr 11
#blog
Continuous Deployment with Netlify and Zola
Sep 13
How to enable target="_blank" links in Zola
Apr 07
Moving from Pelican to Zola
Feb 11
#books
The Almanack of Naval Ravikant
Oct 24
Book Review: The Phoenix Project
Apr 15
#career
Experiences hunting for a software engineering job in 2023
Jun 21
How do you decide what to learn next?
Jun 19
#cython
Building Cython (or C) extensions using uv
Jan 11
Setting up flake8 for Cython
Jul 03
Speeding up Python using Cython
Nov 30
Streaming multipart/form-data parser for Python
May 06
#databases
Handling the “N + 1 selects” problem in SQLAlchemy
Dec 17
#debian
The switch from Arch to Debian
Oct 24
#devops
Uploading binary wheels to PyPI from Github Actions
Nov 03
Book Review: The Phoenix Project
Apr 15
Encrypting Sensitive Data in SaltStack
Jan 05
Experiences using Terraform
Mar 09
ELB proxy protocol health check
Jan 23
#flask
The most dynamic static site you'll ever see
Oct 27
#frontend
Experiences using Tailwind CSS
May 20
Frontend without writing CSS
Jan 08
Non-technical reasons why I like Vue
Nov 13
#germany
Mountains
Jul 30
#hiking
Mountains
Jul 30
#indie
Handing over the reins of GeniePy
Jun 25
Building products for yourself
Apr 05
#javascript
Non-technical reasons why I like Vue
Nov 13
#jobs
Experiences hunting for a software engineering job in 2023
Jun 21
#learning
How do you decide what to learn next?
Jun 19
#linux
Replacing GNU Stow with Dotbot
Jul 24
The switch from Arch to Debian
Oct 24
#llm
LangChain applications using Ollama
Nov 19
#macos
How to convert multiple images to PNG or JPEG on macOS
Jan 06
#management
Book Review: The Phoenix Project
Apr 15
The “Hacker News Effect”
Apr 06
Developer to Manager
Dec 22
#misc
Hello, World!
May 17
#neovim
Switching between projects in Neovim
Oct 08
#netlify
Continuous Deployment with Netlify and Zola
Sep 13
#news
Following news 24x7 considered harmful
Apr 13
#nim
Nim: First impressions
Aug 14
#open-source
Building Cython (or C) extensions using uv
Jan 11
One of the most useful directories on my laptop
Mar 29
Automatically balancing Beancount DKB transactions
Aug 16
Setting up your Python open source project
Oct 03
Beancount DKB
Apr 11
Tornado + SQLAlchemy
Aug 27
#pelican
Moving from Pelican to Zola
Feb 11
#performance
Speeding up Python using Cython
Nov 30
#personal-finance
Moving from Beancount 2.x to 3.x
Jul 10
One of the most useful directories on my laptop
Mar 29
Automatically balancing Beancount DKB transactions
Aug 16
How you can track your personal finances using Python 🐍
Aug 29
Off by 1 (Day)
Jan 28
Managing personal finances using Python
Sep 16
Beancount DKB
Apr 11
#philosophy
The Almanack of Naval Ravikant
Oct 24
#practices
How to debug better
Jul 22
Building products for yourself
Apr 05
Gift a Donation
Dec 27
Building things just because there is a market
Nov 04
Not everything needs to be async
May 25
Off by 1 (Day)
Jan 28
Raise better Exceptions
Apr 16
Always be Questioning
Jan 26
#privacy
Sharing files with family in 2018
Jul 01
#productivity
How to convert multiple images to PNG or JPEG on macOS
Jan 06
Replacing GNU Stow with Dotbot
Jul 24
Following news 24x7 considered harmful
Apr 13
The switch from Arch to Debian
Oct 24
The Single Monitor Manifesto
Oct 16
Offsite backups using Restic
Jul 12
Switching from KeePassXC to Bitwarden
Aug 07
Lessons learned working from home
Jun 06
#programming
Building Cython (or C) extensions using uv
Jan 11
Moving from Beancount 2.x to 3.x
Jul 10
Handing over the reins of GeniePy
Jun 25
Experiences using Tailwind CSS
May 20
One of the most useful directories on my laptop
Mar 29
LangChain applications using Ollama
Nov 19
Switching between projects in Neovim
Oct 08
The tools I used to write an ebook
Oct 04
How you can track your personal finances using Python 🐍
Aug 29
How to debug better
Jul 22
Uploading binary wheels to PyPI from Github Actions
Nov 03
Continuous Deployment with Netlify and Zola
Sep 13
Multiple Mixins (and naming conflicts) in Python
Jun 28
Book Review: The Phoenix Project
Apr 15
How to enable target="_blank" links in Zola
Apr 07
Moving from Pelican to Zola
Feb 11
Frontend without writing CSS
Jan 08
The Single Monitor Manifesto
Oct 16
Not everything needs to be async
May 25
The “Hacker News Effect”
Apr 06
Off by 1 (Day)
Jan 28
Developer to Manager
Dec 22
The most dynamic static site you'll ever see
Oct 27
Setting up your Python open source project
Oct 03
Nim: First impressions
Aug 14
Setting up flake8 for Cython
Jul 03
Raise better Exceptions
Apr 16
Always be Questioning
Jan 26
Handling the “N + 1 selects” problem in SQLAlchemy
Dec 17
Speeding up Python using Cython
Nov 30
Tornado + SQLAlchemy
Aug 27
Stuck in Vim
Jun 27
Streaming multipart/form-data parser for Python
May 06
Non-technical reasons why I like Vue
Nov 13
#python
Building Cython (or C) extensions using uv
Jan 11
Moving from Beancount 2.x to 3.x
Jul 10
Handing over the reins of GeniePy
Jun 25
One of the most useful directories on my laptop
Mar 29
LangChain applications using Ollama
Nov 19
Automatically balancing Beancount DKB transactions
Aug 16
How you can track your personal finances using Python 🐍
Aug 29
Uploading binary wheels to PyPI from Github Actions
Nov 03
Multiple Mixins (and naming conflicts) in Python
Jun 28
Not everything needs to be async
May 25
Off by 1 (Day)
Jan 28
The most dynamic static site you'll ever see
Oct 27
Setting up your Python open source project
Oct 03
Managing personal finances using Python
Sep 16
Setting up flake8 for Cython
Jul 03
Raise better Exceptions
Apr 16
Beancount DKB
Apr 11
Handling the “N + 1 selects” problem in SQLAlchemy
Dec 17
Speeding up Python using Cython
Nov 30
Tornado + SQLAlchemy
Aug 27
Streaming multipart/form-data parser for Python
May 06
#remote-work
Lessons learned working from home
Jun 06
#rust
How to enable target="_blank" links in Zola
Apr 07
Moving from Pelican to Zola
Feb 11
#saltstack
Encrypting Sensitive Data in SaltStack
Jan 05
#security
Offsite backups using Restic
Jul 12
Switching from KeePassXC to Bitwarden
Aug 07
Encrypting Sensitive Data in SaltStack
Jan 05
#sqlalchemy
Raise better Exceptions
Apr 16
Handling the “N + 1 selects” problem in SQLAlchemy
Dec 17
Tornado + SQLAlchemy
Aug 27
#startups
Building things just because there is a market
Nov 04
#tailwind
Experiences using Tailwind CSS
May 20
#terraform
Experiences using Terraform
Mar 09
#tornado
Tornado + SQLAlchemy
Aug 27
Streaming multipart/form-data parser for Python
May 06
#vim
Stuck in Vim
Jun 27
#vue.js
Stuck in Vim
Jun 27
Non-technical reasons why I like Vue
Nov 13
#writing
The tools I used to write an ebook
Oct 04
#zola
Continuous Deployment with Netlify and Zola
Sep 13
How to enable target="_blank" links in Zola
Apr 07
Moving from Pelican to Zola
Feb 11