The Time-Complexity Tradeoff

  • With the rise of modern cloud computing tech and off-the-shelf services, it's becoming more complicated to make the decision between "implementing it yourself" and "use the service"
  • The two fundamental job of an engineer is to deliver value while minimizing complexity
    • Complexity comes from two sources, an expansion of the problem domain (intended complexity) and the imperfection of compute resources (unintended complexity)
  • With all the services now, you can deliver value much quicker, at the cost of taking on more complexity (these services were built to solve more problems than you need, and as a result have more features to understand/argue with than you need)
  • So the tradeoff now is between building something yourself, which has short term losses and longer term gains, and utilizing a service, which has short term gains but longer term losses