What have you done for me lately? (Aug 2025)

After the editions from 2017, 2018, 2019, 2023, 2024, here is yet another recap blogpost showcasing recent projects and updates you can find online from my hand. This past year and a half has been a bit slower (online) than usual, but there are still some noteworthy things.

Presentations & Sketch Noting

I’ve been on stage at local meetups twice in the past period:

Here are the Sketch Notes I made for the latter presentation:

Sketch notes drawing a path through the terms "Small Talk, Being Evil, Undercover, Inbox Management, Persuasion, 2D List Making, Stress Management, Mentoring, Empathy, Small Talk" into a conclusion "Honing Secondary Skills is Most Effective".

In general I did a ton of sketch noting, usually posting them in a thread on Social Media:

Advent of Code

Like most years before, I shared my Advent of Code projects:

Blog posts

Again I did not write many posts on this blog, but I did write two for my current employer:

  • June 2025: a (Dutch) post with a recap from Joy of Coding 2025.
  • Juli 2024: a (Dutch) post detailing my and Infi’s view (from back then) on AI and LLM usage.

What’s Next?

Well, to a degree, family will be first for the coming months. Plenty of time to be spent there. Depending on how much time is left I might finally put some work into making Tierdom an actual platform, but we’ll see if I can get to it.

Stay tuned! I’m sure to share the recap of all projects in one or two years from now.

What have you done for me lately? (Apr 2024)

Seems like it’s becoming a tradition to fill this blog mostly with roughly yearly recaps (see 2017, 2018, 2019, and 2023). And you know what? I’m good with that! So, without further ado, let’s dive into recent projects!

Pincrediball

Let’s start with the biggest project of the year! In my eight-week sabbatical I decided to learn how to design, build, and publish a full game. And I got there in the end!

Here are all the interesting resources to have a look at:

It’s not the best game in the world, but I am extremely proud that I created and published a game without any prior experience in the field (outside programming business line applications of course).

Tierdom

Another pretty big project in 2023 was “Tierdom“: a web application where you can show a ranked list of things you’ve enjoyed. Games, books, movies, … you name it! It’s here to solve a particular gripe with platforms like IMDB or BoardGameGeek or similar: those platforms are great but they might rug-pull at any time they please. With Tierdom, you own your own words and ratings!

Here’s a quick screenshot:

And here are the main links at the moment:

I’m still planning on turning this into an online service of some kind, to let others benefit as well. Stay tuned!

Blog posts

Although I didn’t write on this blog, as mentioned above I did write a ton of posts on the Pincrediball devlog. A whopping 39 blog posts in total!! So no wonder I didn’t feel like writing much more here.

Oh, and here are some posts I wrote for my employer’s blog:

  • January 2024: a (Dutch) post congratulating the winners of the Infi Advent of Code 2023 puzzle.
  • July 2023: a (Dutch) post titled “Hardware! (Part 3: The Rest)
  • April 2023: a (Dutch) post titled “Hardware! (Part 2: Randapparatuur)
  • February 2023: a (Dutch) post titled “Hardware! (Part 1: Laptops)

Advent of Code

Again, a separate section for the yearly programming puzzles challenge. Same three mini-projects as all previous years:

  • My AoC 2023 solutions in TypeScript. No room for learning a new language, but I did use the Deno runtime this year for a change of pace.
  • The AoC 2023 Survey and its Results. The web-based results dashboards is paying off, and I’ve polished and updated it this year to become even better!
  • The AoC Browser Extension got some significant love again, with a bunch of contributions from the community again. A couple of thousand installs so quite a few folks enjoying our work!

What’s next!?

Above is the stuff I’ve been busy with in the past year or so. It’s unclear what’s next, although improving Tierdom is pretty high up the list. I’d recommend staying tuned for the next recap to know how things turned out!

What have you done for me lately? (Feb 2023)

After a few previous editions (January 2019, September 2018, and December 2017) I’m back with another recap of all the things I’ve been doing instead of writing blog posts. Without any ado, let’s dive into stuff I’ve been up to!

Blog posts

Same as last time, although I’ve not been blogging much here on my personal blog (only one post, about my Book List), I have been writing content for my employer’s blog:

Not as many blogposts as previous years, but still a handful!

Advent of Code

The yearly advent calendar of programming puzzles deserves its own section. Three things revolved around this event for me:

Plus I got to craft fresh Egg Nog during Infi’s Meetup around Advent of Code, which is always nice!

Projects

Then there are a handful of full-on side projects:

Sketch notes

I’ve been doing several more (amateur level) sketch notes of Tech Events, here’s a few links to them (on Twitter only, for the moment):

Now that I post those links, thinking about the state of Twitter, I should probably also give my sketch notes a more permanent home where I am in control of the data.

What’s next!?

Those were the things I’ve been doing (instead of blogging) in the recent past. I find that I actually enjoy blogging only once in a while with recaps of all the weird side projects. So, up next, are probably a bunch more side projects!

Plus, I write this post at the start of an 8-week sabbatical. So who knows? Maybe that gives enough room for one or two side-projects!?

Book List – Update January 2022

Ten years ago I started a book list, and in 2014 I provided an update. After some years of radio silence I’ve updated it once more: check out my Book List Page! And let me tell you a bit about the diff between then and now in this post.

First up, here’s a quick glance of the current list:

Screenshot of 2022 Book List covers of recommended books. Total 20 covers a bit blurred together, some jumping out because of their cover (e.g. "Don't Make Me Think", "Culture Map", "Death March", "Influence", "TED Talks").

I’ve reorganised the list once more. Shown above is my current list of “Recommended” books. These books more or less follow these guidelines:

  • I’ve read them, and enjoyed them thoroughly;
  • I’ve learned something from them;
  • They are directly or indirectly helpful for a software developer (or related);
  • They are important to read, for one reason or another;
  • They’re timeless, at least to a degree.

All of those books are also described with a mini-review for each. Some of the reviews dating back from 2014 or earlier. Some of them written just now, for the updated list.

My Book List also has two extra categories. First, there’s “Recommended, with caveat“: books I think are (usually) good to read, if you know the caveat. Then finally there’s a list of books I’ve read and I have not regretted doing so, but they are not on my “top” list: “Good, but not great“.

Curious to know when my next major update to my book list is forthcoming? So am I!

What have you done for me lately? (Jan 2019)

Here’s yet another post similar to ones from September 2018 and December 2017: a recap of things I’ve been busy with in stead of writing more blog posts. It includes several blog posts I’ve written (and possibly should’ve cross-posted here?) for my employer: Infi.

One special thing of note is my previous blog post from two years ago, about “Reproman”. I had much energy and a great plan for a grand new project. First, it somehow didn’t “click” for me… and then a pandemic hits. And also my job title changes at the same(ish) time. So that project didn’t go as planned. I can firmly declare it frozen (if not dead) at this point. There, I’ve said it.

With that out of the way, let’s dive into some things that did happen since that last post.

Blog posts

I have not blogged here, on my personal blog, for two years. That doesn’t mean I haven’t been writing some new content! Let’s start with blog posts I’ve written for my employer’s blog:

Emotionally, it feels right to “restart” the list with all the stuff from “before the pandemic started“:

So no shortage of inspiration for things to write about, as you can see! Just on a different blog, is all.

I will say I’m considering pushing myself to write more frequently here, on my personal blog. But we’ll see.

Projects

In addition to writing for Infi’s blog, I’ve also been busy on a few projects. As always, you can find the more interesting ones on jeroenheijmans.nl, but here’s a couple of highlights:

That’s just a few highlights though, check my homepage for all different projects I’ve been running.

Various

Relevant to how many blog posts I can write, and how many projects I’m able to produce, is of course context. In software development, “it depends” is the standard state of things, right? It makes sense to share a few of the prime influences.

First up, since 2020, I’m not only a Technical Lead at Infi anymore. I’ve also signed up to be part of the management team as CTO of Infi Utrecht. I consider getting management responsibilities a demotion rather than a promotion, yet I feel compelled to spend part of my time making and keeping Infi a place I want to work at.

Second, of course, is the pandemic. In addition to having just about all possible privileges already, in the pandemic I also had no kids, had a great partner, and a relatively stable job. This makes (I presume) things a lot easier to handle. But still, it affected me regardless. I’ve mostly been acknowledging that, and acting accordingly. I hope you all can do so too!

Finally

In conclusion: what’s next!?

Well, I consider writing part of my job. So if you follow me on Twitter you’ll at least see my posts I wrote for Infi circulate. In addition I might write a bit more frequent here too. And if not, I’ll be sure to write another one of these “round up” blogposts in some months or years.

We’ll see.

Reproman

I’m starting a new project, working title “Reproman“. The idea’s been sitting in my mind for months now, but I found no good way to start yet. So I decided to start here: by blogging about it.

But first something about how and why I got to this point.

Basically, I’d love to specialize in something. Because if I’d specialize, I’d also get a clearer path to speaking at events more often, which is something I’d love to be doing.

On the other hand, I hate specializing because I’m at my best when I get to be a Jack of Many Trades. I enjoy work and hobbies the most if I get to focus on things in short bursts. Becoming one of the best in a specific programming language, or being able to bake the most perfect brownie: it’s just not for me. I want to be good at those things, sometimes even great, and then move on to become good at other things too.

What I realized several months ago: I need to combine these two things!

I have specialized in not being specialized at all. I specialized in learning new things; in getting good at something fairly quickly. So what will do is try to help other people acquire new skills, at first specifically around technology. This will involve providing content around at least these things:

  • Formulating Issues. Analyzing a problem you have, asking a question, getting help from a colleague, or submitting a bug or feature request: these are crucial when learning new things.
  • Creating Repro’s. To be able to create minimal conditions, and demonstrate something (e.g. an issue) under those conditions: this is essential when learning new things.
  • List Making. Being able to summarize something, and (importantly!) knowing what you don’t know (yet): this is vital when learning new things.

I’m sure that once I start analyzing how I and others learn new skills in technology, I will come up with more. But you’ve got to start somewhere. And I will start with the above.

Next Steps

So, what’s next with this project?

The most fun way for me to convey these things are in-person: by talking about it. Of course, I get my fare share of this at work in projects. But it would be fantastic if I could get a chance to speak at events about these things. Hopefully I’ll be able to tailor them to specific scenarios, contexts, and technologies.

But before I’m there I need to get my story straight.

Most importantly, I want to write about these things in some form. Possibly in the form of blog posts, or manuals, or a mix of the two. I’m considering starting a specific blog (or even “brand”, if you will) around this idea.

Secondly, I want to learn some new things while doing this. I’m very eager to learn how to make video courses (or at least: short video tutorials), so I might as well mix that in.

Finally, I have several other grand ideas too. There’s making a dedicated website for this material, organizing courses and workshops around this, as well as some even crazier ideas I’m not yet ready to talk about.

In Conclusion

Wrapping up, I mainly wanted to put my thoughts into writing. This already helped a lot in getting my ideas straightened out.

Next up will be some silence, while I build critical mass for an initial launch, something big enough to support new ideas and efforts. I’ll be sure to let you know when it’s ready!

EmpGrid Post-Mortem (and Resurrection!?)

This post is about my pet project EmpGrid. But first a short story about how I work.

About Promises

I try to be extremely precise with promises. In fact, you could say my Promises work very much like the native JavaScript promises. Let’s look at some code:

We can note some things about that code:

  • The promiseSome(thing) bit should always complete successfully, and always return a real, concrete promise;
  • After that, the then(...) bit will be executed nearly always, i.e. typically a promise resolves successfully;
  • Only in exceptional cases, with a typically well-defined error, will the catch(...) occur.

And that is exactly how real-life promises work for me too. I want people, most notably me, to be able to count on a promise being fulfilled (given normal circumstances).

So, why is this relevant to EmpGrid? Well, I promised myself this for 2018, Q3:

Finalize EmpGrid: finish it XOR do a postmortem

So, this post is that finalization. Because I promised!

EmpGrid Post-Mortem

Since I have not fully finished EmpGrid, the only option I have to fulfill my promise is to write a post-mortem about it.

The idea behind the project remains the same since its inception. It should be a self-contained web application that shows for a group of employees (colleagues) where you can find them online. Typically, you’d be interested in all their “Presences”, ranging from social media (Twitter, LinkedIn) to version control sites (GitHub, GitLab, etc.).

The intended side-effects of the project also remained the same. The repository should be slightly over-engineered, since it should serve as a playground to test technologies useful in larger applications. At least for the server-side bits; client-side a first version could do with a very simple monolithic single page application.

If you clone the repository today, you get a mostly functional thing. You should be able to run it out of the box (given you have a modern .NET Core development setup), and do some CRUD stuff. However, it is not at all “finished”. So, I’m declaring the project dead today, Saturday, September 22nd, 2018.

Here’s what’s still sorely missing:

  • Some kind of user management. Currently, you can only use the built-in seeded admin user with default password. You should at least be able to change the admin’s password. But really you should also be able to create logins linked to Emps, so that people could edit their own details.
  • Persistence. I really wanted to step outside the default EF Core solution that .NET Core pushes you towards. Instead, I would like to see some kind of open source document database integrated. Just haven’t gotten around to it.
  • Cloud-deploy-friendliness. It should be a breeze to deploy the app as a single unit, while still giving a clone-and-run developer experience. Possibly Docker would come in to play.

In addition, there’s a bunch of smaller to do items in the readme left. But the bottom line is: it’s not finished yet.

And that’s okay! Because I learned a lot while building it. Also, the truth is that I spent my time elsewhere past months. And that was a conscious (and wise) choice.

Still, I’m a little sad to declare EmpGrid dead before it got up and running somewhere…

Resurrection?!

So perhaps I should resurrect the project?

Well, not immediately. Or, more specifically, I will not promise that it’ll be resurrected. For one, I’m due for a long, relaxing vacation to Sri Lanka. And second, I see several other cool ventures coming up (hello Advent of Code!!). So perhaps EmpGrid will stay dead.

Or maybe I need a partner in crime?

Time will tell. For now: good bye, EmpGrid. Hibernation mode: on.

What have you done for me lately? (Sep 2018)

In December 2017 I wrote a similar post. Over the past few months I’ve been busy with other projects (writing and non-writing), and I’d love to aggregate them all here in a single post.

So, here’s some stuff from the recent past:

Some things that are in progress:

  • 2018-09-xx: Part 2 of the “Auth0 and Angular 6” blog series is forthcoming on infi.nl
  • 2018-09-xx: A status report on my EmpGrid project is in progress

Finally, some stuff I hope to be writing about in the near future:

Stay tuned!

Top 100 Games

I enjoy making “Top X” lists, and tempted by a friendly tweet some time ago I decided to make a “Top 100” list of games.

I’ve ordered these games from “Enjoyed the Most to ‘Least'”. How enjoyable a game was to me can depend on a variety of factors, most notably:

  • how much time I spend enjoying the game
  • how much it allowed me to enjoy it together with friends
  • how much the game “stood out” in story or gameplay

I’ve tried as best as I could to compensate for the recency effect and the fact that games from the 90’s are hard to compare to today’s triple-A titles. This is in fact so hard, that you might get a slightly different ordering depending on when you’d ask me. For that reason, everything below the first 20 or so games is in “unordered” buckets.

Let’s get to it!

Top 5! Best of the Best

1. [PC] Commander Keen

All episodes, but my preference would be in this order: 3, 2, 6, 1, 5, 4. (Keen Dreams sucked big time!)

Commander Keen 3

2. [PC] Warcraft 2

So. Many. Hours. Against the CPU. Against my dad. Against my friends. Plain fantastic game!

Warcraft 2

3. [N64] Golden Eye 64

Four-player-split-screen-james-bond-themed-3d-shooter. What more is there to add!?

Goldeneye 64

4. [PC] World of Warcraft

The sheer number of hours of gaming pleasure with this title makes it a must for the top 10. Favorite expansion would be Wrath of the Lich King, mostly because that’s when most of my real life friends also played the game (I’ve played Burning Legion through Cataclysm).

World of Warcraft

5. [N64] Zelda: Ocarina of Time

There’s something intrinsically great about this game that requires me to place it in a top 10.

Zelda: Ocarina of Time

6 – 20: Fantastic games

6. [PC] Dota 2

With over 1700 hours played to date it’s hard to deny that I’ve enjoyed this game. A lot.

Dota 2

7. [PC] Warcraft 3

Great gameplay, great story!

Warcraft 3

8. [PC] Prince of Persia (the original)

I still have dreams and nightmares about this game.

Prince of Persia

9. [Amiga] Impossible Mission

The first Amiga title on this list. Spending weekends at my uncle’s place just playing these games: amazing!

Impossible Mission

10. [PC] Neverwinter Nights 1

A very good game, but it’s on this list because I had some awesome full-weekend complete co-op playthroughs that were fantastic.

Neverwinter Nights

11. [AMIGA] Menace

R-Type clone I absolutely loved.

R-Type

12. [PC] Wolfenstein 3D

Didn’t even play this game that much, if it weren’t for playing the home brew levels my friends made for each other.

Wolfenstein 3D

13. [PC] Hollow Knight

Played only recently, but gameplay was brilliant.

Hollow Knight

14. [PC] Heroes of the Storm

Quit the game multiple times because it was too addictive, so it deserves its spot.

Heroes of the Storm

15. [PC] GTA: San Andreas

Really got me into the sandbox genre.

GTA San Andreas

16. [AMIGA] Klax

Tetris on steroids!

Klax

17. [WII] Super Mario Galaxy

The gameplay of this game was just phenomenal.

Super Mario Galaxy

18. [PC] Whacky Wheels

Yes, I enjoyed this more than Mario Kart. Bite me!

Whacky Wheels

19. [GAMEBOY] Tetris

Dragged me through some long trips that would’ve otherwise been quite tedious.

Tetris

20. [PC] Duke Nukem 3D

Hail to the king, baby! First co-op 3D shooter with amazing level design.

Duke Nukem 3D

21 – 50: Great Games

[N64] Super Mario 64
[AMIGA] Emerald Mine
[PC/RIFT] Robo Recall
[PC] Supaplex
[SNES] Super Mario World
[PC] Assassin’s Creed 1
[PC] Need for Speed – Hot Pursuit
[PC] Starcraft 2
[PC] Super Meat Boy
[PC] Amnesia: The Dark Descent
[PC] Mass Effect 2
[PC] Mark of the Ninja
[PC] Mother Goose
[PC] Trackmania Nations
[PC] Awesomenauts
[PC] Left 4 Dead 2
[PC] Civilization 4
[PC] Fallout 3
[PC] Batman: Arkham City (2011)
[PC] Portal 2
[PC] Portal 1
[N64] F-Zero X
[N64] Wipeout 64
[PC] Reunion
[PC] Guildwars 2
[PC] Call of Duty: Modern Warfare 2
[PC] Assassin’s Creed 2
[SNES] Super Mario Kart
[PC] Fighter’s Destiny
[PC] Fez

51 – 100: Good Games

[PC] Braid
[PC] Fallout New Vegas
[PC] Batman: Arkham Asylum (2009)
[PC] Centurion: Defender of Rome
[WII] Zelda: Twilight Princess
[PC] Jazz Jackrabbit
[GAMECUBE] Soul Calibur 2
[PC] Starcraft 1
[WII] WarioWare Smooth Moves
[PC] Doom 2
[NES] Super Mario 1
[GAMECUBE] Ikaruga
[PC] Quake 2
[PC] Quake 1
[PC] Company of Heroes 1
[PC] Arkanoid
[PC] Lemmings
[PC] Tony Hawk Pro Skater 2
[PC] Ski or Die
[PC] Secret Agent
[AMIGA] Marble Madness
[PC] Thomas was Alone
[PC] Sim City 2000
[PC] Batman: Arkham Origins (2013)
[GAMEBOY] Super Mario Land
[PC] Magicka
[SNES] Street Fighter 2
[PC] World of Goo
[SNES] Mortal Combat 2
[PC] Worms
[PC] Skyroads
[PC] One Must Fall 2097
[PC] Boppin
[PC] Divinity: Original Sin
[PC] Duke Nukem 2
[GAMEBOY] Super Mario Land 2
[PC] Killer Instinct Gold
[PC] Captain Comic
[PC] Volfied
[PC] Leisure Suit Larry 1
[N64] Diddy Kong Racing
[AMIGA] Firepower
[N64] Super Mario Kart 64
[PC] Mega Race
[PC] Prehistorik
[PC] Bioshock 2
[GAMEBOY] Bugs Bunny Crazy Castle
[PC] Quake 3 Arena
[PC] Sim City 1
[PC] Skyrim

Honorable Mentions

Here’s all the games I also quite enjoyed, but didn’t make the list on the particular day I decided to make it. But it’s a tough call vs some of the 51-100 games.

[PC] Descent
[SNES] NBA Jam
[PC] Dungeon Keeper 2
[PC] Settlers 2
[PC] The Incredible Machine
[PC] Battle Chess
[AMIGA] Micky Mouse
[PC] Hugo’s House of Horrors
[PC] Carmageddon
[PC] Tomb Raider (original)
[AMIGA] Pacman
[ATARI] COMBAT
[PC] Dragon Age 2
[PC] Flatout 2
[PC] Destruction Derby 2
[PC] Age of Empires
[PC] Limbo
[PC] Paladins
[PC] Guns of Icarus
[PC] Primal Rage
[PC] Skunny Kart
[GAMEBOY] Pipe Dream
[PC] Doom 1
[PC] Dragon Age 3 Inquisition
[PC] MDK 1
[PC] Bastion
[PC] Preshistorik 2
[PC] Prince of Persia 2
[PC] Duke Nukem 1
[PC] Virtual Karts
[PC] VVVVVV
[NES] Double Dragon 2
[PC] Warcraft 1
[PC] California Games
[PC] Unreal Tournament
[PC] Resident Evil 7
[PC] Trackmania 2

And that’s it! So, tell me about your favorite games now…

Initial Oculus Rift Top 5

My employer (Infi) has a tradition of providing three (somewhat ridiculous) options for Christmas gifts. One of them this year was the Oculus Rift with Touch Controllers. Given that I just built a fresh PC with a GTX-1080 earlier this year, the choice was obvious for me.

After two weeks of playing around with it, buying quite a few games, and trying out most of them, I certainly have my favorites. I’m curious to see how this will evolve. So time to log my current, initial Top 5 Games for Oculus Rift.

Disclaimer: I get VR-sickness quite quickly, so for obvious reasons stuff like TrackMania and Eve Valkyrie (though great games) are currently out for me.

  1. Robo Recall! It was a hard choice between 1 and 2, but replay value (achievements and high scores) sealed the deal. What a brilliant game! Bonus points for the funny story line, option to have multiple saves, diversity of levels, and brilliant sound effects and music.
  2. SuperHot VR. You feel like a BOSS in this game, a true action movie hero! Played through the entire game in one weekend (maybe 4-6 hours), which is both a good thing and a bad thing. Also a slightly more polished meta-interface (save games so I can let others replay a separate playthrough, for one) would’ve been nice.
  3. The ClimbThis borders on giving me VR sickness, yet I come back to this game every time. So that must be good?
  4. I Expect You to DieI’ve only done the first level so far, but I’m kind of “saving” the rest of this game for when I really feel like it.
  5. Arizona Sunshine. A toss up with Killing Floor: Incursion, but I think the zombie shooter should be the last item in my top 5. And I haven’t even tried coop mode yet.

Honorable mentions should go to The Invisible Hours (which my wife loves, and I can see why), Dark Days for giving me a good few scares already, and Oculus First Contact for being a fantastic tutorial.

My Backlog (games I haven’t played enough yet to judge) include Lucky’s Tale and Echo Arena so perhaps they’ll show up on a next installment of this blog series. I’m also looking forward to trying Lone Echo at some point, though I’m afraid I’ll get a heavy case of VR Sickness from it.

Oh, and the absolute worst? Well, Nature Treks VR was something my wife tried, but we asked for a refund just because it was so bad. In addition, not really “bad” but more “no experience at all”: Resident Evil 7 for PC doesn’t seem to support the Oculus Rift. Finally I’m very disappointed that Dota 2 has no good support for the Oculus controllers, making it unusable.

See you in about a year? Hopefully I’ll have a meaningful update by then!