James A Rosen

Staff Engineer, AI Systems

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.

Thoughtworks, The future of software engineering

I find their middle-loop engineering a very natural fit:

This middle loop involves directing, evaluating and fixing the output of AI agents. It requires a different skill set than writing code. It demands the ability to decompose problems into agent-sized work packages, calibrate trust in agent output, recognize when agents are producing plausible-looking but incorrect results and maintain architectural coherence across many parallel streams of agent-generated work. The practitioners who are excelling at this new work tend to share certain characteristics:
  • They think in terms of delegation and orchestration rather than direct implementation.
  • They have strong mental models of system architecture.
  • They can rapidly assess output quality without reading every line.

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.

OpenAI Harness Engineering, Harness Engineering
"What capability is missing, and how do we make it both legible and enforceable for the agent?" Every time an agent does a root-cause analysis or stumbles building a feature, it should try to identify what wasn't legible or enforceable and raise that flag. Humans, other agents, or a cyborg hybrid can prioritize and improve the system.

Techno-Economics & Philosophy

Pushkin / What's Your Problem?, The Startup Run by AI Agents

Jacob (17:20): It seems like coding is where agents are real. Where it's doing what a person does. Not perfectly, but certainly well enough to be profoundly useful.

Evan: Yes, there are multiple reasons. But one big reason is that the output is testable. When you have a program, you can test whether it works... But if you're doing something like brainstorming, what does it mean to come up with the right idea?

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