Monday, November 24, 2025

Our Zoo

OK, Zoo might slightly be overstating it. 

Let's start at the beginning. 

In March 2019, we moved from Barcelona into the countryside. 
While I grew up in a village and studied in a small town, my recent life I spend in London and Barcelona. 
It was also my first house, farmhouse even, having lived in flats most of my life. 

So clearly, I thought about how I could complete my cosplaying of country life.  

"A dog and a cat would be nice at some point" 

A couple of months later…

Cheeky & Foggy - July 2019

Young white kitten
I planned to clean out our small barn, and to my surprise discovered a litter of kittens. 

I remembered that I saw a bigger cat going through or garden, which might have been pregnant. 

She picked up most of the litter, but left Cheeky (black one) and Foggy (white one) back. 

Young black kitten
They got used to us and the house quickly. Cats are great, they understand potty training on their own. They stay clean on their own. 

We obviously bought all the toys, feeding station, and a cat flap once they got a little bigger. 

When they were small, they climbed on top of me and my shoulders while watching telly. 

Now they are more attached to my partner and just tolerate me. 

I thought: "Two cats, that's great.  At least they can play together. Maybe a dog at some point". 

A couple of months later… 

Hoover - October 2019

I was in Barcelona on a Friday for Future protest when my partner called me. She had found an injured dog in the road and naturally picked him up. It took me a while to get back with train and bicycle. When I arrived, I was greeted by a sad and hurt beagle. 

Injured beagle
We found a 24h vet clinic in the next town and got him checked out.

He might have been attacked by other dogs or wild animals. He was in a pretty bad shape.

We got him fixed up and also removed a growth on his leg. 

He was chipped, but the chip was not registered.

I came up with the name Hoover, as he had a cone of shame for a while, and he did look like a vacuum cleaner when doing the sniffing around. He reacted directly to the (new) name. 

After a while, we wanted to register him with the town. That's when we learned about the previous owner. He was known to the town hall, and apparently not great with animals, they would have preferred not to give the dog back. 

In Spain, if you find a dog and then return it to the owner, the owner has to pay for any vet expenses. Since we had paid exceeding 1000 Euro by now, the owner decided that he didn't want Hoover back (his original name was Bruno). 

He got used to us so quickly, and is now the most cuddly dog you can imagine. 

He gets along with the cats well.  

Me: "This is great. A dog and two cats. Pet achievement reached"

Quite a few months later…

Yuki  - February 2021

A beagle and a podenco in a living room

When we are travelling, we leave our dogs at a local dog hostel. We are friends with the owner, and she thought of us when she came across an abandoned dog. 

The dog was called Mia at the time, which is a very common name. We renamed her Yuki after asking Reddit for suggestions. 

She was super undernourished and needed a good clean.

She didn't really get along with me, or maybe men in general.  She did like Hoover and my partner. The cats, not so much. 

So obviously, we cared for her, fed her well, and made sure she felt at home with us. 

Me: "OK, two dogs, two cats. This is perfect."

A few weeks later… 

Yukitos  - March 2021

X-ray of a dog with puppies inside

She was gaining weight, which was great. At some point on one of our walks, noticing Yuki's size, I said to my partner: "I think she is pregnant". 

A trip to the vet and an X-ray confirmed this. The same vet hadn't noticed anything just two weeks ago. Hidden in Yuki's tummy were eight little puppies. 

Podenco with puppies feeding
We had a home birth in our living room. There were still COVID-19 restrictions in place and we were working from home. 

We had to feed them with bottles, as Yuki was too undernourished to provide for them. 

Sadly, three of them didn't make it. I am sure we did something wrong. 

I now also have a lot more respect for parents. The bottle feeding continued for two months, and I don't think I slept at all during this time.  My brain was not really functioning when at work. 

Five podenco puppies and a beagle

The five that grew were quite fun, active, and destructive. Our living room didn't survive them.  

One, we gave to my partner's parent: Seven.

One went to a village nearby with lots of space to roam: Lola.  

In what turned out to be a big mistake … which I probably would make again, we kept three of them: Neo, Baty, and Crash. 

Three podenco puppies on a sofa

And that it is for now. I ended up with four dogs and two cats. They are exhausting and have changed our life. I wouldn't change a thing. 

A few months later… 

I am just kidding. 

We did temporarily take in a cat, which sadly died in our care. I was really fond of Charlie. 

And we sometimes host other dogs for a while.

For all other pets, we encounter, we have found the original owners.

As I said in the beginning, that "zoo" is overstating it a bit, and that is true. We do have constant visits from other animals in our garden: other cats, birds, snakes, badgers, foxes, rabbits, mice, rats, martens, …

If I learned anything from all of this, then it is that I am not good at saying no to an animal in need. Since we have a crowded house already, I have to be better at it.  

 

Two cats on a window sill

Three grown up podencos and a beagle

 

 

 

 

Friday, November 21, 2025

Friday Links 25-27

Screenshot from TI99 Pirate Adventure game

This week, I enjoyed the blog about chat programming, and coding at work, which is probably related. 

Leadership

Hybrid workers are putting in 90 fewer minutes of work on Fridays – and an overall shift toward custom schedules could be undercutting collaboration - Friday is always different in Spain. 

Thermostats - Tuning team temperature - first rule of leadership: don't panic 

Feedback doesn't scale - this is mostly about bigger teams  

Managers, Don’t Bet on Your People’s Ideas! - bet on the people

Engineering

AI World Clocks - some are actually good, the others are funny.

A Month of Chat-Oriented Programming - I can relate to this. I have been shouting at Claude this week. 

run-ancient-unix  - Version 1 on a fake PDP-11!

Coding at work (after a decade away). - "Dubious return-on-effort of manager coding"

The Pulse: Cloudflare takes down half the internet – but shares a great postmortem - good summary of the whole episode

Environment 

When Bill Gates Yelled At Me About Climate Change - he is weird. 

Ban on veggie ‘burgers’: plant-based products may lose meaty names in UK under EU law - "There’s no genuine, citizen-driven demand to ban veggie burgers or sausages – just a meat industry push to protect its profit margins from a rising tide of dietary change."

Urbanism

Why have deaths and serious injuries in collisions involving HGVs being driven in London halved since 2019? - What? You can actually improve things? 

Random Adventures

Zork is now open source - nice.

Other Links

Friday Links Disclaimer
Inclusion of links does not imply that I agree with the content of linked articles or podcasts. I am just interested in all kinds of perspectives. If you follow the link posts over time, you might notice common themes, though.
More about the links in a separate post: About Friday Links.

Monday, November 17, 2025

My Framework for Technical Debt

I've mentioned my approach to technical debt often, but I've never actually written it down. Here's the framework I use. 

Technical debt is most typically brought up from individual engineers or the engineering department. If not attended to, technical debt can slow down future product development and reduce the developer experience.  

To me, technical debt is simply technical work we choose to postpone, focusing on something that currently has higher priority.


I am not going to get into why it is bad, but how it is created and what you might do to reduce it.


The following is the model I use to split technical debt into three classes. 


  1. On the smallest scale it is in the individual work, where shortcuts are taken

  2. Medium scale is the project / product level, where product work take priority over technical work

  3. The biggest level are migrations, for example version upgrades to systems 

Smallest Scale: Individual Level

Make quality part of every story.


This is the easiest to address by the engineers, as it is fully in their hands. 

They might decide to take a shortcut, by writing fewer tests, not spending time on refactoring, or ignoring agreements about code style or quality. 

This could be due to pressure from the product side, or sometimes from taking the path of least resistance, or from wanting to focus purely on functionality. 

If the pressure comes from the product side, make sure that the time required for proper testing, refactoring, and code quality is included in the feature estimate. This isn’t extra work — it’s part of delivering the feature itself.

You need a team agreement about the minimum quality that is expected, and then it is part of each task. 

You don’t create extra tasks for this, you don’t reserve extra time, you don’t add it to the task specification, instead it is included in the feature work. 

At the same time, the team has to hold everybody responsible for this. 

If the team isn't holding people accountable, no one gets to complain about quality later.

Medium Scale: Project Level 

Agree as a team when to defer, and track it explicitly.


At the project level — whether you call it an initiative, epic, cycle, or sprint — technical debt often appears when product delivery takes priority over internal improvements. 

If you work in an agile environment, you want to deliver iteratively to the user as fast as possible. On the product side, it might be an MVP, or individual experiments. 

The faster you learn, the faster you can decide if further investment is worthwhile

In this case, it might be valuable to delay technical investment to a later part of the project. You would create separate tasks to work on once the results of the experiments are clear. 

This requires trust in the product planning process. If these tasks consistently end up in the forever backlog, the team will stop agreeing to defer them.

Big Scale: System Level 

Plan migrations early, budget them like real projects.


System-level debt typically builds up quietly over time. A few examples:

  • A large system, like a database, needs an upgrade

  • One of the libraries or frameworks in use deprecates the version you are using

  • A dependency of your system is abandoned 

  • You need to change a third-party system because of a change in costs

  • You inherit a system that has different quality standards as yours  

All of these will require not only operational work, but also changes to existing systems, and code bases. 

These will be large migrations, that often require multiple people, a team, or even teams to work on them. 

They have to be handled as proper projects and will take time that would normally be reserved for feature projects. 

In most cases, they will just cost money and not bring any new one in. Occasionally, they can even save money, especially if the new system brings performance improvements you can leverage.

This makes it often difficult to justify the work. 

On the positive side, they are typically not urgent. For most of these, you will know about the changes in version or support very early. You can plan them well in advance.
The key is to treat these migrations as part of your long-term product strategy — planned, visible, and funded like any other project.

Summary

No matter the scale, managing technical debt is about conscious trade-offs and shared accountability. What matters most is that these decisions are made transparently, understood by everyone involved, and revisited regularly.


What doesn’t work is pretending technical debt doesn’t exist, or treating it as purely an engineering problem. It’s a product and business decision as much as a technical one.


And there will always be some technical debt, it is just important to make sure that it has the lowest impact on future development.

Friday, November 14, 2025

Friday Links 25-26

Skateboarder jumping off a building in NYC

Short, but with lots of good stuff. The fad of engineering management, drug policy in Spain, and Mr. TIFF are my favourites.

Have a lovely weekend!  

Leadership

"Good engineering management" is a fad - you will have to adapt and core skills are reusable

Seven Decisions - "Inspired" -- right. 

Engineering

Mr TIFF - the story of the TIFF format. As an Amiga fanboy, I like to follow anything related to IFF.

Prompt Injection in AI Browsers - nice. We will have so much fun in the future. 

Rust in Android: move fast and fix things  - Google's experience with Rust. Faster reviews are interesting. 

Urbanism

The Trammmformation of Diagonal  [YouTube] a look at the new tram lines and some history

34-Year-Old Finds Dream Job Doing The Unexpected [YouTube] - cargo bike Olympics as a business. 

Roads need to be narrower or wider to protect cyclists, says new government guidance - interesting finding. I do like smaller lanes, as this also reduces speed.

Random Skateboarding

We can't have nice fountains, part 3 [YouTube] - Some great skateboarding shots. 

Time to Migrate - Tim wants you to move to Mastodon. He is right. 

Drugs policy: Who Does It Best? [Podcast] - another special episode from The Europeans. 

Other Links

Friday Links Disclaimer
Inclusion of links does not imply that I agree with the content of linked articles or podcasts. I am just interested in all kinds of perspectives. If you follow the link posts over time, you might notice common themes, though.
More about the links in a separate post: About Friday Links.

Friday, November 07, 2025

Friday Links 25-25

Large group of cyclists in Barcelona, with one DJ on a cargo bike
Short one today. 

Listen to the last episode of Science in Action, or check out the archive. 

For a fun, scary game, have a look at The Scope Creep. One for the product managers.  

Leadership

Become the Consequence - I'll have to digest this a bit more.

The Scope Creep - scary product game 

Engineering

Ambient CI, progress this year - progress on a distributed CI

Environment

‘If you ignore emissions, we did great’: Germany’s challenging fight to go green - still stuck in the 90s. 

Urbanism

Stations and transfers - metro stations mapped in 3D

Radeln ohne Hirnschaden [German] - in Berlin they are smoothening the cobblestones for easier cycling. Obviously, only in one street. 

End of The Line? Saudi Arabia scales back plan for wildly ambitious 100-mile-long megacity in the desert - this will not happen at all. 

Free public transport trial in Glasgow to benefit 1000 citizens - that seems to be a tiny trial. 

Random Cyclists

‘You can do hard things!’ The young cycling enthusiasts reclaiming the streets of Johannesburg - I miss this kind of groups. 

12 Hours of Retro Gaming for Halloween Vibes (PAC-MAN Edition)  [YouTube] - in case you need some retro background music. 

Removing obfuscation in Java Edition - Minecraft is making the Java client easier to work with. 

Maldives becomes the only country with generational smoking ban - that will be interesting to watch. 

1283. Isamu Nakamura /// PF-2 /// Higashinada Ward, Kobe, Hyogo, Japan /// 1996-97 - I love this style. Maybe not something I would want to live in today. 

The dawn of the post-literate society - this long read will be especially challenging. 

How science got here, and where next [Podcast] - The last episode of Science in Action. It will be missed. 

Childcare policy: Who Does It Best? [Podcast] - Slovenia? 

Other Links

Friday Links Disclaimer
Inclusion of links does not imply that I agree with the content of linked articles or podcasts. I am just interested in all kinds of perspectives. If you follow the link posts over time, you might notice common themes, though.
More about the links in a separate post: About Friday Links.