back home

books

Developer books and technical writing I would recommend for building stronger software judgment. The list leans toward systems, fullstack engineering, product thinking, TypeScript, Go, and compiler curiosity.

  • I like books that make engineering tradeoffs easier to see.
  • I prefer practical ideas that survive real production work.
  • I keep coming back to systems, product detail, developer tools, and clean interfaces.

Designing Data-Intensive Applications by Martin Kleppmann, 2017 The systems book I would keep close for databases, distributed systems, replication, streams, and the real reasons production data work gets complicated.

Clean Architecture by Robert C. Martin, 2017 Useful for thinking about boundaries, dependencies, use cases, and codebases that need to survive beyond the first fast implementation.

The Pragmatic Programmer by David Thomas and Andrew Hunt, 1999 A practical engineering mindset book: ownership, debugging, sharpening tools, reducing duplication, and becoming the kind of developer teams can trust.

Refactoring by Martin Fowler, 1999 A strong companion for improving existing code carefully, especially when a product is already live and the rewrite instinct would be too expensive.

Working Effectively with Legacy Code by Michael Feathers, 2004 For learning how to add tests, isolate behavior, and make confident changes in code that was not originally designed for easy change.

You Don't Know JS Yet by Kyle Simpson, 2020 A deeper pass through JavaScript itself: scope, closures, objects, async behavior, and the parts of the language frontend engineers trip over most.

Effective TypeScript by Dan Vanderkam, 2019 Helpful for writing TypeScript that actually models the program well, instead of just adding annotations until the compiler goes quiet.

Let's Go by Alex Edwards, 2019 A practical Go web development book for handlers, middleware, persistence, routing, testing, and the quiet discipline of building small server-side systems.

Crafting Interpreters by Robert Nystrom, 2021 Great for compiler curiosity: lexing, parsing, ASTs, bytecode, VMs, closures, and understanding how programming languages become real tools.

Computer Systems: A Programmer's Perspective by Randal E. Bryant and David R. O'Hallaron, 2015 The kind of systems foundation that makes performance, memory, linking, processes, and low-level debugging feel less mysterious.

System Design Interview by Alex Xu, 2020 A compact way to practice product-scale architecture: caches, queues, rate limiting, feeds, search, storage, and tradeoffs under constraints.

Inspired by Marty Cagan, 2017 Good for product taste: discovery, customer problems, empowered teams, and the difference between shipping features and building something people need.

misc unsorted

  • The FPlus compiler is my language-tooling project.
  • My Intersync app is where I explore AI-assisted learning from real code changes.
  • I keep a short list of developer books I think are worth reading slowly.
  • I write practical engineering notes on my blog.
  • Some of the music I work to lives on its own page too.
  • I also keep a few movies around for story, taste, and engineering-adjacent inspiration.
  • Most of my public code and experiments are on GitHub.
  • For work history and professional context, I am also on LinkedIn.
  • There is a downloadable resume if you want the more formal version.
  • More notes and recommendations from Favour Sunday can live here as the portfolio grows.