The Grug Brained Developer

The grug brained developer is the counterpoint of the big brained developer.

They espouse the following principles and opinions:

  • Complexity demon is the enemy
  • Prototyping prevents big brained developers from complecting
  • Say ‘no’ to things that cause more complexity, but also say ‘ok’ and compromise
  • Don’t factor your code too soon, wait for cut points to emerge
  • Integration tests are the right balance between usefulness and safety
  • Agile is a scapegoat for when things go wrong (you didn’t do agile right!)
  • Keep refactors small, introducing too much abstraction summons the complexity demon
  • Understand a system before improving (Chesterton’s fence)
  • Microservices take all the hard problems, then adds network calls to it
  • Master your tools and keep improving them
  • Type systems make putting pieces together easier but big brain type systems focused on correctness are a great way to summon the complexity demon
  • Minimizing lines of code with ternary operators is harder to debug
  • Closures are like salt, there can be too much salt, callback hell is too much salt
  • Good logging gives you more clubs to whack bugs with
  • Fear concurrency, rely on simply concurrency models that are ideally stateless
  • Good API design doesn’t make you think too much, big brain API designers think too abstractly and should focus on implementation or the domain
  • Web development is splitting frontend and backend ending up with two complexity demon lairs
  • Fear Of Looking Dumb (FOLD) is a major power source for the complexity demon, saying it’s too confusing reduces this power
  • Nobody is an imposter if everybody is an imposter

Read The Grug Brained Developer.