MediumSquare
Startups

Why I Deploy on Fridays, and the Tiny Script That Lets Me Sleep

The internet says never ship on Friday. As a solo builder with a day job, Friday evening is often my only chance, so I made it safe.

152

Every few months someone posts the classic advice: never deploy on a Friday. For a team with on-call rotations and weekend plans, that makes sense. For me, a solo builder with a full-time job, Friday evening is often the only stretch of focused time I get all week. Refusing to ship then would mean shipping roughly never.

So instead of avoiding Friday deploys, I made them boring.

The real fear is not Friday

The fear behind the rule is simple: something breaks, nobody notices, and users suffer all weekend. That risk does not come from the day of the week. It comes from three things:

  1. Not knowing quickly that something broke.
  2. Not being able to undo it quickly.
  3. Shipping too much at once, so you cannot tell what broke.

Fix those, and Friday is just another day.

Photo by Haley Truong on Unsplash
Photo by Haley Truong on Unsplash

Small batches only

My rule is that a Friday deploy contains one change I can describe in a single sentence. Not a feature plus a refactor plus a dependency upgrade. If I cannot write the commit message in under ten words, it waits.

Photo by Jakub Żerdzicki on Unsplash
Photo by Jakub Żerdzicki on Unsplash

A rollback I have actually practised

Every deploy records the previous working version. Rolling back is one command. Here is the core of the script, simplified:

#!/bin/sh
set -e
PREV=$(cat .last_good_release)
echo Rolling back to $PREV
./deploy.sh $PREV
curl -fsS $APP_URL/health || echo HEALTH CHECK FAILED

The important part is not the script. It is that I have run it on purpose, on a quiet Tuesday, to confirm it works. A rollback you have never tested is just a hope.

Alerts that reach my phone

I set up three alerts, and only three, so I do not learn to ignore them:

  • Error rate above 2 percent for five minutes.
  • Health check failing twice in a row.
  • No successful payments in six hours during normal traffic.

That last one has saved me twice. Once, a payment webhook secret had rotated, and checkout looked fine but nothing was being recorded.

The thirty-minute watch

After a Friday deploy, I stay near my laptop for thirty minutes. I click through the main flows myself and watch the logs. Most problems show up in that window. If nothing looks odd after half an hour, I close the laptop and get on with my evening.

What changed

In the last six months I have shipped 22 Friday deploys. Two needed a rollback. Both were reverted in under five minutes, and neither affected more than a handful of users.

Rules like never deploy on Friday are really about trust in your safety net. Build the net, and the rule becomes optional.

If you are a solo builder and your only free time is the weekend, do not let generic advice stop you shipping. Just make undoing a mistake faster than making one.

Cover: Photo by Nick Wright on Unsplash.

152
12 people clapped
Written byJake Morrison

Growth marketer in Austin for early-stage startups. Experiments, funnels and honest numbers.

More to read