Iris Scholten | Depot Blog

Posts by Iris Scholten

Splitting a real test suite with Depot

Follow our API test suite from one CI job to seven with Depot Test Splitting. Historical timings balance the work, cutting our measured run from 7m39s to 1m37s.

How job fingerprints help us scale down faster

Depot Metal builds runtime estimates from job fingerprints and history. They helped cut p99 host drain time from just over three hours to about one hour.

How we load tested Depot Metal before scaling up

We built a production-shaped load test to find control-plane limits before moving more GitHub Actions traffic to Depot Metal. Each run made our scaling changes measurable.

How I delegate the work, not my judgment

Agents can investigate, plan, and implement faster than I can, but reading a final diff is not the same as understanding why the system works the way it does. I own how the system behaves in production, so I want to keep building my intuition about it.

Now available: Test results in your CI jobs

Report JUnit from your Depot CI or Depot GitHub Actions jobs to see failures in context. A single command runs your suite and uploads the report. Split suites by historical timing and they'll automatically rebalance over time.

Failure fingerprints: Comparing test failures over time

To make recurring test failures easier to reason about we needed to include historical context. Here's how we derive a stable identity for each test and a fingerprint for each failure, so you can tell a brand-new problem from the same flaky test you've seen a dozen times.

Speed up CI by running independent steps in parallel

Most CI jobs run as one long serial script even when half the work doesn't depend on the other half. You can run independent steps in parallel for faster CI. We'll compare two ways to do it: shell backgrounding and Depot CI's parallel steps.

Building Depot CI with Lambda durable functions

Depot CI's orchestrator runs on AWS Lambda durable functions. The orchestrator checkpoints state, suspends between events, and never burns compute while waiting. Here's how we designed the run-workflow-job hierarchy and the callback-driven orchestration loop that powers it.

Lambda durable functions: Real implementation notes

AWS Lambda durable functions let you write long-running processes that survive crashes and suspend compute entirely while waiting for external events. Getting them right requires understanding how replay works and the distinct failure modes of durable functions. Here's what we've learned from running durable functions for real.

How we built Depot Wrapped 2025

We built a fun Spotify Wrapped-style recap for Depot customers. Handling a year of data and making big numbers relatable was easy compared to teaching AI that "0.1 of a marathon" isn't exactly celebratory.

Scaling Depot: Solving a thundering herd problem

When upstream systems fail, retries pile up fast and your database becomes the bottleneck. Here's how we used PlanetScale's Insights to identify and fix the queries that were slowing us down during thundering herd events.

Collaborating with Claude on docs

Experiments with using Claude in Depot remote sandboxes to identify documentation gaps, generate drafts, and collaborate with your team on keeping docs up to date.