Senior software engineer with 9+ years of experience. Eschew hype; focus on delivery and performance.

Living in Switzerland 🇨🇭 since 2017.

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