I make life easier, that is to say I've been writing software for 10+ years. Eschew hype; focus on delivery and performance.

Living in Switzerland 🇨🇭 since 2017.

    2025
  1. I reviewed my code from my first job in 2015
  2. 2024
  3. Soft-wrapping a Piece Table to draw with Raylib, in Odin
  4. Straightforward Programming (by Hasen Judi)
  5. The Retrieval Augmented Generation (RAG) pattern for LLMs
  6. A workable definition of simple
  7. Clean Code(tm), SOLID, OOP, and Gangs of Four are not simple, by definition
  8. Essential and Accidental complexity, and performance
  9. Learnings from Gadget Software
  10. Drawing text on a window with Odin - Part 1: GLFW
  11. The pleasure of writing Clean OOP code /s
  12. I've removed AI from my workflow
  13. My largest regret
  14. The only way forward for developers
  15. 2023
  16. Python project setup
  17. Using pyenv on DigitalOcean Ubuntu 22.04
  18. Basic security in Python Litestar projects (bonus HTMX CSRF config)
  19. Shallow thoughts are cheaper for experts
  20. Throw early for programmer errors
  21. Svelte v4 in Django using Webpack
  22. Twitter 3-legged OAuth with Django using Tweepy, for Twitter bots
  23. HTMX kills most single page applications
  24. Book Summary: Don't Make Me Think Revisited A Common Sense Approach to Web and Mobile Usability by Steve Krug
  25. 2022
  26. Adding TailwindCSS to Svelte components in a Django app
  27. Using Svelte components in a Django app
  28. Managing sync state
  29. Tailwind, using grid-cols-12 instead of mx-auto
  30. Generating a Swagger file with ASP.Net Core and generating API code for Angular
  31. Kubernetes RabbitMQ Certificate Revocation List
  32. 2021
  33. Devilboxを使ってローカルのWordPressサイトの最初のセットアップしよ
  34. 2018
  35. Exiting early, cognitive load
  36. Assigning variables, cognitive load
  37. Git config
  38. On Adblockers
  39. New website
  40. 2016
  41. How to run a Promises array in a series
  42. File navigation in Vim (my way)
  43. 2015
  44. Two months of OpenBSD
  45. Experience upgrading OpenBSD to 5.7
  46. Indentation and hooks in Emacs
  47. My switch to OpenBSD, first impressions
  48. December 2014 to April 2015
  49. 2014
  50. Respect, for respect is acknowledgement, and acknowledgement is a right
  51. Figuring out when you installed Arch Linux
  52. Minimal amount of fonts in Arch Linux
  53. Get it together Linux users/devs!
  54. The bleeding terminal background inside Vim + Tmux problem
  55. Getting used to software updates
  56. Barebones file navigation in Vim
  57. Navigating in the dark
  58. Knowing something but not registering it
  59. A week with Emacs
  60. A small project is not the same as a big project
  61. A projects page!
  62. Several VLC interfaces
  63. Enable `pass` auto-completion in Zsh
  64. Acknowledgements in communication
  65. Arch Linux font tip(s)
  66. My slow switch to Emacs
  67. New blog!
  68. My take on Vim vs. Emacs
  69. You need to understand JavaScript callbacks
  70. Neat trick for Vim keybindings
  71. Just switch to UTC
  72. My experience with the BSPWM and Sxhkd
  73. Write down the day ahead of you
  74. What the gut feeling is for me
  75. A technique to remember small stuff
  76. Out of sight is not out of mind
  77. Installing Arch Linux on a Dell Vostro 1500
  78. Text editor categories
  79. My experience with SolydXK (X)
  80. Disconnecting from the DocPad community
  81. Read stuff you have read before
  82. Real science, not bullshit
  83. My explanation of The Zone
  84. The world of Window Managers
  85. My trip to Switzerland, part 1, getting there
  86. 2013
  87. A love letter to Arch Linux
  88. Switching from Zsh to fish
  89. Light Table, the new Emacs
  90. Open source games without going poor