Sign in

Keegan Donley

@keegan.codes
553 followers 529 following 325 posts

Product-focused software engineer • Principal front-end engineer at kizen.com 🚲 Cycling 🏕️ The outdoors 🏎️ Formula 1 🍷 Wine 👨🏻‍💻 Code keegan.codes 📍 Austin, Texas

PostsRepliesMedia
Reposted by Keegan Donley
Victory Lap @victorylap.fit · 18h
It was the last night of the season out at the Circuit of the Americas for bike night! Largest turnout we’ve ever seen, and a lot of fun!
A photo of many cyclists climbing turn 1 at the circuit of the Americas formula 1 track
021
Keegan Donley @keegan.codes · 29/09/2026
This was a fun one for my planned demo this morning 🙄
000
Keegan Donley @keegan.codes · 26/09/2026
Yesterday I wrote a blog post for the @victorylap.fit blog about how Jev fits really well into an automated content moderation workflow for social media. You can read it on my blog directly: keegan.codes/blog/social-... and also check it out on victorylap.fit!
keegan.codes
Social Media Moderation with Jev
How Victory Lap uses TypeSafe AI's Jev as an auto-moderator (shared from the Victory Lap blog)
020
Keegan Donley @keegan.codes · 23/09/2026
Proton Pass seems pretty great. I don’t have much experience yet but it looks promising so far.
010
Keegan Donley @keegan.codes · 23/09/2026
Amazing vibes at Circuit of the Americas last night for bike night! @victorylap.fit
Sunbeams in the distance above a formula 1 race track with a map overlay and the text 22.0 mph and Victory Lap
041
Keegan Donley @keegan.codes · 19/09/2026
Here's a little sneak preview of something I've been working on during nights and weekends! Follow @victorylap.fit to stay updated about the project!
010
Keegan Donley @keegan.codes · 14/09/2026
GPT-6 Astra computer usage with the iPhone simulator is fantastic for mobile development. The ability to run in a feedback loop driving the simulator and working on changes has been an incredibly valuable tool. Made a lot of progress this weekend on some exciting new work!
010
Keegan Donley @keegan.codes · 11/09/2026
Yeah it's a new one for me. Something must have gotten wonky in the context somewhere is my theory. The agent acted like it was following instructions by doing that, though I couldn't figure out from where. A fresh coordinator session and it hasn't come back yet.
100
Keegan Donley @keegan.codes · 10/09/2026
What are we doing here Google? Lowercase titles? Spelling out years? A little too sloppy for me
A push notification that reads Apple unveiled the new nineteen ninety nine dollar foldable iPhone Duo
000
Keegan Donley @keegan.codes · 09/09/2026
iPhone Duo looks expensive 💰💰💰
000
Keegan Donley @keegan.codes · 09/09/2026
Looking forward to today’s Apple event more than many recent ones. Hoping I’m not disappointed!
020
Keegan Donley @keegan.codes · 09/09/2026
Opus keeps doing this to me tonight - running no-op tool calls in a loop while waiting for sub-agents. Makes no sense and I've never seen it before now.
• I’ll wait for the critic’s report.
  Ran 1 shell command

• I’ll wait for the critic’s report.
  Ran 1 shell command

• I’ll wait for the critic’s report.
  Ran 1 shell command

• I’ll wait for the critic’s report.
  Ran 1 shell command

• I’ll wait for the critic’s report.
  Ran 1 shell command

• I’ll wait for the critic’s report.
  Ran 1 shell command

• I’ll wait for the critic’s report.
  Ran 1 shell command

You have run cd /Users/keegan/Developer/hindsight && echo idle 53 times in two minutes. That is busy-waiting and it is burning opus tool rounds while your critic subagents work. Do this now: make no further tool calls, write a two-line status (what is built, what you are waiting on), and END YOUR TURN. Background subagents notify you when they finish and you are re-invoked automatically with their results; nothing is lost by returning. Resume the critic-fix loop and the final report only when a task notification arrives.

• Understood — that was wasteful, and I'm stopping.

  Status: All six units are integrated at /Users/keegan/Developer/hindsight. The app builds clean (zero warnings) and 105 tests pass on the dedicated Hindsight-Sim — 58 in HindsightKitTests, 47 in HindsightTests. Findings are recorded in spec #96‘s notes.

  Waiting on: the smart-critic review of the integrated tree. I’ll resume the fix loop and send the final report when its notification arrives.

% Waiting for 1 background agent to finish

}
121
Keegan Donley @keegan.codes · 08/09/2026
I have a little arcade game that I ask different models to build as a fun exercise. Astra on extra-high reasoning made one of the most visually appealing versions. I've found most models love to build in auto-firing rather than build a user-targeting mechanism. battle.keegan.codes/gpt-6-astra-...
battle.keegan.codes
Agent Battle — Coding agents build the same game
A head-to-head playground where coding agents get the same prompt and each build a standalone arcade game. Same brief, different models — play and compare.
020
Keegan Donley @keegan.codes · 08/09/2026
Stayed away from my computer for most of the long weekend. I guess I have some catching up to do this week!
000
Keegan Donley @keegan.codes · 04/09/2026
Yeah I believe it in theory, but in practice I find I can’t get Claude to stick to useful comments that aren’t brittle or describe a specific state that will drift in time, so I prefer it write none and leave that part to me. A lot of my review fatigue was reading and deciding which ones to strip.
020
Keegan Donley @keegan.codes · 04/09/2026
Also, even though human code reviews are required for compliance and such, I encourage people to do an initial review of their own work with Claude to catch any low-hanging fruit before a person burns real time looking at it.
120
Keegan Donley @keegan.codes · 04/09/2026
The worst of it is when I get something to review that it’s pretty clear the developer themselves hasn’t reviewed first. If folks go through their own work and clean it up, remove the 20-line docstrings of Claude-speak, etc it helps a lot.
220
Keegan Donley @keegan.codes · 03/09/2026
Definitely something we discuss a lot internally. AI gets to do the fun part (writing the code) while we're stuck with the chore (reviewing it). Doesn't feel good when most of the day is reading and commenting on generated code.
161
Keegan Donley @keegan.codes · 03/09/2026
Definitely feel this. So often I get 0 engagement here on Bluesky and then I meet people IRL who have been reading what I post and comment about it in-person.
110
Keegan Donley @keegan.codes · 03/09/2026
I built a tiny little service called Service Lookout - it's an aggregator of all the platform statuses I care about, and it makes them available over MCP so my agent can quickly discover active incidents. Works pretty well! servicelookout.com
A Claude Code terminal window shows a status update about an issue affecting OpenAI's Codex services, including Codex API, CLI, and others. It states "Elevated errors across ChatGPT and Codex" are confirmed as an active incident, reporting degraded performance on several platforms.
230
Keegan Donley @keegan.codes · 03/09/2026
I bought a Pixel 11 specifically so I could tune the app really well for Android. It's a shared backend for the relay, but Swift for iOS and Kotlin for Android, since there are such deep native integrations. Everything has been shaping up really nicely!
000
Keegan Donley @keegan.codes · 03/09/2026
I launched an app for iOS (with Android coming soon): Scalene for Vercel! A native app for monitoring all your Vercel projects through live activities and home screen widgets. On sale for launch week! keegan.codes/blog/scalene...
keegan.codes
Scalene for Vercel Launches Today!
My new app for iOS and Mac launched today! It gives you live activities and widgets for your Vercel projects, including analytics, performance insights, and deployment status!
140
Keegan Donley @keegan.codes · 01/09/2026
Fable 5.1 seems to be actually generating readable text so far. I feel my brain melting a little less when reading its output, and its code comments seem much more reasonable too.
000
Keegan Donley @keegan.codes · 01/09/2026
hypothesis.sh now has a placeholder images tool available! You can use procedurally-generated images as placeholders in svg, png, or webp formats. Free to use as always with the rest of the toolset! hypothesis.sh/photo?w=600&...
A blue and green gradient placeholderA blue and black noise placeholderA blue green and red shape placeholderA blue and green placeholder with borders and the dimensions 600x400 printed inside
000
Keegan Donley @keegan.codes · 30/08/2026
Spent my Sunday getting scalene.app ready for the iOS app store. Hoping for a smooth approval! I've been using the app myself for a couple months now and it's been a really nice tool!
scalene.app
Scalene — Vercel, in your pocket.
A native Vercel client for iPhone, iPad, Mac, Apple Watch, and Android. Check deployments, read build logs, track usage, and get a push when a deploy finishes or fails.
020
Keegan Donley @keegan.codes · 27/08/2026
My Android development workflow with Claude is so good, I've started to prefer Android development over iOS. Wireless debugging that Claude has access to is such a nice experience.
000
Keegan Donley @keegan.codes · 26/08/2026
I got a Pixel 11 as a second phone since I'm working on porting some of my apps over to Android. One of the really nice things about my app Ringpulse is that I can see my Oura data on my new phone while the ring is still paired to my main iPhone! ringpulse.app
A health dashboard for Oura showing a readiness score, sleep score, and activity score, along with other vitals
000
Keegan Donley @keegan.codes · 20/08/2026
My website keegan.codes is a dynamically rendered Next.js app. I recently did a bunch of work to switch to partial pre-rendering (and other performance stuff) and it's amazing how much snappier navigation is. Of course during the refactor I broke page speed monitoring so I can't quantify it yet 😢
keegan.codes
Keegan Donley
Developer, maker, and lifelong learner
000
Keegan Donley @keegan.codes · 19/08/2026
This isn’t how I post right?
just spent 4 hours refactoring a typescript web app just to realize the bug was a missing comma in a css file. gonna go stare at my bicycle and rethink my life choices.
Want me to tweak the vibe with a dash of Formula 1 hot takes, a Go vs. TypeScript debate, or an Austin cycling route reference?
020
Keegan Donley @keegan.codes · 18/08/2026
Looks like Claude is pushing back on the watermarking by refusing to work today
020
Keegan Donley @keegan.codes · 18/08/2026
Are we finally done saying AI is going to kill software development? In this post I talked a bit about my time at @renderatl.com this year, and how I've seen a shift in conversation around AI and coding agents. keegan.codes/blog/are-we-...
keegan.codes
Are We Finally Done Saying AI Will Kill Software Development?
It felt like everyone was saying AI would kill software development. At Render Atlanta, the discourse seems to be changing.
041
Keegan Donley @keegan.codes · 17/08/2026
Now AppStore Connect appears to be broken! What a terrible day for getting anything done
010
Keegan Donley @keegan.codes · 17/08/2026
Rough day
A status dashboard showing service health: Cloudflare, GitHub, and Vercel are marked as Degraded, while Kizen is Operational.
031
Keegan Donley @keegan.codes · 17/08/2026
At this point I'm just embarrassed for Github, but not surprised anymore. Another low productivity morning for me.
020
Keegan Donley @keegan.codes · 17/08/2026
Finished the last two big climbs on Zwift’s Tour Fever challenge over the weekend. Glad I finished when I did, because I woke up sick this morning. Probably from talking to too many people at Render last week.
Progress Report for Level 65 user. Career Progress: Completed 'This Ride' for +1,356 XP, contributing towards a total of 7,877 XP out of 11,000 XP goal. Zwift Concept Z1, Stage 2/5 with 'This Ride' adding 28 miles to their total of 228 out of 994 miles. Achievements: Earned 30 out of 36 possible awards. Route Badges: Achieved 180 out of 241 badges. Fitness Trends: Indicating 'Weekly Time Goal' progress with 'This Ride' adding 2 minutes and 31 seconds to progress, current total stands at 4:18 out of 5:50. 
1-Year Power Bests: 5-second effort at 841W, 1-minute at 434W, 5-minute at 294W, and 20-minute at 254W. Fitness Score: 46.8, with a 4.3 point increase from this ride.
Progress Report in a workout app showing Career Progress with XP earned and a progress bar indicating a level. Achievements highlight 30 out of 36 trophies and Route Badges showing 180 out of 241 completed. Weekly Fitness Goals are partially achieved, with segments of a "Time Goal" progress bar colored in blue, grey, green, orange, and red. Personal Record (PR) stats for 5-second, 1-minute, 5-minute, and 20-minute intervals are displayed. Training Score increased by 3.6 points in the latest ride. Below, a button marked "Continue" in orange invites user interaction. Visual design includes a forest backdrop.
020
Keegan Donley @keegan.codes · 14/08/2026
Stayed as long as I could! The last night is always a fun time. Now it’s airport vibes for me (not too bad though)
120
Keegan Donley @keegan.codes · 14/08/2026
Render is done, heading back to Austin! What a fun couple of days, one of my favorites so far! @renderatl.com
A whiskey sour in front of a large tree in the Atlanta centurion lounge
020
Keegan Donley @keegan.codes · 13/08/2026
Render day 2!
A view of Atlanta from the hotel
010
Keegan Donley @keegan.codes · 12/08/2026
Today’s presentation by @sarahedo.bsky.social at @renderatl.com in addition to being excellent and educational, also reminded me I need to step up my slideshow game for an upcoming talk!
110
Keegan Donley @keegan.codes · 12/08/2026
Been looking forward to hearing from @nodeland.dev and @renderatl.com today!
000
Keegan Donley @keegan.codes · 11/08/2026
Starting Render off right with a fantastic IPA - I always check out a new brewery when I’m in town
020
Keegan Donley @keegan.codes · 11/08/2026
Heading to Atlanta! Render time!
010
Keegan Donley @keegan.codes · 10/08/2026
Year 5 at @renderatl.com for me starts tomorrow! Who will I be seeing there?
010
Keegan Donley @keegan.codes · 10/08/2026
Love a good hackathon! Definitely check this out if you're at @renderatl.com this week!
021
Keegan Donley @keegan.codes · 10/08/2026
I'll be there! It'll be my fifth year, been looking forward to it for a while!
010
Keegan Donley @keegan.codes · 10/08/2026
Can't wait for Render this year! Heading out tomorrow morning for a whirlwind couple of days!
000
Keegan Donley @keegan.codes · 10/08/2026
Half the fun of Render is the food! I look forward to my visit to Atlanta every year.
010
Keegan Donley @keegan.codes · 10/08/2026
Looking forward to it!
010
Keegan Donley @keegan.codes · 10/08/2026
Wanted to build a little side project and I had the perfect domain already registered just sitting unused. Proof I don’t have a problem, right?
010
Keegan Donley @keegan.codes · 08/08/2026
Is Outlanders your style of gameplay? It’s my favorite portrait mode game I’ve found. apps.apple.com/us/app/outla...
apps.apple.com
Outlanders App - App Store
Download Outlanders by Pomelo Games on the App Store. See screenshots, ratings and reviews, user tips, and more apps like Outlanders.
010