Polymath Engineer Weekly #5
Another week, another fistful of links.
It's Wednesday my dudes! Let's learn something today.
Links of the Week
CI/CD systems are everyday more connected with our infrastructure and vendors. This makes these systems a valuable attack vector from the adversaries’ perspective.
I think this is a very good mental model on how to adopt a technology. The examples may be a little dated but the principles are still relevant.
Even if you are not interested in Clojure, this is a great talk on software engineering and complexity management.
Rich Hickey is very good at communicating his vision and this is a classic video on Clojure's community.
“Most engineers - who have not built mobile apps - assume the mobile app is a simple facade that requires less engineering effort to build and operate. Having built both types of systems: this is not the case. There is plenty of depth in building large, native, mobile applications - but often little curiosity from people not in this space.“
Production workloads can fail in unpredictable ways. Retries are a solution to improve user experience when dealing with intermitent errors, but it is essential to make our APIs safe to not corrupt data.
“But just banging out code is not enough. You may have credibility, but having it is not the same as using it. To transform influence into power you have to use it. And the way you use it is by communicating.“
In this well-written post Dropbox shows how hard it can be to retain users at scale in a mature product.
Alongside with domain knowledge, they employed machine learning to improve billing customer experience.
Kubernetes is full of footguns. By knowing this little details you can improve your service’s availability and performance.
Book of the Week
This is not specifically a software engineering book. As developers we have to understand the world before we can model it to code.
This book will expand your horizons on how to model concepts to solve problems.
Hope you enjoyed the links. Have a nice week ;)