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

Co-founder and lead engineer at Gadget Software in addition to my day job.

Living in Switzerland 🇨🇭 since 2017.

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