Craig's Blog

Engineering tips

Please find a set of engineering tips to help you work through reasoning about a problem. No two problems are the same, but I have found a few patterns consistent across all problems.

  • Nothing is better than Simple. Simple is better than complex. Complex is better than complicated. (Modification of Python’s mantra)
  • Data, Data, Data. It is better to take the time to get data to make a good decision then to rush into a bad decision.
  • Hold smaller meetings/reviews. If you get the same feedback from 10 people as you would have from 1 or 2, what was the benefit of adding all of those people?
  • Be concise. If you can explain something in a few sentences, why write a paragraph, a page, or a doc? Same with code, no need to create unnecessary abstractions and complexity early.
  • Plans are useless but planning is indispensable - Eisenhower. Make plans before doing a project, but they do not need to be perfect, or perfectly followed. Recommended rule of thumb - make the plan 70-90% complete depending on the risk tolerance of the project.
  • Async consensus, then sync consensus, then sync information sharing, then async information sharing. Consensus is not the same as alignment, its okay to have differing opinions, but no major opinions/deviations should happen after sync consensus.
  • Moderate documentation. No documentation makes items difficult to recall, similarly, too much documentation makes items hard to find and verify.
  • Two way doors are decided by the owner. The person who will be woken up in the middle of the night should get to choose how to write code if its not a 1-way door.
← Back to all posts