Thoughts on programming by Nick Telford

View on GitHub @nicktelford on Twitter

This is a summary of articles, presentations, papers and books that I strongly recommend all Software Engineers to have read.

I will try to summarize each, but I’ll likely do a terrible job of it. Instead, just click through and watch/read for yourself.


Simple Made Easy (Rich Hickey)
A look at how embracing simplicity, and sometimes shunning easiness, can conquer complexity.
Metrics, Metrics Everywhere (Coda Hale)
A look at service-level performance metrics and improving transparency of the software you write.
The Programming Ape (Coda Hale)
Advice on building human-centric tools for software engineers.
The Value of Values (Rich Hickey)
A talk on the advantages that immutability and functional programming bring.


Notes on Distributed Systems (Jeff Hodges)
Advice from the front-lines on designing, building and running distributed systems. Recommended for everyone, but required reading for anyone working with distributed systems.
You Can't Sacrifice Partition Tolerance (Coda Hale)
A debunking of the interpretation of the CAP Theorem that "CA" distributed systems (that is, a system that sacrifices partition tolerance) are possible.
How To Safely Store a Password (Coda Hale)
A succinct and excellent discussion on securely storing passwords and the dangers of not doing so.


MapReduce (Google)
The seminal paper on the MapReduce programming model for distributed computation.
BigTable (Google)
Google's scalable column-family oriented database. Inspired much of the design of HBase and Cassandra.
Dynamo (Amazon)
A key-value store that describes eventual consistency, a consistency model utilized heavily by Cassandra and Riak, among many others.


While there are many books I would recommend, I need to think harder about the ones I consider to be truly important.