Brandon Bloom @brandonbloom.name · 08/02/2026Codex 5.x models are “New Coke”, because the mainline 5.2 models lose against Opus in the Pepsi Challenge. I hope OAI keeps producing Coke Classic & I also wish Anthropic success with their eventual Pepsi Next. 000
Brandon Bloom @brandonbloom.name · 14/12/2025I can now get the joy of a 72 hour marathon college weekend coding session... in two hours... while calmly sipping my coffee. 010
Brandon Bloom @brandonbloom.name · 14/12/2025I've written a lot of hand-crafted, beautiful code in my time. But now, I'm basically all-in on AI coding and spending my time and energy on specs and guardrails. With the latest batch of models, this is genuinely viable for substantial programs if you invest in documentation. 110
Brandon Bloom @brandonbloom.name · 30/11/2025Yeah, same, but gemini views `git restore` as safe when it has read/write permission to the working directory. I tried to ban it from using `git restore` and `git reset`, and that worked, but then a moment later it used its `edit` command to clear out the file! :smdh: 100
Brandon Bloom @brandonbloom.name · 30/11/2025To be fair to the Gemini Pro model, it one shotted the exact same prompt in Antigravity. It seems to just be the gemini-cli that is trigger happy with git restore. 100
Brandon Bloom @brandonbloom.name · 30/11/2025Claude: "You're absolutely right!" Codex: "Great idea!" Gemini: "I messed up. Overwrote the file instead of appending. Restoring from git" 120
Brandon Bloom @brandonbloom.name · 31/10/2025Everybody is talking about "AI slop" code as if all code in the workplace wasn't already "legacy slop". 100
Brandon Bloom @brandonbloom.name · 29/10/2025If Apple makes a humanoid home robot someday, I hope they call it the iPed. The pun is just too good. 020
Brandon Bloom @brandonbloom.name · 28/10/2025Sounds like Amazon may be divesting from games in this round of layoffs. If you’re a talented engineering leader and are interested in Apple re-investing in games: DM me! 001
Brandon Bloom @brandonbloom.name · 24/10/2025Seriously, weeks of tweaking and manual reading skipped with a 90 minute session & now I've got all new editor and shell configurations. So nice. 000
Brandon Bloom @brandonbloom.name · 24/10/2025I generally do very little customization of my development environment & what little I did do was done over a decade ago. ChatGPT helped me modernize my setup, customize a bunch of things, and optimize startup time. Didn't have to do a single web search. Would have given up on step 2 any other way. 110
Brandon Bloom @brandonbloom.name · 08/08/2025And data formats / protocols are literally the only things that matter. Everything in between will become disposable. 021
Brandon Bloom @brandonbloom.name · 08/08/2025For years, I’ve been saying “all systems are distributed systems” because the user is part of the system. That’s even more true now with agents: it’s important everything be printable/readable. 100
Brandon Bloom @brandonbloom.name · 06/08/2025I’m slightly worried my vim skills will atrophy since I don’t think I’m ever going to need to record a crazy macro ever again :) But my spec writing skills are already dramatically improved & I’m developing a new “context management” skill. 110
Brandon Bloom @brandonbloom.name · 05/08/20251. I too was skeptical of LLMs for coding until < 1 year ago 2. Current tools/models are not a panacea for anything 3. They are wildly useful tools I now use every day 4. This will induce demand for real engineers 5. Like any tool, you must invest in learning it 6. Ignore it and you will fall behind 100
Brandon Bloom @brandonbloom.name · 10/07/2025I've actually got two roles open! Here's the other one, which might be especially relevant to former Microsofties with Windows/C# experience: jobs.apple.com/en-us/detail...jobs.apple.comSenior Gaming Platform Engineer - Jobs - Careers at AppleApply for a Senior Gaming Platform Engineer job at Apple. Read about the role and find out if it’s right for you. 021
Brandon Bloom @brandonbloom.name · 03/07/2025Hello Microsoft/Xbox friends, if you got laid off: Sorry to hear about that! Please reach out via DM if you're interested in working on Game Services and the new Games app at Apple here in Seattle: jobs.apple.com/en-us/detail...jobs.apple.comApple Games Framework Engineer - Jobs - Careers at AppleApply for a Apple Games Framework Engineer job at Apple. Read about the role and find out if it’s right for you. 031
Brandon Bloom @brandonbloom.name · 03/05/2025If you were wondering why it seems like smoke & carbon monoxide detectors always false alarm at 3am, that's because _they do_! Ambient temperature drops lead to obnoxious battery warnings at the worst possible time. Grumble grumble. 030
Brandon Bloom @brandonbloom.name · 08/04/2025“Consistency” is the best you can aim for if you haven’t yet discovered an appropriate Abstraction. 000
Brandon Bloom @brandonbloom.name · 07/04/2025Hiring for my team at Apple in Seattle. Come work on some fun stuff :) jobs.apple.com/en-us/detail...jobs.apple.comGame Services Framework Engineer - Jobs - Careers at AppleApply for a Game Services Framework Engineer job at Apple. Read about the role and find out if it’s right for you. 021
Brandon Bloom @brandonbloom.name · 06/04/2025Google Search can no longer find posts on their own BlogSpot service that I know exist and contain unique words coined by that post. Literally zero results. Exact query on every other search engine I tried produced exactly the page I expected... 000
Brandon Bloom @brandonbloom.name · 27/03/2025Letting devs write programs that do ::waves:hands:wildly:: whatever they want, is a mistake. Basically no one can be trusted to write arbitrary code without destabilizing my experience. 000
Brandon Bloom @brandonbloom.name · 25/03/2025One of my directs had to request access to view his own IT request, so that he could forward it to me, so I could request access to view it, so that I could open another request to escalate it... Am I about to enter an infinite loop? 000
Brandon Bloom @brandonbloom.name · 24/03/2025Wikipedia is one of the crowning achievements of humanity... and we all just kinda take it for granted now. 050
Brandon Bloom @brandonbloom.name · 21/03/2025I'm in SF at GDC for one more day. If you'd like to meet up, DM me. (I'm not sure bsky has the critical mass for me yet for this to work...) 000
Brandon Bloom @brandonbloom.name · 14/03/2025Anyway, I'm _stoked_ for the tsc written in Go. It's a prayer answered. 020
Brandon Bloom @brandonbloom.name · 14/03/2025Like of course the pragmatic language designers are going to ultimately choose the language designed by other pragmatists. They explicitly and reasonably rejected the complexity of C++ style languages for over 4 decades. Why in the world would they choose Rust now? 110
Brandon Bloom @brandonbloom.name · 14/03/2025TypeScript team choosing Go over Rust is hilarious. Like here's some TypeScript people, who used to be C# people, who used to be Turbo Pascal / Delphi people, and they are like, "Yeah, this Go thing is pretty good." Meanwhile, the type-obsessed folks are like "BUT THE BILLION DOLLAR MISTAKE!" 151
Brandon Bloom @brandonbloom.name · 09/03/2025"Hide Distracting Elements" is probably my favorite new browser feature in a decade. 010
Brandon Bloom @brandonbloom.name · 25/02/2025Above ground power lines in any major metropolitan area are kinda inexcusable at this point. 120
Brandon Bloom @brandonbloom.name · 21/02/2025The only allowable control plane API should be “set desired configuration to $spec” Everything else is data plane for some other system you may or may not even have or want access to. 010
Brandon Bloom @brandonbloom.name · 21/02/2025I’ve always found the “control plane” and “data plane” API split to be a helpful framing, but struggle with the duality in the same way as “code is data, data is code” infects my thinking. However, I’m now convinced: Control Plane APIs should not exist… 110
Brandon Bloom @brandonbloom.name · 19/02/2025I think it’s safe to say that “Semantic Import Versioning” and “Minimum Version Selection” have proven to have dramatically better ergonomics and ecosystem outcomes than any other approach out there… 000
Brandon Bloom @brandonbloom.name · 13/02/2025Said it before, will say it again: I'll take an ID over an object any day of the week. 000
Brandon Bloom @brandonbloom.name · 13/02/2025Noted. Deref is defunct, so let me move it to my personal Github and then maybe I can set up GoReleaser or something. Will get around to it sooner or later. 010
Brandon Bloom @brandonbloom.name · 12/02/2025Snapshot tests – with proper tooling – are easy to write and maintain. Yes, they can be brittle, but they are also a good way to ferret out non-determinism and unintended side effects. A while ago, I created the CLI snapshot tool I've always wanted & you should use it :) github.com/deref/transc... 110
Brandon Bloom @brandonbloom.name · 10/02/2025Found another excuse to use cuelang.org and it's really, really good and getting better.cuelang.orgCUEConfigure Unify Execute Validate, define, and use dynamic and text‑based data Learn more Get started with CUE CUE makes it easy to validate data, write schemas, and ensure configurations align with po... 020
Brandon Bloom @brandonbloom.name · 20/01/2025Another example: I've got a bunch of files in a wiki named "spec", but then you wind up with two browser tabs both labeled "spec". Which one is which? Browser should note the ambiguity, then use context from page to re-contextualize as "Foo Feature Spec" and "Blah Blah System Spec". 000
Brandon Bloom @brandonbloom.name · 20/01/2025Big UX opportunity for LLMs: Re-contextualize user-provided strings. Example: I should be able to write a lazy commit message like "fix index out of bounds" and then have log report that as is if given a path, but rewrite it to "fix index out of bounds in parser" at the top level. 100
Brandon Bloom @brandonbloom.name · 20/01/2025The killer use case for `copilot: fix` is to catch bugs where my logic is absolutely correct, but I just used the wrong damn variable of the same type and no amount of staring at it overcomes my dyslexia. 010
Brandon Bloom @brandonbloom.name · 17/01/2025Is it just me, or is it just plain silly that we all just live with the fact that our terminals interpret control sequences by default without any negotiation or default escaping policy? Like whoops, I accidentally cat out a binary file! I guess RANDOM STUFF IS GOING TO HAPPEN. 000
Brandon Bloom @brandonbloom.name · 17/01/2025I'm kinda shocked at how awkward and primitive the workflow is for most folks developing against LLMs APIs. I'm realizing that it seems exactly parallel to the average dev's basic interactive shells vs a lisper's deep REPL usage with live code loading capabilities. 000
Brandon Bloom @brandonbloom.name · 12/01/2025Kim operates Hudson’s account because he can’t type. But we don’t hold it against him because he’s so cute. 010
Brandon Bloom @brandonbloom.name · 29/12/2024My only real complaint is that the gameplay sound dialog is extremely repetitive. Mercifully you can turn the “move command” sounds off, but I’d turn most of them off if I could. 000
Brandon Bloom @brandonbloom.name · 29/12/2024Not having to micromanage individual marines is so nice & the slow-mo makes the game feel so much more fluid and alive as compared to turn-based. 100
Brandon Bloom @brandonbloom.name · 29/12/2024Despite their many flaws, I love the Xcom game series. But “Dark Descent” is the best Xcom-like I’ve ever played & it’s not just because I also love the Alien universe. 100
Brandon Bloom @brandonbloom.name · 27/12/2024Of course, we can't call this "reverse DNS", since that'll just be confusing. I'm open to suggestions for referring to the Sensible Naming Direction. 000
Brandon Bloom @brandonbloom.name · 27/12/2024Can we all collectively agree that subdomain.domain.tld is the wrong order and just agree to "reverse" dns? Without remotely considering any of the certain negative consequences, I propose `w:` scheme for to replace https: with corrected DNS ordering. We can drop the // silliness while we're at it 120
Brandon Bloom @brandonbloom.name · 20/12/2024Me: blah blah blah I'm confused Claude: "[...]. Those page breaks in RFC format can really throw you off when they split up grammar definitions. It's a common source of confusion when reading RFCs - the page headers/footers splitting up what should be a single continuous grammar rule." O_o 020
Brandon Bloom @brandonbloom.name · 15/12/2024This ~trivial TypeScript package.js file has nine (9) GitHub issues URLs in comments... 010