I've been writing software for 10+ years. Eschew hype; focus on performance.

Living in Switzerland 🇨🇭 since 2017.

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