All posts
2020
- Uploading binary wheels to PyPI from Github Actions [Nov 03]
- The Almanack of Naval Ravikant [Oct 24]
- Continuous Deployment with Netlify and Zola [Sep 13]
- Multiple Mixins (and naming conflicts) in Python [Jun 28]
- Book Review: The Phoenix Project [Apr 15]
- Following news 24x7 considered harmful [Apr 13]
- How to enable target="_blank" links in Zola [Apr 07]
- Building products for yourself [Apr 05]
- Moving from Pelican to Zola [Feb 11]
- Frontend without writing CSS [Jan 08]
2019
- Gift a Donation [Dec 27]
- Building things just because there is a market [Nov 04]
- The switch from Arch to Debian [Oct 24]
- The Single Monitor Manifesto [Oct 16]
- Mountains [Jul 30]
- Offsite backups using Restic [Jul 12]
- How do you decide what to learn next? [Jun 19]
- Not everything needs to be async [May 25]
- The “Hacker News Effect” [Apr 06]
- Off by 1 (Day) [Jan 28]
2018
- 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]
- Managing personal finances using Python [Sep 16]
- Nim: First impressions [Aug 14]
- Switching from KeePassXC to Bitwarden [Aug 07]
- Setting up flake8 for Cython [Jul 03]
- Sharing files with family in 2018 [Jul 01]
- Lessons learned working from home [Jun 06]
- Raise better Exceptions [Apr 16]
- Beancount DKB [Apr 11]
- Always be Questioning [Jan 26]
- Encrypting Sensitive Data in SaltStack [Jan 05]
2017
- 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]
- Experiences using Terraform [Mar 09]
- ELB proxy protocol health check [Jan 23]
2016
- Non-technical reasons why I like Vue [Nov 13]
2015
- Hello, World! [May 17]