I highly recommend the works of the following bloggers and have selected an article for each that, while not necessarily their most well-known, showcases the quality of their content. Some of the writers no longer maintain active blogs, having moved on to other pursuits, while others are lesser-known but offer insightful thinking. They all offer though-provoking perspectives and are well worth reading.
- “You Already Know Calculus: Derivatives” (2011) by Christopher Olah demystifies calculus by explaining derivatives through intuitive everyday life examples.
- “Fairy Tale Cryptography 2: Hashes” (2017) by Dominic Tarr uses the story of Cinderella to explain the concept of cryptographic hashes.
- “When costs are nonlinear, keep it small” (2021) by Jessica Kerr highlights the importance of avoiding batching in systems with nonlinear costs, such as software deployment, to prevent increased risks and escalating costs.
- “Yak shaving and fixing” (2018) by Sophie Alpert emphasizes the value of fixing bugs and enhancing tools, even when not directly related to one’s immediate goal, to boost productivity for the whole team/org.
- “The Wrong Abstraction” (2016) by Sandi Metz examines the pitfalls of incorrect abstractions in code, advocating for inlining code and embracing duplication as a stepping stone to more meaningful abstractions.
- “Orthogonality” (2018) by the prolific aphorist Guo Liang Oon delineates between modularity and orthogonality in problem-solving, identifying the former as focusing on “ownership” and the latter on “obliviousness”, and encourages us to strive toward embracing orthogonality.
- “Programmer’s guide to polynomials and splines” (2019) by Oleksandr Kaleniuk delves into the foundations of polynomials and splines, offering insights into their practical applications and uses in software development.
- “Quadtrees in the Wild” (2021) by Chidi Williams offers a captivating, hands-on learning experience on quadtrees, highlighting real-world applications like image compression and collision detection through interactive visualisations.
- “Data Consistency Is Overrated” (2023) by Christoffer Stjernlöf discusses the discrepancy between the expectations of software engineers and domain experts with regards to data consistency, observing that within the real world, often all that is required is for data to be evolved and errors corrected until the results are within the bounds acceptable to the system owner.
- “How to spy on your programs with
`strace`” (2015) by Julia Evans, an educator known for creating visually engaging and beginner-friendly comics, offers an accessible introduction to using the
`strace`tool for debugging and monitoring program behavior on Linux systems.
- “Just write the #!%/* parser” (2019) by Tiark Rompf is a hands-on guide written in a literate programming style that walks the reader through implementing a parser by hand all the way up to adding support for arbitrary operators with varying precendence levels and associativity behaviours.
- “Files are hard” (2017) by Dan Luu examines the intracacies and hurdles in developing reliable file systems and managing errors in application code, underscoring the importance of better testing methods.
- “Learn to never be wrong” (2020) by Will Larson discusses how to achieve correctness without dominating conversations, by seeking the best outcome for everyone, demonstrating a willingness to change one’s initial stance, and embracing the belief that there is always an additional piece of context that reconciles seemingly conflicting perspectives into a unified view.
- “The naming of things” (2021) by Tom MacWright emphasizes the value of clear and purposeful naming in programming, arguing that thoughtful names foster trust and comprehension in a codebase, streamlining its accessibility and maintenance.
- “How to recalculate a spreadsheet” (2020) by Robert Lord is a comprehensive guide that traces the evolution of spreadsheet calculation methods, from basic techniques to increasingly performant and sophisticated approaches.
- “Writing In Public, Inside Your Company” (2021) by Brie Wolfson highlights the importance of a strong writing culture in organizations like Stripe, and shares insights on cultivating such a culture by creating infrastructure, including papertrails, curations, editorial systems, and distribution strategies, to encourage writing and idea-sharing across the organisation.
- “Metrics, codification and objectivity” (2022) by Ashwin Parameswaran, a prolific systems-thinker, argues that although systems without human discretion are preferred for their objectivity, the resulting loss of accountability and escalating codification ultimately leads to dysfunctionality.
- “In praise of
`--dry-run`” (2021) by Patrick Stevens discusses the use of “defunctionalisation” and other techniques to implement
`--dry-run`modes to enhance the user experience of our tools.
- “Beauty is Fit” (2014) by Sarah Perry argues that beauty is not a mystical, irreducible quality, but an ultimately computational feature arising from the detection of fit within systems, with computationally generated fit potentially being more satisfying and harmonious to human minds than that generated by humans alone.
- “Pornography vs fetishism” (2021) by Haley Thurston (see also) argues for the value of art with a “pornographic ethos”, which involves building expectations and desires before satisfying them, contrasting this with fetishism in art, which involves indulgence in specific interests or desires that may not fit coherently within the larger context of the work.
- “Chords and Maps” (2016) by Gabriel Duquette identifies two ways of seeing fit in art, aesthetic fit that deals with sensory experiences, and abstraction fit that deals with representations of reality.
- “History and the Security of Property” (2006) by Nick Szabo explores the role of physical and geographical factors in securing farmland and other resources, and how these factors influenced political systems and legal structures, while questioning their suitability for securing emerging forms of wealth, such as information.
- “Minimum Viable Blockchain” (2014) by Ilya Grigorik explores the fundamental concepts and challenges of building a secure, decentralized ledger system, discussing how to protect it from Sybil attacks and double-spending, while also addressing the need for incentivizing network participants.
- “Your computer is a distributed system” (2022) by Spencer Baugh argues that most computers are actually distributed systems with many components running concurrently and communicating over internal buses, and explores the implications of this for programming and performance.