• Choose boring (read old and well used) technology for your tech stack because its capabilities, as well as its failures, are well understood.
  • When choosing, you will have both known unknowns & unknown unknowns. Both sets are non-empty for all kinds of technology, boring or not. But the magnitude of unknown unknowns for new shiny technology is significantly larger.
  • Remember that the “best” tool for the job is the one that will be on the “least worst” position for as many of your problems as possible.
  • Mature developers understand that the long-term costs of keeping a system working reliably greatly exceed any inconveniences encountered while building it.
  • In cases when new technology or tool that you must choose overlap or replace things already in use, ensure you migrate old functionality to the new system.
“Mindful choice of technology gives engineering minds real freedom: the freedom to contemplate bigger questions. Technology for its own sake is snake oil.”

Full post here, 8 mins read