Engineering design principles

Arvind Saraf
1 min readMay 5, 2023

Good engineering, like any other team within an organization, has to further the organization’s goals. In this case, in particular, the goal primarily is to build a product that is bug-free, robust, and sufficiently scalable. Based on the stage of the company, it should have fast enough first-time development and allow for quick iterations.

This requires the engineering team to make various tradeoffs between conflicting priorities, e.g. code quality and robustness vs development speed. Tech debts are inevitable. Good engineering then is about minimizing bad tech debts and taking good tech debts.

The slides share some of my learnings and thumb rules I have used in building software:

  1. Tech debts (more detailed article).
  2. Engineering principles (and how to use them). Often teams tend to overdo principles such as generalizability, simplicity & reusability.
  3. Frameworks & tools
  4. Scalability & Optimization. Is building a highly scalable solution necessary at any stage? And when does one optimize? More here.
  5. Engineering team metrics. Like any business function, there are proven & established metrics for engineering team performance.

Happy to invite feedback/additions. You can directly comment in Google slides here.

--

--

Arvind Saraf

Arvind (http://www.linkedin.com/in/arvind-saraf/) is a Computer engineer (IIT, MIT, Google) turned technology/impact entrepreneur.