a blog by Sara Farquharson

what i'm reading: August 30

Latest batch of reading tipped me over the threshold of having to look up the etymology of “footgun”, which seems to be everywhere in programming language discussions. As jargon I think this term is memorable but ineffective—before looking it up I assumed the meaning was “pointless extra feature that sounds cool but is impossible to use properly”, vs the intended meaning of “feature that will lead users into trouble”.



  • Have had Leslie Lamport’s 1978 paper Time, Clocks, and the Ordering of Events in a Distributed System open in a tab for weeks, and finally found the mental energy to read it. I quite enjoy reading older papers about distributed systems and seeing where some of the field’s current best practices come from! Someday I’m going to have to learn more mathematical symbols in order to understand more of the proofs though.


Effective leadership and managing people

Difficult problems in software development that are only a little about managing people

  • I really enjoyed Rain’s post on the problems with software dependencies, which covers a lot of the history of dependency management, the current tradeoffs which need to be made in every language/project, and a focus on the choices being made by Rust’s package manager Cargo.

  • Captivated by Carmen Andoh’s twitter thread about how modern collaboration tooling like GitHub increases burnout among maintainers of large OSS projects, and how some modern projects are building collaboration tooling to deal with this problem, even as Linux is trying to modernize its workflows in the other direction. An interesting tradeoff I was not aware of before!

  • Paul Börding and Steve Upton’s post on managing feature toggles covers the nitty-gritty details I’ve always been curious about how to implement like: what process can you implement to make sure teams remember to remove the toggle after it’s no longer needed?

  • Jacques Mattheij states almost exactly why I avoid installing software updates, even though I am aware of the security risks that causes.

  • Selected an article in Increment’s new API edition almost at random, and found Darius Kazemi’s delicious dive into the history of HTTP status codes as an example of how API decisions can have an outsized effect on the future of technology.

Building inclusive teams

  • Erica Stanley’s LeadDev article So you want to build antiracist teams includes a number of specific actions companies can take to build an inclusive culture, as well as resources for Black technologists to combat isolation if their current company is not very diverse.

  • Not hype about linking to LinkedIn posts, but Andrew Hedges' post about what early-career developers need to succeed contains some good guidelines on how to design a good learning experience for new developers.

  • Kat Fukui’s account of receiving targeted harassment through her employer’s platform (CW: screencaps and descriptions of racist, sexist, transphobic, abusive language and actions) contains a coda about what tech leaders need to think about in creating a safe working environment for employees.

Programming language wonkery

WIP learning resources

  • One of the projects I’m working on is a tiny web app using React. As soon as I needed to persist data between components I have been leaning heavily on the React-Redux basic tutorial and Dan Abramov’s Persisting the State to the Local Storage in order to solve my specific use-cases without needing to stop coding entirely in order to learn a new subject.

  • Also for this project, A Complete Guide to Flexbox has been invaluable to get even the roughest positioning using modern CSS techniques.

Learning in public