Blog of Rob Galanakis (@robgalanakis)

Reflections on over-engineering

My entire career has been spent replacing other people’s applications. The closest I’ve come to greenfielding was spending 3 months rebuilding MilkRun and then migrating data from the old system to the new (none of the code or schema was kept). I think I’ve been pretty successful at replacing other folks’ code and it has given me a particular perspective on the state of our craft.

I would wager that poor programming practices have created a fundamental misunderstanding of the complexity of what we do as programmers, which has created all sorts of negative knock-on effects throughout out companies and even the economy.

There are, to be sure, some problems that are not easy to solve by their very essence, namely dealing with truly enormous amounts of data/bandwidth/processing. That is, things that are more or less dealing with physical constraints. I don’t suppose that I’d know what works at Cloudflare, or Stripe.

But I do know that the majority of startups are not dealing with these sorts of problems (certainly none I’ve ever interviewed or worked at). Of those that are, the complexity is normally limited to a particular team or space. In the next couple posts, I’m going to give examples that I’m comfortable giving from Cozy and Cloudability — this is not an extensive list though and the situation is the rule rather than exception. If these posts do not line up with your experience, I’d be really interested in hearing counter-examples.

Leave a Reply