I Cry Every Time Jonathan Blow Says I Don't Have Deep Knowledge

Posted by EasyLowHangingFruit@reddit | ExperiencedDevs | View on Reddit | 105 comments

Hi folks, hope y'all doing good!

What hard skills and/or deep knowledge do you think every Senior SWE should positively have in the context of building and maintaining scalable, highly available, mission critical distributed systems?

What immediately comes to mind for me is:

  1. How scalable dist systems work (caching, vert and hor scaling, sharding, microservices, etc)
  2. Logs querying and analysis
  3. Distributed tracing debugging
  4. JVM metrics (i.e. threads, etc) and memory profiling
  5. Memory management and profiling at the local level
  6. Some SQL query tuning
  7. GitFlow (or any other strat), hotfixing and cherry picking
  8. Knowledge of how app layer protocols work (HTTP, FTP, SMTP, and DNS)
  9. Maybe some stress testing?

What would you add to the list?