What Makes a Great Software Engineer

October 03, 2022

  • understand fundamentals
    • can create and destruct abstractions easily
  • deliver whole, working products. This means design, code, and deployment, the whole shebang
  • always knows the next step in debugging
  • switching between technologies really easily
  • best practices are automatic (simplify, commenting, naming)
  • architecting large systems
  • being able to quickly understand other people's code
  • communicate technical to nontechnical
  • being curious and staying informed about new technologies/frameworks/best practices
  • being able to write lots of code
    • being able to write lots of code fast
  • work effectively with other engineers
  • estimating timelines in the right ballpark
  • knows what's valuable and what's not
  • do both quicky, dirty hacks and robust, elegant solutions
    • knows when to do which