John Nunemaker

John Nunemaker

@johnnunemaker.com

Tweets about Ruby/Rails. Building @boxoutsports.com, @fireside.fm and @flippercloud.io. Huge fan of ๐Ÿ€ and โฑ๏ธ (southbendwatch.co).

2K followers153 following840 posts

Starting to get the binge bank built up on youtube. The last episode cover art is ๐Ÿ”ฅ. "I cried in a cyber cab." ๐Ÿคฃ https://www.youtube.com/@standinginthefirepod

Prompt of the day: Can you check out my Mac and see if I have anything hanging around that shouldn't be, like processes using memory or CPU or stuff like that? Just killed so many week to month old processes hanging around eating resources.

I feel seen. This quote explains my life now... "skilled engineers needed to steer Claude away from over-engineering parts of the system in response to hypothetical concerns".

> Last week: 27 Claude Code ยท 9 Codex. 40 PRs merged. ~25k LOC. Interesting. It would seem I used claude code more than codex the past week. First time in two months at least. That opus 5.5 energy...

Prompt of the day: Look through my repos that use github actions and find steps that can be parallelized based on github's announcement post on their blog post titled "Actions steps can now be run in parallel". Sped up a couple of my app's CI times.

Switched from 1 telemetry request == 1 sqs message to buffering/compressing many into 1 sqs message. I knew I'd need to someday but made it 2 years-ish the old way. Messages decrease and message size increases. You get charged for 64k whether you use 1k or 64k so might as well batch.

Improved the daily summary email for flipper cloud. Light/dark mode support and better responsive layout. I love getting these each night and seeing what was shipped the previous day. For this one I used claude opus 5.5. After a few probing questions, it had a nice list of improvements.

Just shipped Air, a new Fireside theme. Light and dark mode, looks great on your phone, and a clean, modern, airy feel that lets your podcast do the talking. Pretty stoked about this one.

Pretty cool that cloudflare has super slurper to migrate files to R2 from S3 compatible providers. You just click some buttons and it can migrate terabytes of data.

Garrett and I started a podcast: The Friday Deploy. Ship on Friday, sleep through the night. Episode 1: how we entirely rewrote Fireside over the past 2 years, from pg 9.5 to 18, all new infra, brand new studio (for customers) and website. https://www.johnnunemaker.com/the-friday-deploy/

I need to give Claude some props. After switching away two months ago, Opus 5.5 brought me back and fixed the issues that caused me to leave. It's fast and barely touches my usage limits. That said, the Claude Mac app leaves so much to be desired compared to the Codex Mac app. It's ๐Ÿง‘โ€๐Ÿณ๐Ÿ’‹.

You can also have a malleable operating system on a Mac. You don't have to switch to Omarchy. One thing that has driven me crazy for a year is getting Mac OS to choose my Shure mic if it's plugged in automatically, even if I have Bose headphones on or AirPods in. Works great!

Box Out and Fireside were both ~100k LOC (Ruby, JS, Html) a year ago. Both are ~250k as of today. Both are around a decade old. That means 150% increase in one year compared to previous decade. LOC is more interesting than useful but its still insane to see.

fun prompt: how many lines of code did we have in this app august last year vs today? feel free to adjust the list of apps or the date. Shows you the AI boom. Fireside and Box Out are lit!

Wow! One shot claude demo. Prompt: make a dynamic 15 second motion graphics video that shows what an incredible tool flipper is. Could it be improved? Sure, but honestly its stupid good for < 100 character prompt.

Great talk by Vladimir Dementyev on jobs. Didn't watch, just went through the slides but loved it. https://speakerdeck.com/palkan/rails-world-2026-durable-orchestration-on-rails-from-continuation-to-workflow

What is the deal with everyone's bots. This is a brand new project (a few weeks ago) and they've literally crawled the whole thing and cost me > $100 in compute/memory in a few weeks. I want to allow searches but this feels like training data...

Thanks to my daily Codex/Flare app perf report I'm fixing some stuff on Fireside. Saw slowness. Kicked off a new task. Codex whipped together a 5 phase attack. Been deploying one at a time. Biggest improvement came from a couple line change of when we return 304 not modified. Avoids several queries.

Starting to really take advantage of scheduled tasks in Codex. My App Performance one is really paying off. So I added more things to it (from railway and aws). Yesterday I created an OSS maintainer task to help me not let issues/pull requests slip by. Thinking Stripe is next.

A customer asked for a better way to use Flipper Cloud with preview apps, so we built it. Create a preview environment through the API, get a token scoped to it, and delete it when the deployment is gone. https://www.flippercloud.io/docs/cloud/api#environments

Monday: Fireside DB migration + Box Out cost savings. Tuesday: Flipper preview envs/API + Box Out meeting + motion template conversion. Today: More conversion + previews. Even gave me permission to merge Fireside userlist syncing.

All done. Took about ~30 minutes as expected. To do this with no read downtime has been a summer long project. Lots of poking and running it through different AI models to get it rock solid. ๐Ÿ˜ฎโ€๐Ÿ’จ

John Nunemaker@johnnunemaker.com

Massive db migration underway. Codex driving. PG 9.5 to 18. Self-hosted to Linode managed. Opted to do more work to keep the app in read only mode during the migration to avoid any downtime for customers even though the migration should be only 10-15 minutes.

Massive db migration underway. Codex driving. PG 9.5 to 18. Self-hosted to Linode managed. Opted to do more work to keep the app in read only mode during the migration to avoid any downtime for customers even though the migration should be only 10-15 minutes.

I will say this... Codex noticed Caddy nearly ran out of memory, investigated the traffic, and found bots hitting IPs customers never use. It suggested blocking those IPs, tested the change through a live failover, applied it without downtime, documented it, and merged the PR. Pretty neat. ๐Ÿ˜Š

I had an absolute great month and a half with codex, but since the overwhelm with the astra release, even sol has occasionally went stupid on me. It feels like sol and astra both got nerfed to help capacity or something. Starting to consider trying fable 5.1...

Current status: wrote down everything on my plate. Took pictures and uploaded to codex. Brain dumped thoughts on the list and context of each company/app. Told it to look for tasks to figure out how "close" things started are to being finished. Now its helping me prioritize the next few months.

Astra is really quick and accurate. I've been doing astra light the past day or so and its great. I will say it'll still do stuff that I wouldn't. For anything beyond a hacky side project I still review code and find crazy stuff. Lol.

Codex is saving me more money. ๐Ÿค‘ Last week it found years of pending uploads we weren't clearing. Saved $2k/mo. Yesterday it found $1k+/mo in S3 transfer to imgproxy. Moving it from Railway to Fargate makes transfer free. Almost another $1k/mo saved. ๐Ÿ˜‚

I'm loving having codex run local simulations to harden (and improve) flipper. Been working on in memory reads off and on and I have a whole harness together now to run flipper gem against local flipper cloud instance and verify the resiliency under failures. Dramatically increases confidence.

Another great reason to have a read replica AI can query is you can make informed data-driven decisions. And then share with the team via github issue comment or whatever. This image is an example of analyzing image upload dimensions to optimize for rendering.

gstack's global retro is pretty neat. I had built a dev-log CLI to do this before, but I think I can retire it. The only other thing it adds is pulling in todoist stuff. Every day in the past week I touched 4-9 repos. Haha. "The biggest pattern is context switching."

You don't have to give coherent, fancy prompts. You can just gibberish the main idea and codex will figure it out. This one goes through individual requests that timed out, categorizes them and investigates fixes. PRs coming next. Flare already paying dividends!

๐Ÿคฏ Verification doesn't have to be just code review, screenshots, movies, and tests/CI. You can tell AI to configure staging like prod and replay prod traffic to reproduce failures and then fix them. Codex has been doing this on repeat the past two days hardening box out's renderer.

Today is new laptop day! Nope, I didn't get a dell xps or framework or x1 carbon. I got a macbook air 13". I wanted the lightest, smallest mac for now. Not quite ready for the linux/omarchy revolution. Plan is to leave my M1 with 64GB of RAM at home to just run Codex remotely.

Nice little pattern for background tasks that need to be rate limited a bit: start to start throttling. If you need 1/sec, don't sleep 1. Sleep for the difference 1 minus the duration of the work.