01 · write

Somebody is going to read this closely.

Hey engineers is built for the way engineers actually read: slowly, with a highlighter, arguing in the margins. Here is the whole loop, running.

saved just now autosave on

Why our p99 got worse after we added a cache

We put Redis in front of the hot query and p50 dropped 40 ms. Then p99 climbed. The cache was fine — the problem was that every miss now paid for two round trips instead of one, and the misses arrived together.
ruby copy
Rails.cache.fetch(key, expires_in: 5.minutes + rand(60).seconds) do
  Story.published.trending.limit(10).to_a
end

Not a video. Type, slash for a code block, it saves itself.

02 publish

One screen between a draft and a story.

Add the tags that carry it into the right feeds, set a description for the link preview, and publish. Reading time is counted for you. Archive it later and the URL keeps working.

state: draft

published

Why our p99 got worse after we added a cache

#AI #performance 4 min read in 2 feeds
03 read

Readers don't just read it. They mark it up.

Select any passage to highlight it, keep a note on it, or file it in a collection you can come back to. Mark a sentence as a question and the thread lives on that paragraph — not at the bottom of the page, a thousand words away from what it's about.

Why our p99 got worse after we added a cache

We put Redis in front of the hot query and p50 dropped 40 ms. Then p99 climbed. The cache was fine — the problem was that every miss now paid for two round trips instead of one, and the misses arrived together.

Adding jitter to the expiry spread the refetches out. Same cache, same hit rate, p99 back under budget.

And they read it the way they like it.

Focus mode clears everything that isn't the words and widens the measure. Light or dark is remembered per person, not per visit. Highlights stay legible in both.

now showing: reading

hey engineers focus · theme

Why our p99 got worse after we added a cache

We put Redis in front of the hot query and p50 dropped 40 ms. Then p99 climbed. The cache was fine — the problem was that every miss now paid for two round trips.

highlight note ask
04 discuss

Every tag is also a room.

Join a community and you get its discussions: questions, war stories, and the occasional argument, scored by votes rather than recency. Replies are threaded, mentions notify, and a post that climbs tells the room about it.

rank in #AI: 04
24

#AI · discussion

Does anyone actually run their cache without jitter on purpose?

Genuine question. Every incident review I've read ends with “add jitter”, so I want to hear the case for not doing it.

replied just now

Fixed TTLs are fine when the key space is huge — misses never line up. It's the small hot sets that bite.

replied just now

We kept them fixed for cache-warming predictability, then regretted it at 3am.

06 come back

A streak measured in weeks, not days.

One post a week keeps it alive. Miss a week and it resets — so the nudge arrives on Saturday, while there's still time. Insights tell you what got read and where the readers came from, without turning writing into a numbers game.

writing streak · by week

week 12

6 weeks running

one week missed, reset, started again

creator insights · reads

last 30 days

1,284 reads

96 new followers

And the reason you open the tab.

Someone highlighted a line. Someone asked about paragraph four. A community you follow has a post climbing. Notifications are grouped by what happened, not by when.

0 notifications
question

Asked about the paragraph on round trips in Why our p99 got worse after we added a cache.

highlight

Saved “every miss now paid for two round trips” to a collection.

follower

Started following you after reading two of your posts.

trending

Your discussion in #AI is climbing.

streak

Six weeks running. Publish by Sunday to keep it.

your turn

Start with one paragraph.

The draft saves itself. Publish it when it's ready, or leave it in your profile for a month.