Skip to content

Newsletter - How to prevent AI from breaking everything #16121

@ivanagas

Description

@ivanagas

Summary

AI coding is increasing velocity. It means more things are being shipped and more people are shipping things.

But AI coding has a bad reputation. Just like how a lot of content, videos, or images are seen as "slop", AI coding is often seen as poor quality. There's been a new wave of issues that AI coding creates, people even blame it for a lot of big recent incidents.

So how do you harness the power of AI coding without the downsides? Here's what we do to prevent AI coding from breaking everything and what you might want to consider too.

Headline options

How to prevent AI from breaking everything

What (if any) keywords are we targeting?

n/a

Outline (optional)

People are still ultimately responsible.

  • Developers put their name behind the code they ship.
  • We require reviews from other people still.
  • It's our personal reputation on the line.
  • AI is not the scapegoat for us. We do blameless post-mortems, but coding with AI is not an excuse.
  • When there is a problem, we don't leave it up to an AI to solve. It's still ultimately people.
  • https://posthog.slack.com/archives/C09G8Q32R6F/p1775046650100869

A lot of tests

  • We have a lot tests, so much so, that a companies that build products for automated testing use us as a benchmark (depot)
  • Product tests, storybook tests, formatting.
  • Tests need to complete before we ship.
  • AI helps us here writing unit and regression tests, test environments, chrome MCP to test end to end.

AI reviews

  • Just like how AI can be used to ship code, it can be used to review code.
  • We use multiple tools, swiss cheese approach.
  • One stamps simple changes. Another helps fix flaky tests and improves the testing suite.
  • We also use stacked reviews which makes it easier for teammates to review. AI helps with managing the stacked madness.
  • AI should enforce standards.

Keeping changes isolated

  • Our products are isolated, so one product going down doesn't effect other ones. We have worked to isolate our infrastructure too.
  • New changes are also often isolated from existing code using feature flags which lets us roll out gradually and kill features if they are causing problems.
  • We make small changes. Incremental. Stack changes. Trunk-based development.
  • This limits blast radius.

Using the best tools

  • We keep up to date on this stuff. We give people basically unlimited budget to use AI tools.
  • Better tools make less mistakes.

Using AI before writing code

  • When used right, AI can do a lot to help make sure you ship the right code.
  • Using research and plan mode up front.
  • Better planning beats faster typing.
  • "Working with LLM tools makes it so much more feasible to discover the right code: the right architecture, the right abstraction, the right implementation. Instead of being fast, I spend more time being thorough, fully investigating a problem and shipping a thing that’s a few iterations better than what I started with" - Danilo

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions