Key Takeaways

  • Krieger spent roughly his first two years at Anthropic as chief product officer before shifting to member of technical staff, saying the FOMO from watching others build "just kept increasing."
  • He had Claude port a codebase of "a couple hundred thousands of lines" from Python to TypeScript over a single weekend, returning Monday to a completed port.
  • Anthropic Labs runs two-week reviews where every project is up for "persevere or pivot" — and Krieger says projects get shut down in basically every cycle.
  • The real constraint isn't review capacity but "human ability to even fully conceptualize" a 2,000-line change — part of why Anthropic shipped Claude Code artifacts.

Mike Krieger stepped down as Anthropic’s chief product officer to go back to being an individual contributor, and in his AI Engineer talk he explained what changed when he did. The headline practices: Anthropic Labs puts every project up for a “persevere or pivot” vote every two weeks and shuts things down almost every cycle; most internal Claude usage is async delegation rather than interactive coding; and Krieger openly admits he does not read every line of the pull requests he approves.

Why a chief product officer went back to being an IC

Krieger used the models constantly as CPO — writing a strategy doc and having Claude critique it — but said “it’s not quite the same as like building in that pure way.” He spent his weekends building until he concluded: “Okay, I actually just need to shift. It’s like way too interesting a time.” He says it’s a pattern now, with “several people that were CTOs at other places” joining as ICs at Anthropic and elsewhere.

The change in how he works matters more than the title. He described moving away from breaking an idea down “much more how I would do engineering normally” toward “I’m going to describe the goal, like go off and work on it, and then we can talk about what trade-offs you surface.” He’s candid that this is uncomfortable: the model is “definitely way way smarter than me,” and sometimes he has to ask it to “explain it to me like I’m a little dumber than you are.” Our rundown of AI coding assistants covers the tools he’s describing.

“Be unreasonable” — the weekend Python-to-TypeScript port

Asked where he’d been more ambitious than made sense, Krieger described a Labs project he had written in Python (“near and dear to my heart” — all of Instagram was Python) before realizing Claude Code “had figured out a better deployment story with Bun.” So he decided to port the whole thing to TypeScript.

“If I put on my like 2010s engineering hat or even my early 2020s, that’s a dumb idea,” he said. “Who would ever port, at that point, a couple hundred thousands of lines of code.” Instead he built what he called a dynamic workflow setup and let it run across the weekend — “verify it, double-check it, then read both code, this basically churn and churn and churn” — and came back Monday to a finished port.

200K+ lines ported from Python to TypeScript over one weekend
The scale Krieger called "a dumb idea" by 2010s engineering standards.

He frames the obstacle as a product problem, not a user-skill problem: the first generation of AI products “put them too much in a box,” constraining tool access so unreasonable requests couldn’t even be attempted. His example — a built-in PDF parser failed on a document, and because the environment could run bash, Claude wrote a script that parsed it instead.

For porting real products rather than compilers, he pointed at Instagram’s Monkey Type, which captured the types actually used at runtime in production and mapped them back into the codebase — the same move he recommends now: “if you’re doing sort of conversion or cross compiling using LLMs, you can also lean on production data a lot more.” The translation is never the hard part; “the hardest part is always finding the boundary around where you can start doing it incrementally without trying to boil the whole ocean.”

Tag: delegation as the default, not the exception

Krieger was relieved that Tag is public, because it’s how Anthropic has actually been working. Internally, Claude Code handles interactive, high-bandwidth back-and-forth on a specific thing, “but most usage is actually much more delegating via tagging.”

What makes it work is that it’s multiplayer. He compared it to Midjourney on Discord: everyone sees how everyone else is using it. The example that recalibrated him was watching a colleague tag Claude and say, in effect, “don’t just fix this bug, but now you are responsible for this part of the code base and I want you to monitor this feedback channel and proactively take on tasks and then fix them,” including reacting to API changes. His reaction: “Oh, wait, I’ve totally been underutilizing this thing. I’ve just been using it as like a glorified Claude code in Slack.” The advanced version is treating it “as a teammate that holds context, has memory, and can be proactive.”

The interviewer framed Tag as writing “60 something percent” of Anthropic’s code; Krieger neither confirmed nor disputed the figure, so treat it as the host’s framing, not a company number.

The bottleneck is comprehension, not review capacity

Asked whether Anthropic is bottlenecked on code review, Krieger said yes — “especially for things that are touching some architecture pieces” — then sharpened it. “It’s actually more subtle than just being bottlenecked on review, cuz that’s, okay, we can carve out time differently. It’s like bottlenecked on human ability to even fully conceptualize what we’re doing.”

That drove a product decision. Claude Code artifacts, shipped a couple of weeks before the talk, exist partly to fix the moment where you send someone a PR and they say “I don’t know, man. This is like 2,000 lines of code. It looks like code to me.” The replacement carries the explanation, the intention, and the trade-offs made.

His personal process is unusually honest: “I wish I could say I reviewed every line of code. I definitely do not.” Instead he asks Claude the questions he would have asked and has it investigate — “Claude-powered code review, but still human-driven.” Cosmetic changes get a lighter touch: “we’ll fix forward if we need to fix forward.” That maps onto what other teams showed at the same event: Uber’s uReview pushes the same logic into a multi-agent pipeline, and the browser-agent and code-review session covers the verification side.

Inside Labs: bets, DRIs, and no reorgs

Every Labs project comes up for review on a two-week cadence, and Krieger says “we’ve shut down projects basically every single one of those cycles.” The point is to normalize it: “the more you do it, the less it’s just like, oh no, my project is shut down, I failed.”

That cadence rules out a conventional org chart — aligning it to projects would mean “re-orging every two weeks, which would be a total nightmare.” So Labs forms pods around what it calls bets, each with a lead or directly responsible individual who, notably, “doesn’t manage usually any of the other people.” Engineering managers still exist; Krieger said “the death of the engineering manager discipline has been greatly exaggerated,” and their job here is coaching and keeping people on what excites them. Structure arrives only once something has legs — he cited Claude Design, which started ad hoc, got a big second release in June, and only then got a dedicated hired team.

The unship channel

Anthropic runs a Slack channel called project unship. Krieger described the trap from Instagram: a feature with four to five percent usage looks trivial to cut, but twenty of them add up to “the classic Microsoft Word problem” where everybody uses some disjoint subset. He named one real removal — styles, low-usage and “very sort of prescriptive,” which skills superseded. The principle: “you have to be willing to take the primitives of one generation of AI and unship them, or at least supplement them or supplant them with the next one.”

His biggest current gripe is surface complexity. “We’re asking people to make like code versus co-work versus like chat distinctions,” he said, and “the average person off the street could not explain to you why those are all different.” His example of what shouldn’t exist anymore: finishing a Cowork session where you’ve mapped out exactly what you want, only to be told “can you please create a paragraph that I can paste into Claude code? That is some 2020 kind of workflow.”

What happens next

The clearest forward signal is convergence. Krieger said what holds Claude Design back is “better interaction with our other surfaces,” and that the line between a design and an app “gets blurry and blurrier over time” — people are already building fully functional games in it, which wasn’t the intent, “it’s just HTML and JavaScript.” Combined with his complaint about code-versus-Cowork-versus-chat, the direction of travel is fewer, more interoperable surfaces that can delegate to each other.

Asked why anyone should still start a company against that, he gave the Instagram answer: investors used to ask what happens when Google launches a photos product, and “Google’s going to launch a very googly photos product,” bound by its existing integrations. “Writing code was never the limiting part,” he said. “It’s really that space and user understanding.”

He closed on burnout, rare for a technical keynote: “there’s no job that is so important that you can’t be offline for a couple of days.” Against AI’s “it’s so over / we’re so back” cycle he repeats a sports framing — “you’re never as good as your best game and you’re never as bad as your worst game.”

Quick poll

Would your team adopt a two-week "persevere or pivot" review for every project?

Krieger says Anthropic Labs has shut down projects in "basically every single one of those cycles."

FAQ

What is Mike Krieger’s role at Anthropic now? He was introduced as a co-founder of Instagram and a member of technical staff at Anthropic. He spent roughly his first two years there as chief product officer before shifting to an IC role.

Does Anthropic still review code by hand? Yes, but not line by line. Krieger said he does not review every line of a pull request; he asks Claude the questions he would have asked and has it investigate. Architecture-touching changes remain the real bottleneck.

What is “persevere or pivot”? It’s Anthropic Labs’ two-week review cadence. Every project comes up for a decision to keep going or wind down, and Krieger said shutdowns happen in essentially every cycle — by design, so a cancelled project doesn’t read as personal failure.

What did Anthropic remove from the product? Krieger named styles, which had low usage and was “very prescriptive,” as something they unshipped once skills covered the same ground better. Anthropic runs a Slack channel called “project unship” to track candidates.