Highlights of the Week

How Claude Code Works in Large Codebases: Best Practices and Where to Start

Some maybe surprising things here about how to use Claude Code with larger codebases that I hadn’t known before.

Hooks make the setup self-improving. Most teams think of hooks as scripts that prevent Claude from doing something wrong, but their more valuable use is continuous improvement. A stop hook can reflect on what happened during a session and propose CLAUDE.md updates while the context is fresh. A start hook can load team-specific context dynamically so every developer gets the right setup for their module without manual configuration. For automated checks like linting and formatting, hooks enforce the rules deterministically and produce more consistent results than relying on Claude to remember

Initializing in subdirectories, not at the repo root. Claude works best when it’s scoped to the part of the codebase that’s actually relevant to the task. In monorepos, this can feel counterintuitive because tooling often assumes root access, but Claude automatically walks up the directory tree and loads every CLAUDE.md file it finds along the way, so root-level context is never lost.

The Question I Ask Myself at the End of Every Day

Billy Oppenhiemer

That’s the question you want to consider. Not, what does the perfect, optimal, most ideal version of this look like? But, How much progress could I make if I made just a small positive contribution each day over the course of an entire life?

In one of his most famous letters to Lucilius, Seneca gives a pretty simple prescription for the good life. “Each day,” he wrote, “acquire something that will fortify you against poverty, against death, indeed against other misfortunes, as well and after you have run over many thoughts, select one to be thoroughly digested that day.”

This Is the Most Important Skill You Can Have in Life

Billy Oppenhiemer

The purpose of the school essay—of any piece of writing at all—is not the end product on the page. It’s the person YOU are on the other side of having done it. It’s the thinking long and hard about something. It’s the slow, tedious, difficult work of figuring out what you actually work. And the equally hard work of finding the words for what you think. 

When you let AI do your writing, you don’t lose out on the essay, the article, the book, or the briefing. 

You lose out on the person you can only become by doing the writing yourself.