Fishstick Labs

Twenty years of infrastructure. Now I help teams get it right.

I advise early-stage teams on infrastructure, operations, and the decisions that are hard to undo. I also write about DevOps, SRE, and platform engineering.

Selected Work

Greenfield
2 mo Delivery

Launch-Ready Infrastructure

Athletic Tech SaaS Company

An early-stage team with a major launch months away and infrastructure that wasn't ready for it. Guided the architecture and helped the team stand up multi-environment dev pipelines, environment syncing, data infrastructure, observability, and automated deployments. Everything code-defined and built so the team could own it going forward.

On-time launch, infrastructure that scaled with their growth, and a team that didn't need me anymore.

Migration
0 Downtime

Acquisition Migration

Major EdTech Company

After an acquisition, the platform needed to move out of the parent company's AWS accounts and into the new owner's environment. Defined the migration strategy and led execution over three months — code-defined all existing infrastructure, redesigned components for portability, and cut over cleanly so the acquiring company could integrate on their own timeline.

Zero-downtime cutover and a foundation the new team could build on independently.

Scaling
20x Traffic Growth

Heroku to Kubernetes Migration

Early Childhood EdTech Company

A fast-growing platform hitting the ceiling on Heroku. Designed the target architecture on EKS, guided the containerization effort, and established the deployment pipelines and SRE practices — incident response, observability, operational runbooks — so the team could keep scaling without things falling over. Grew from 10k to 200k requests per minute.

20x traffic growth on infrastructure the team operates themselves.

Latest Writing

Fish Stick: A Stateless Incident Management Bot for Slack

I just released Fish Stick, a stateless incident management bot for Slack. I’ve built this bot six+ times at different jobs, so figured it was time to stop recreating it and share it with the world.

The pitch: Most incident management tools are either too simple (basic Slack workflows) or too complex (enterprise platforms with a million knobs). Fish Stick sits in the middle—more powerful than workflows, simpler than enterprise tools.

Fish Stick Demo

Key features:

  • Random channel names (incident_furious_chicken, incident_brave_penguin)
  • Timeline logging with timestamps
  • Threaded team updates to stakeholders
  • Incident commander tracking and handoffs
  • Auto-generated timeline reports from channel history
  • Private incident support
  • Test mode for game days

The interesting part: it’s completely stateless. No database. No web interface. No OAuth flow. For this use case and this niche, Slack as DB is good enough.

All incident data lives in Slack:

  • Incident metadata → channel properties and pinned messages
  • Timeline → messages in the incident channel
  • Summary → pinned message

You can restart the bot anytime without losing anything. This keeps deployment dead simple.

Built it in TypeScript with the Slack Bolt framework. Supports Socket Mode for local dev (no public URL needed) and HTTP mode for production. Takes about 5 minutes to set up if you use the app manifest.

I’ve pared down the features quite a bit from what I have in other versions of the bot to keep things simple, but will be adding back some things like webhooks over time.

It’s MIT licensed. If you run incidents in Slack and want something between “too basic” and “too much,” check it out: github.com/chrisdodds/fishstick

Thinking through an infrastructure decision? contact@fishsticklabs.com