..

Reflections on 7 years as a SWE

  1. Benefits and trade-offs of a tool/approach do not reveal themselves at the same time. Cassandra will instantly be insanely fast, but the features from SQL it had to remove to reach that speed may be understated when starting a system.
  2. If troubleshooting seems paranormal, assume the mistake is in your yard.
  3. Logic and sound arguments do not gain special properties based on the person using them.
  4. Do not introduce random ambiguity, if water is wet just say so, no “maybe the water is wet”.
  5. Take tasks given being neboulous as core part of being an SWE.
  6. The bigger the assumption you work based on the higher the chance you’re wasting time or doing damage unknowningly.
  7. Code needs to be maintained and debugged, so if you can manage with less do it.
  8. Do not postpone learning fundamentals until you get stuck troubleshooting something not fixed by LLMs.
  9. Ambiguity and frustration tolerance are pretty safe traits to interview SWEs on.
  10. Boring in coding and design is usually better.