Sign in

Michael Bleigh

@mbleigh.dev
524 followers 127 following 477 posts

Building the servers for serverless at Firebase. Web platform aficionado.

PostsRepliesMedia
Michael Bleigh @mbleigh.dev · 28/09/2026
Unpopular opinion: plan mode is still good and correct. Now that models are more powerful and do longer horizon work it's more important to be aligned up front. A dedicated plan artifact is easier to read and review than inline chat content.
030
Michael Bleigh @mbleigh.dev · 27/09/2026
I would estimate a high percentage of all software (80%+) would be totally fine with only automated reviews. Because 80%+ of software written is relatively low risk or changes are easily reversible. AI can free us to focus on the changes that actually do need expert attention.
120
Michael Bleigh @mbleigh.dev · 22/09/2026
It used to be that incomplete software was simply missing many things that needed building. Now incomplete software has all the pieces, but the pieces are bad (i.e. slop). Finishing a project is becomes more about removing bad ideas and polishing good ones. This isn't good or bad, just different.
020
Michael Bleigh @mbleigh.dev · 20/09/2026
I'm seeing SO MUCH Jev in my feed. My theory is this: most people don't want to train models, they want to build things. So just like how LLMs broke through to the mainstream because they didn't need to be trained to be useful, such is true for Jev and classification tasks.
010
Michael Bleigh @mbleigh.dev · 20/09/2026
When AI builds an interface.
0171
Michael Bleigh @mbleigh.dev · 19/09/2026
The conclusion I'm reaching is that the new goal of developer tools is to build something that compounds agent capabilities. It needs to provide infra, tools, and guardrails to radically accelerate some problem domain when tackled by an agent.
031
Michael Bleigh @mbleigh.dev · 19/09/2026
It's been an interesting change of perspective to be thinking about developer tools in a world where I don't expect developers to hand-write a single line of code.
150
Michael Bleigh @mbleigh.dev · 11/09/2026
It's amazing how frequently "AI did this really stupid thing" turns out to be "I gave AI a poorly-specified prompt and it made different assumptions than I expected". Current models are (usually, not always) good at following instructions if you give them good ones to follow.
011
Michael Bleigh @mbleigh.dev · 09/09/2026
Hot take: trying to be more careful about merging AI code is the wrong long-term approach. The better approach is to eliminate one-way doors and make most code more disposable. Sloppy code can be polished/replaced so long as you keep reins on API surface and storage schema.
010
Michael Bleigh @mbleigh.dev · 05/09/2026
Don't be fooled by the red queen nature of the frontier - if you look at it in terms of cost per fixed unit of intelligence we have super cheap models today that outperform the biggest frontier models of a year ago. Frontier will keep moving but current capability at 10% cost is coming too.
100
Michael Bleigh @mbleigh.dev · 05/09/2026
That's a silly comparison because gold is a store of value with little intrinsic utility whose worth is defined by its rarity. Tokens have the capability to get both cheaper and more-useful-per-token over time. And they will. And demand will continue to skyrocket.
100
Michael Bleigh @mbleigh.dev · 05/09/2026
I genuinely think the demand for tokens is effectively infinite and is bounded only by cost constraints. We will build legions of automatons that are experimenting, tweaking, optimizing, reviewing, condensing, and making sense of the universe of information 24x7x365.
110
Michael Bleigh @mbleigh.dev · 04/09/2026
AI code is like water: it will slosh around to fill whatever container it's poured into. If you don't provide any constraints you're going to end up with a big mess on the floor. The new job of software engineering is to specify verification+guardrails that hold the water.
020
Michael Bleigh @mbleigh.dev · 03/09/2026
Use AI to help you research and even draft your design docs, but your goal is not an exhaustive survey of the subject. Your goal is to distill a complex subject into its essential elements. AI can't do that well yet, so you have to.
000
Michael Bleigh @mbleigh.dev · 03/09/2026
If I come across a crisp, five-page design doc that has two major flaws in its underlying assumptions, I can identify them in a 10 minute read and we can have the needed discussion. If I have to review a 35-page AI-generated treatise, I'm going to miss important details.
100
Michael Bleigh @mbleigh.dev · 03/09/2026
An unintuitive thing about design docs: a doc that is clearly written but wrong on the substance is better than a doc that is hard to read but flawless on the substance. Design docs are communication tools to align humans. You can win at design but fail at design docs.
111
Michael Bleigh @mbleigh.dev · 26/08/2026
What we need as a companion to WebMCP is WebACP that lets me bring an agent of my choosing into the browser. I don't need my agent to build a browser and I don't need my browser to build an agent. I need my agent in my browser.
010
Michael Bleigh @mbleigh.dev · 20/08/2026
The process ends up being: DESIGN: Invariants -> Design w/ Milestones -> Adverserial Design Review IMPLEMENTATION (for each milestone): Implement -> Adverserial Code Review Loop -> Adverserial Verification Loop
000
Michael Bleigh @mbleigh.dev · 20/08/2026
You do have to be careful -- you can't put anything in the invariants that you don't actually mean is invariant, or you'll wake up to twisted code contorted around a false assumption.
100
Michael Bleigh @mbleigh.dev · 20/08/2026
I can have the design pressure-tested against the invariants and then I can also have the implementation pressure-tested against same.
100
Michael Bleigh @mbleigh.dev · 20/08/2026
Then the secondary tab is a fully LLM-owned detailed design based on the invariants + codebase investigation. If I find something wrong in the design, I can update the invariants and redo the design.
100
Michael Bleigh @mbleigh.dev · 20/08/2026
I'm experimenting with design docs whose primary tab is just "here's the list of agreed upon invariants" that I might use an LLM to assist me in writing but I carefully review and edit every line to make sure I agree.
100
Michael Bleigh @mbleigh.dev · 20/08/2026
But maintaining a list of invariants makes it easy to put a verification loop at the end of an implementation cycle, and is also something that is easiest for a human team to align on.
100
Michael Bleigh @mbleigh.dev · 20/08/2026
I haven't really found "spec-driven development" where the spec is a gigantic long document to be very useful. The spec begins to rot the moment it's written, and the codebase is the actual source of truth.
100
Michael Bleigh @mbleigh.dev · 20/08/2026
The primary artifact you need during design for agent-first development is a list of invariants. "Here's what absolutely must be true about the final result." This will often include a mix of concerns and will often include specific API contracts, specific test scenarios and expected outcomes, etc.
110
Michael Bleigh @mbleigh.dev · 17/08/2026
Doing crazy esoteric stuff in Go: 3 stdlib calls Doing dead basic stuff in Rust: 3 crate installs
010
Michael Bleigh @mbleigh.dev · 11/08/2026
As companies grow, they build processes that leave no room for judgment calls. The default posture becomes oriented around fear of idiot / bad-faith actors, putting a huge tax on good-faith actors who have a good reason to do something a little bit risky. It destroys velocity.
031
Michael Bleigh @mbleigh.dev · 10/08/2026
Agents' overeager coding makes us all into editors. The PR is ready not when there's nothing left to add, but when there's nothing left to take away.
020
Michael Bleigh @mbleigh.dev · 15/07/2026
Not supporting Cmd/Ctrl+Click to open new tabs on navigation is the usability papercut that most frequently sends me into a state of barely-contained rage when using an app.
020
Michael Bleigh @mbleigh.dev · 07/07/2026
Bigcos love to add approvals to everything without considering desensitization. Any individual has limited "pay close attention to thing I'm approving" bandwidth. The more often approval is required, the less carefully each review is performed. Rubber stamps become the norm.
010
Michael Bleigh @mbleigh.dev · 22/06/2026
If you *actually* care about the security of your platform you have to also care about usability. If it takes 35 steps for users to do the right thing and 3 to do the wrong thing, you are incentivizing bad practices. The "pit of success" is hardest to construct for security.
010
Michael Bleigh @mbleigh.dev · 16/06/2026
How has Apple been allowed to get away with the absolutely dismal quality of file search on Mac? It literally couldn't find a folder called "records" in my Downloads folder when I searched for "records".
020
Michael Bleigh @mbleigh.dev · 16/06/2026
It *does* notify on complete! You're right, this is a little UX bump because it's not obvious that it does/will, and it sets timers sometimes to check on the progress intermittently. I forgot about that because I got used to it.
000
Michael Bleigh @mbleigh.dev · 16/06/2026
This lets you continue work in the session while waiting for e.g. a long deploy. It can also schedule self timers to check in on progress of long running scripts. Huge QoL improvement and something I miss when I'm using agents that don't have it.
100
Michael Bleigh @mbleigh.dev · 16/06/2026
"How does the harness handle long-running shell commands" turns out to be I think the most consequential question for overall satisfaction for me personally. Antigravity actually nails this. After a short timeout, the command goes into the background and retriggers on complete.
110
Michael Bleigh @mbleigh.dev · 11/06/2026
My personal experience has been that I get comfortable with one rung and then eventually start feeling "cramped" as I master the current toolset. Then (and only then) I start trying the next level of abstraction to see if it works for me.
000
Michael Bleigh @mbleigh.dev · 11/06/2026
Agentic coding is a ladder, and I think it's most effective to climb it one rung at a time. Loops are very powerful but if you try to jump straight there without first understanding both interactive and unsupervised agentic tasks you're not going to build effective loops.
100
Michael Bleigh @mbleigh.dev · 03/06/2026
One pattern I find myself reaching for frequently these days is to gather data into a heavy JSON "kitchen sink included" format and then build lightweight CLI renderers that slice and dice the data into various token-efficient text views for an agent to understand.
000
Michael Bleigh @mbleigh.dev · 16/05/2026
Not sure I've actually had this experience yet, but it's eminently possible and it's more the mindset I want to have going forward when building tools and services.
000
Michael Bleigh @mbleigh.dev · 16/05/2026
This actually works as a bidirectional grading system for evaluating agents as well. If Agent X can get it done smoothly from the prompt but Agent Y can't, the service or the agent or both have work to do.
000
Michael Bleigh @mbleigh.dev · 16/05/2026
My new bar for onboarding is "give me a prompt I can paste into a halfway decent agent that gets me completely set up and onboarded to your service with no prior knowledge of how anything works". Results are graded on a scale of how much work I have to do instead of my agent.
220
Michael Bleigh @mbleigh.dev · 15/05/2026
3 things every LLM API ought to have knowing what we know now about building agents: 1. Allow add'l function defs without busting prefix cache 2. Interleaved "developer" messages with stronger instruct weight 3. Canonize XML-tag-ish structure into first-class "section" primitive
000
Michael Bleigh @mbleigh.dev · 12/05/2026
Waiting for a reply shaped like this on this post: "A slop button changes the game on automated posters. One click and the post is gone. It's not just cleaning up the timeline, it's changing the incentive structure." 🙃
000
Michael Bleigh @mbleigh.dev · 12/05/2026
Every social media service needs: 1. A "slop" button that is a combination user mute and report of a post as being low-quality. 2. ToS allowing discretionary banning of users for automated low-quality posts. Right now slop replies are clearly rewarded. They need to be punished.
120
Michael Bleigh @mbleigh.dev · 07/05/2026
My tolerance for systems and services that don't have simple CLI / API access is falling to zero extremely fast. I expect we'll start seeing startups that build a CLI and MCP server. Who's already doing that?
320
Michael Bleigh @mbleigh.dev · 20/04/2026
Okay so it turns out Telegram is 1000x easier to set up with a bot than WhatsApp or Google Chat or SMS. I don't use Telegram generally, I didn't particularly want to start, but I might for this reason alone.
000
Michael Bleigh @mbleigh.dev · 20/04/2026
I wanted to play around with building a personal agent for my family and the process of getting working credentials to talk to a chat app is...next to impossible? Is there some secret shortcut to doing this that doesn't require me to register an LLC or something?
210
Michael Bleigh @mbleigh.dev · 13/04/2026
I think the most common frustrating architecture decision I run into is: - To do X (thing we want to do a lot, like define a new tool for an agent) - You need to add code to Y, Z, A, and B Features that need to scale should have vertical consolidation of their definitions.
000
Michael Bleigh @mbleigh.dev · 06/04/2026
An interesting thing about the AI era is you no don't need humans to figure out "how" or "what". New to a codebase and need to trace a code path or discover relation between components? Ask an agent. Now most questions to my teammates are about rationale or judgment - the "why".
000
Michael Bleigh @mbleigh.dev · 19/03/2026
Wave was open-sourced, no? Became an Apache Location protocol iirc
110