My favorite blogs, articles, and other media
Sharing some random articles that I’ve found interesting and bookmarked throughout years. Doesn’t mean I agree with all of them, yet they’re fun reads nonetheless.
Table of contents
- Languages and style
- Tech
- Architecture and patterns
- Databases and distributed systems
- Testing
- Frontend
- /etc
Languages and style
- Are Design Patterns Missing Language Features and Language Smell - C2Wiki discussions.
- It’s probably time to stop recommending Clean Code - criticisms of the Clean Code book.
- Against Names - naming is hard, so let’s avoid it.
- PHP: a fractal of bad design
Tech
- Why async Rust? - history on Rust’s async design choices; great as a general overview on async history.
- Pointers Are Complicated - a series of articles on abstract machines and pointers.
- Memory Barriers Are Like Source Control Operations - a series of articles on memory and lock-free multithreading.
Architecture and patterns
- Making Architecture Matter and the accompanying Who Needs an Architect? - thoughts on software architecture.
- Railway Oriented Programming - result objects are a well-suited tool for backend control flows.
- How Did REST Come To Mean The Opposite of REST? - shows how the meaning of REST has shifted in industry over time.
- Why I No Longer Use MVC Frameworks - connects a lot of topics into one story on the history of web development.
- CQRS, Task Based UIs, Event Sourcing agh! - talks about how CQRS is confused with other patterns that it’s often seen together with.
- A Sketch of the Biggest Idea in Software Architecture
- Don’t Let the Internet Dupe You, Event Sourcing is Hard - not a criticism of event sourcing per se.
Databases and distributed systems
- Designing Data-Intensive Applications - my favorite tech book. Touches on a million big-picture subjects without becoming dry.
- A future for SQL on the web - AbsurdSQL. Let’s import SQLite via WASM and persist it in IndexedDB. Surprisingly, it’s faster than just using IndexedDB!
- Why You Should Never Use MongoDB - relations, relations, relations.
- Catalog of Patterns of Distributed Systems
- Strong consistency models, “Serializability, linearizability, and locality”, and the Consistency Models reference - amazing overviews on isolation & consistency models. Pretty much all of their articles are great, especially the analyses of database guarantees.
- You Can’t Sacrifice Partition Tolerance and CAP Twelve Years Later: How the “Rules” Have Changed - on the misunderstandings and limitations of CAP. I’d also add that the C in CAP simply corresponds to linearizability, which makes the whole theorem even less useful.
Testing
- Beware the Integrated Tests Scam - integrated tests suffer from combinatorial explosion.
- Mocks Aren’t Stubs - touches on the London-vs-Detroit testing debate.
- Confidence from Facade Tests - functional testing approach.
Frontend
- A (Mostly) Complete Guide to React Rendering Behavior - thorough and well-written React rendering guide.
- Visual design rules you can safely follow every time
/etc
- The Missing Semester of Your CS Education
- Typing the technical interview
- Webshit Weekly
- Awesome Falsehood - series of articles on the falsehoods that programmers believe in. Started with this famous article.