New Dec 26, 2025

Building my faux lego advent calendar feels like current software development

Top Front-end Bloggers All from Christian Heilmann View Building my faux lego advent calendar feels like current software development on christianheilmann.com

I’ve stated on several occasions that Lego made me a developer. I was the youngest of four kids who inherited a huge box of bricks with no instruction booklets. So I took lots of smaller bits to build bigger things and re-used skills and ways to connect things. I came up with my own models just to dismantle them and re-arrange things.

Much like you write software:

Now, this December my partner got me a Blue Brixx advent calendar with Peanuts characters that can be Christmas ornaments. It taught me that Blue Brixx is much more like current software development.

The advent calendar box, individual boxes and some of the models I already assembled with a plastic bag full of leftover bricks.

Lego has some unspoken rules and good structure

Lego is great to assemble and sometimes tricky to detach. But it is always possible.

Don’t tell me you are a child of the 80s if you haven’t at least chipped one tooth trying to separate some stubborn 4×2 Lego bricks.

With Lego you get instructions that show you each step of the way which parts are necessary. It’s a bit like following a tutorial on how to develop a software solution.

With Lego, you have all the necessary bricks and none should be left over. Much like with IKEA, any time you have to use force, you’re doing something wrong and it will hurt you further down the track.

Blue Brixx is different

Blue Brixx, because of its size, make and price, is different. The models are adorable and fun to build, but you need to prepare a different approach.

The instruction booklet and zoomed in showing that you need to guess the bricks in use at each step.

Current software development feels similar

Which is a bit like software development these days. We use libraries, frameworks, packages and custom-made, reusable solutions. Often we find ourselves assembling a Frankenstein solution that is hard to maintain, tough to debug, has horrible performance and gobbles up memory.

Just because we re-used bricks we’re not quite sure if we put them together the right way. And we sometimes have to use force to make them work together in the form of converters and optimisers. We add tons of bricks upfront that are loosely connected and lack structural integrity, so we add even more tools to then analyse what’s shipped but isn’t needed and remove it again. We don’t have a manual to follow and we look at the shiny end results built with a certain library and want to take a shortcut there.

I’ve seen far too many products that used several libraries because one component of each was great, resulting in a bloated mess nobody understands.

This is exacerbated by vibe coding. The idea is never to care about the code, but only about the solution, and that will always result in starting from scratch rather than maintaining and changing a product. Think of this as Lego models you glued together.

My workflow: tooling up and structuring

OK, the first thing I realised is that I need new glasses. I already have varifocals, but my eyesight must have declined – spoiler: it did in 3 years. I either can check the instruction booklet with the surprise brick illustrations or find the correct one without my glasses or I need the glasses to find the small brick on the table. This is frustrating, not to even mention the ergonomics of the situation resulting in a hurting back.

Until my new glasses arrive I am using a LED panel lamp I normally use for my podcasts to give the bricks more contrast and see much more detail.

If that is not enough I use my mobile phone as a magnifier to analyse the booklet.

And last but not least I started to pre-sort the bricks of each model before assembling it. This gives me weird looks by my partner of the “what a nerd” variety, but it really helps.

A model instruction booklet with sorted bricks around it.

All the bricks of the current model sorted and collated into 2xsomething 1 x something, angles and connectors, diagonal bricks and non-standard ones and 2x2 or 1x1

This is also how I build software and try to find my way in this “modern” world of cutting straight to the final product:

Building these things is work, but it also gives me joy to have assembled them by hand. I also learn a lot how certain parts are always achieved in the same way (hair, arms, legs, parcels…) and It gets easier the more I do it.

I doubt that I would feel the same fulfilment if I asked ChatGPT to build me a 3D model and print the thing.

Scroll to top