Every Friday, I’m sharing a short list of evergreen articles/resources broadly related to software engineering that wouldn’t typically get shared in most tech newsletters or social media feeds.
- Notes on Distributed Systems for Young Bloods (2013) by Jeff Hodges. Great primer on the concerns you need to think about when building distributed systems. Especially useful for developers used to building monolithic synchronous apps. Covers many concepts including partial failures, availability, robustness, latency, backpressure, monitoring, feature flags, ID partitioning, SOA and more.
Computers can be understood (2020) by Nelson Elhage. An essay on a mindset to help you succeed when working with complex software systems.
Computers are complex, but need not be mysteries. Any question we care to ask can, in principle and usually even in practice, be answered. Unknown systems can be approached with curiosity and determination, not fear.
Testing Microservices, the sane way (Medium.com) (2017) by Cindy Sridharan. Long piece on the many considerations when testing distributed systems — what, when and how to test. The author defines testing as “a best effort verification of the system” and states:
four axes — the goal, scope, tradeoffs and payoffs — can prove to be a good proxy for being able to assess how effective any form of testing might be.
If you’d like to share an evergreen article/book which has significantly influenced your thinking or practice around software delivery, please email it through to me and I’ll add it to my backlog for sharing in future editions.
Have a great weekend!
Indie Cloud Consultant helping small teams learn and build with serverless.
Learn more how I can help you here.
Join daily email list
I publish short emails like this on building software with serverless on a daily-ish basis. They’re casual, easy to digest, and sometimes thought-provoking. If daily is too much, you can also join my less frequent newsletter to get updates on new longer-form articles.