Recommended Reading
Artificial Intelligence
Breunig,
Building Castles in the Air, but With Surprise Physics
Using an LLM in product engineering is inherently probabilistic. We need to start measuring systems
statistically, and which statistics will change from one system to another.
Planet Money,
AI Podcast 1.0: Rise of the machines
I cite this podcast in nearly every conversation I have about how to use LLMs at work. Specifically,
I like how they show that LLMs are great at handling tasks, but not projects. The human-AI collaboration
works best when the human is already an expert and has a structured workflow that they can lead the
AI through.
Recurse Center,
Developing Our Position on AI
They acknowledge the many different perspectives on using AI in software and are able to synthesize
them into a coherent position.
Weakly,
Stop Building AI Tools Backwards
Hazel proposes a set of principles and practices for building AI tools that align with
Retrieval Practice, an evidence-based learning technique.
Techno-Economics & Philosophy
Le Code a ChangΓ©,
Le capitalisme est mort ! Vive le techno-fΓ©odalisme !
An exploration of how different economic models produce different software systems.
Career Development & Management
Fournier,
The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change
How to manage an intern, a project, a team, a department, and more.
Fowler,
The Passionate Programmer: Creating a Remarkable Career in Software Development
How to approach your programming career with intent
Architecture & Complexity
Harford, Cautionary Tales Ep 3 - LaLa Land: Galileoβs Warning
Martin, System Design Primer
Mosely & Marks,
Out of the Tar Pit
An academic paper that categorizes accidental and essential complexity and catalogs some of the dangers
of allowing systems to grow too complex.
Perrow,
Normal Accidents: Living with High-Risk Technologies
Complex systems fail. Sometimes, the failures are related to the very safety measures we add to reduce
the likelihood of failure.
Performance & Scalability
Friedman, Front-End Performance Checklist 2019
Grigorik,
High-Performance Browser Networking
A deep-dive on all the things that happen when a user makes a request for a web page and techniques
you can do to improve performance.
Winand,
Use the Index, Luke
An extremely thorough resource on how SQL indices work and how to use them effectively.
Project Management & Situational Awareness
Cowling,
Stepping Stones not Milestones
Structure projects to deliver value early and offer management opportunities to reevaluate and change
course.
Parekh,
Inside Product: Introduction to Feature Priority Using ICE
AARRR metrics and how to prioritize projects to optimize them.
Taylor,
Designing and evaluating metrics
The criteria to use to select metrics
Design, UX, & Accessibility
Barry,
Designing Web Applications
The first web design book I recommend.
Pickering, Inclusive Design Patterns
Pamental, Responsive Typography
Languages, Frameworks, & Tools
Ball,
Deliberate Git
How to use git to communicate with your teammates and your future self.
Coyier, Practical SVG
Exercism.io
Practice exercises that you can do in whatever language you want.
Grimm, Graceful Dev
Klabnik & Nichols, The βBookβ Rust Programming Language
Metz,
Practical Object-Oriented Design in Ruby
Teaches rules like βless stable things should depend on more stable thingsβ that you can use when
deciding how to factor your code.
Riedmann,
Learn git concepts, not commands
What branches, merges, cherry-picking, and rebasing do
Scrimba
Free and paid online interactive courses on JS, CSS, HTML, and more
Takenobu, Web Assembly Illustrated
Tjhoa, Rust-Learning