Interesting Reads, #2
Software Engineering
I liked that in the last issue I had some articles about practical web performance, and this article’s a great example of that. It goes into Total Blocking Time and shows a classic case of fixing what was once perfectly fine code that didn’t scale well over time. A lot of code starts performant enough — okay, maybe not a lot — but then is ran against more data or in different product use cases than originally imagined. Auditing existing code for perf gains can be just as fruitful as reviewing new code.
I’ve been trying to casually learn more about distributed systems. This was an interesting read about scaling Discord’s message storage beyond scales I’ve ever had to think much about. I also like their approach in trying to fix things around the problem before diving into a rearchitecture, which is normally expensive and hard to accurately contain/estimate, before doing so. Cool stuff.
I’ve very much enjoyed this series of blog posts; it’s inspired me to dive head-first into perf problems and just start picking things apart along the way. This was a good example of fixing perf issues where it’s death by 1000 cuts instead of a few long tasks or issues. Also an important lesson — only try to do work on/load the smallest set of what you need.
An aside: I feel like perf has one of the most vast chasms between the simplicity of the rules and how hard it is in practice. It essentially boils down to a) do less work, b) do work faster, and c) spread the work out (parallelize). Turns out it’s not that easy to apply IRL.
Not too much to say about this one, just thought it was a nice, easy to reference list of things to keep top-of-mind when developing web interfaces. I’d love articles/lists things like this, especially with the depth provided by links/footnotes.
This is a long but well-written intro to CRDTs. It comes at them from a more mathematical bent, but has unit-ish tests embedded in the series that run against the example code, well drawn diagrams, and mostly I liked the way that it built upon first principles and kept a complex topic will within grasp. CRDTs are freaking cool, too.
Read through these a little while ago and they were more helpful than I’d remembered. Good place to start if you’re interested in learning more about web performance.
Product Things
I’m a sucker for articles talking about interacting with users and the importance of doing so. I’m also a huge advocate of user support being everyone’s job, regardless of the size of the company/product or role. Prioritize user happiness over everything else.
Books
I’ve read a lot of books since the last issue. Goodreads says it’s six. Some good, some bad, one so god awful that I can’t believe I even made it 30% of the way through before quitting. Two stood out.
This was my second read through of They Can’t Kill Us Until They Kill Us. Hanif’s writing is incredible and second only to his ability to tell a story. I’d read him on anything, which is my favorite thing about this book — you get almost everything. Pop culture from the last millenium, inside looks at emo bands before they were popular, first-hand accounts of what it’s like to be Black in a nearly all white city. Heavy at times, but appropriately, meaningfully heavy and beautiful cover to cover.
I just really liked the setting and didn’t really know what I was in for most of the time. It’s vivid enough to pull you in and intriguing enough to not want to stop reading. Maybe it’s because I hadn’t loved the couple books I read before this, but damn if I didn’t enjoy her writing style and seeing the environment unfold into the story.