Tern Blog

Tern's Open Beta
FeaturedTR Jordan

Tern's Open Beta

Introducing our AI agent for planning, then shipping, migrations. We built this to answer a simple question:

"So what's the plan?"

This is what you get asked when you have a genuinely good idea, but not much else. Your teammate, your boss, your CTO, whoever: they agree it'd be great to finally get off Angular, or migrate that home-built auth system, or switch from REST to GraphQL. So they expect you to have a plan.

Read more →
Apollo GraphQL's CEO on Building for AI: It's Migration Velocity, Not Code Speed
TR Jordan

Apollo GraphQL's CEO on Building for AI: It's Migration Velocity, Not Code Speed

The CEO of Apollo GraphQL on why your Mesozoic-era systems aren't going anywhere, and what that means for the companies that can reposition fast.

Read more →
How Snap Rewrote Everything in 18 Months While 200M Users Kept Snapping
TR Jordan

How Snap Rewrote Everything in 18 Months While 200M Users Kept Snapping

In late 2017, Ben Hollis was lying in bed with pneumonia, wondering if he should quit.

Read more →
How Migrating SourceGraph’s Search Engine Would Change with AI
TR Jordan

How Migrating SourceGraph’s Search Engine Would Change with AI

Rijnard van Tonder migrated the core search parser. His constraint was blunt: "I didn't want to piss off tens of thousands of engineers."

Read more →
Bad → OK → Awesome: A Field Guide to High‑Stakes Migrations
TR Jordan

Bad → OK → Awesome: A Field Guide to High‑Stakes Migrations

Twitter had six weeks before running out of tweet IDs. The schema change was easy, but that wasn't the hard part.

Read more →
The Storm Chaser Playbook
TR Jordan

The Storm Chaser Playbook

A guest user saw something they shouldn't. Slack takes channel permissions seriously. It's the core of why users trust it.

Read more →
You have to decide
FeaturedTR Jordan

You have to decide

Today's AI coding tools aren't built for engineers.

It's easy for anybody to vibe a new app. Product managers and designers can fire up one of 50 AI IDEs and have meaningful tools to prototype and experiment in codebases, large and small.

But these tools aren’t built to do engineering. Engineering means exploration, planning, and a million little choices. AI isn’t helping with that.

Yet.

Read more →
They Migrated Every Slack Message, Right Before COVID Traffic Tripled
TR Jordan

They Migrated Every Slack Message, Right Before COVID Traffic Tripled

By late 2019, Slack’s biggest customer lived entirely on a single MySQL shard nick-named “542.” Capacity models said it would start dropping writes in 12-14 months if nothing changed.

Read more →
The iOS Developer Who Picked Nomad Over Kubernetes for Yext's 2,000 Services
TR Jordan

The iOS Developer Who Picked Nomad Over Kubernetes for Yext's 2,000 Services

Tom Elliott joined Yext in 2015 as an iOS developer. Within a year, both his mobile projects were canceled.

Read more →
When IBM Killed Our Database
TR Jordan

When IBM Killed Our Database

Just 2 years into his first “real” engineering job, Andy was running the engineering team. And a RethinkDB was a ticking time bomb.

Read more →
When the Wrong Tool is the Right Choice: PagerDuty's Cassandra Queue
TR Jordan

When the Wrong Tool is the Right Choice: PagerDuty's Cassandra Queue

In 2011, PagerDuty was using MySQL as a queue. If you just winced, you understand the problem.

Read more →
Rebuilding a YC Real Estate Tech Stack from the Ground Up
TR Jordan

Rebuilding a YC Real Estate Tech Stack from the Ground Up

"This is the most atypical job I’ve ever had—and I worked at WeWork."

Read more →
'“We Should Be Able to Drain an AZ': Slack's Cellular Architecture
TR Jordan

'“We Should Be Able to Drain an AZ': Slack's Cellular Architecture

Slack didn’t go down—but it came close, twice in a single day. Every service needed to be out of that AWS AZ.

Read more →
Slack's 6am Database Club
TR Jordan

Slack's 6am Database Club

Slack didn’t plan this migration in advance. It started because IBM was breaking the system.

Read more →
Why Every Migration Feels Different (and what to do about it)
TR Jordan

Why Every Migration Feels Different (and what to do about it)

You’d think migrations would be repeatable. But even the same teams, doing the same upgrade, don't always do the same work.

Read more →
Making the Donuts: Stabilizing memcached at Slack's Scale
TR Jordan

Making the Donuts: Stabilizing memcached at Slack's Scale

Slack’s memcached mostly worked — until it didn’t. Glen Sanford turned it from brittle and unowned to one of Slack’s most stable systems.

Read more →
Ratcheting Progress: How Lyft Migration 150+ Services from Python 2 to 3
TR Jordan

Ratcheting Progress: How Lyft Migration 150+ Services from Python 2 to 3

What does it take to migrate 150 services to Python 3? At Lyft, the answer wasn’t just automation.

Read more →
What Litigation Teaches Us About Security Operations
TR Jordan

What Litigation Teaches Us About Security Operations

Mike, a cybersecurity lawyer, works with companies after the worst has happened—ransomware, exfiltration, and worse.

Read more →
Outscaling ElasticSearch at Datadog: Upgrading the Core Datastore
TR Jordan

Outscaling ElasticSearch at Datadog: Upgrading the Core Datastore

Datadog’s observability platform was expanding rapidly, and they needed a new foundation. Enter Husky, their new columnar store, and a 3-year migration.

Read more →
5 Versions Behind, 4 Databases to Merge: Upgrading Postgres with Ninad Pundalik
TR Jordan

5 Versions Behind, 4 Databases to Merge: Upgrading Postgres with Ninad Pundalik

When Postgres 11 approached end-of-life, Ninad stepped in to upgrade a site with multiple Rails apps, multiple DB instances, and no in-house infra team.

Read more →
Quitting CoffeeScript? First, Teach Everybody Typescript
TR Jordan

Quitting CoffeeScript? First, Teach Everybody Typescript

If you were writing frontend code in 2013, you probably used CoffeeScript too. Hal Anil describe's Braze's journey to React and Typescript.

Read more →
Why your CTO hates migrations
FeaturedTR Jordan

Why your CTO hates migrations

Ryan and I met at Slack. I was working on infrastructure. He was working in product on a team that eventually would be called the Slack Common Objects Team (SCOT).

All we did was migrations.

Over dozens of these migrations, we realized there were 5 things that really bothered our leadership about migrations.

Read more →
Migrate or die: overhauling the service catalog
TR Jordan

Migrate or die: overhauling the service catalog

A deep dive on Matt Ouille's service catalog migration at scale

Read more →

Subscribe to our blog

Get the latest migration stories, right in your inbox.