Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
Do you know this quote? Well, it just happened to me.
When I joined
car2go, one of the first tasks for our team was to introduce a new search. The old one was based on the shared database, essentially a complex SQL query. It worked, but there was a bigger problem: this setup blocked the introduction of microservices and new teams.So we fixed it. We introduced
Elasticsearch and built two Node.js + Fastify services: customer-search (for searching), customer-search-feeder (for listening to updates and feeding them into Elasticsearch).I still remember the complications with upserts and message ordering. In the pre-
GPT era, I hacked together a script in Painless to decide what needed to be updated or not. The first insight from that work? “Painless” is a misnomer. Writing in that scripting language was quite painful, especially since you couldn’t test it in isolation.What happened next? I moved on to another team, and
customers-search (and its buddies) moved to a different one. Fast forward 8 years to October 2025: we’ve just learned that one of the many Free2move teams will be shut down, and we’ll take over their workload. And guess what was on their plate? … customer-search!Now this service has come back to me. What surprised me most is that in all these years, it hasn’t changed much. It still runs as it was designed, and even that old
Painless script is alive and doing its job.Here’s the lesson: only good software becomes legacy software, because it works so well, nobody has a reason to replace it.
So yes, I’m kind of happy to take care of
customers-search again.And indeed — the person maintaining it now knows my address.

