James A Rosen

Staff Engineer

James A Rosen, pixelated, wearing a bow tie

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.

Frontend Masters

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