Once in a while you get introduced to a tool that instantly changes the way you work. For me, mise is one of those tools. mise is the logical conclusion to a lot of the meta-tooling that exists around language-specific version and package managers like asdf , nvm , uv , pyenv etc. It makes it exceptionally easy to install, use, and manage software. It also allows you to manage environment…
This isn’t for every problem, it doesn’t happen every day, and it isn’t achievable with just any group of people. But sometimes, under exactly the right circumstances, you might be lucky to find yourself in a discussion where everything and everyone seem to just.. click. Although the discussion starts out with many and drastically different points of view, the atmosphere is good and smooth and…
In the last post I described my weekend project of using advice from Tiger Style to optimize the write path of Seb . Here, we found that data serialization and memory allocations were big contributors to the application being slower than it could be, and profiling helped us identify places on the write path where batching and buffer reuse could greatly improve the throughput. With a few small…
I’ve been on a bender for the past few weeks. I haven’t been able to stop reading and watching content about TigerBeetle . I was especially enamored by videos in which Joran Dirk Greef presents TigerBeetle in general , replication , and Tiger Style . Joran has been far and wide the past years, doing all he can to spread the message of TigerBeetle and Tiger Style. Lucky for us, this has left a…
This post describes multiple ways I’ve seen projects handle event triggering in the past and suggests a minor tweak that I believe will greatly benefit projects that have nontrivial event triggering requirements. The tweak is simple and helps to avoid creating unnecessary dependencies between unrelated parts of your system. Additionally, it also describes how a tiny domain specific language can be…
I’ve used vim and/or vim bindings for the better part of 10 years. But apparently there’s this tiny piece of magic that has completely escaped me all this time. About half a year ago I received a tip from a good friend (thanks Jörn ❤️) that I kind of forgot about and never took the time to actually try out. Then, this week I had to do a bunch of random data exploration and, luckily, it somehow…
For various side projects I’ve worked on, I’ve wanted to introduce event queues in order to simplify some things. Normally, I just go with the “one DB to rule them all”, and shove things into Postgres. Sometimes though, the workload becomes too much and the burst- and credit balance of my puny RDS instances start looking like ski slopes that would kill most skiers. Every time this has happened…
I’m Michael, based in Copenhagen, Denmark. I’ve made a living as a programmer since 2007 and I now run a consultancy that helps customers do things with computers. Since you’re reading this, I’m assuming that you read one of my blog posts and thought it reasonated with you somehow. That makes me happy! Or, perhaps you’re furious and need to tell me how wrong I am. In that case, do tell! You can…