Michael Bleigh
@mbleigh.dev
480 followers 130 following 370 posts
Building the servers for serverless at Firebase. Web platform aficionado.
Posts Media Videos Starter Packs
mbleigh.dev
You can trot out the positive signals when you're pitching or selling, you can celebrate wins and milestones with the team, but when it's just you it's far better to obsess over the shortcomings than develop false complacency.

Complacency kills products.
mbleigh.dev
If you own a product it is critical that you inoculate yourself against vanity metrics, stuff like "total users signed up" that can only ever go up.

You want your product to succeed and the desperation to see positive signals is hard to overcome. But overcome it you must.
mbleigh.dev
I find myself at a loss about AI video apps. Why would I want an entire app dedicated to lower effort content?

I'm not angry it exists, I'm just confused why anyone would consume it. If the content is good enough to watch shouldn't it be able to compete on existing platforms?
mbleigh.dev
Does *any* coding agent today have the ability to access MCP resources autonomously (via a built-in tool instead of by e.g. @-mentioning it)?

There is such a huge opportunity for the first coding agent that successfully cracks intelligent context loading via resources.
mbleigh.dev
Are you the author of an open source library and wish you had a better way to get coding agents to use it properly?

DM me, would like to hear more. Working on something in this space.
mbleigh.dev
Following AI right now is like playing competitive video games.

When a new patch (model, tool, etc) drops, the balance shifts and new metas evolve (patterns of using various things together).

And if you take a break for a few months you come back to a totally different game.
mbleigh.dev
Feature request for browsers: keep track of what's under the mouse and when clicking if a layout shift changed target in last 500ms cancel the click event.

Bug report for websites everywhere: Stop making interfaces where stuff loads in a way that causes these layout shifts.
mbleigh.dev
More minutes watched is presumably correlated with keeping a subscription, so streamers don't want a mode where new stuff isn't in your face all the time. They are incentivized not to allow curation

But I'm incentivized not to let my daughter see trash Elf on the Shelf "shows".
mbleigh.dev
In a world where things were less walled garden and more interoperable, I could build this for myself by aggregating content across services in a custom player / library of some kind...but we don't live in that world.

Why regulation? Because market incentives are misaligned.
mbleigh.dev
I would be in favor of regulations that forced media platforms with kids' content have to have a mode where parents can strictly curate the entire library of available content.

There's good educational stuff on Netflix/Disney+/HBO/YouTube for my daughter, but also total garbage.
mbleigh.dev
Like, the idea of sparing lives when you don't have to kill them is fine, but I always lose suspension of disbelief when the movie/show makes a *big deal* out of sparing the boss. It's saying "this is the difference between the hero and villain"...but only for named characters.
mbleigh.dev
One of my least favorite tropes is "kill the henchmen, spare the boss" where a hero battles through waves of enemies, fights a boss wins without killing and then a big deal is made of "sparing" the boss.

What about the 37 people you murdered on the way in?
mbleigh.dev
"Not Invented Here" (NIH) unfortunately applies not only between companies ("we won't use X because we will do a better job building it ourselves") but also within large companies ("we are the team who is supposed to own X so we won't use team Y's thing for it").
mbleigh.dev
Hooks (e.g. Claude Code's hooks) are the critical primitive missing from the MCP spec. If an MCP server could hook into the agent lifecycle, a whole universe of possibilities opens up.

At some point if I have time (so ~never 🙃) I intend to write up a formal proposal for it.
mbleigh.dev
Pretty much every assistive AI system should allow for persisted customization of the system or initial user prompt. If you're trying to help the user do something, you need to let them define their own workflow guidance.

This is the main reason coding agents are so popular imo.
mbleigh.dev
Correlated, a company that treats people as fungible is doomed to fail. Think about your own teams -- are there some people where you would rather double their comp and have to lay someone else off than lose them?

It's a rational move if they are uniquely dialed in on the role.
mbleigh.dev
You might find a passionate hard working who doesn't have the skill/knowledge to excel without help. You might find an expert who is bored with the problem space. You might have a fantastic person working in a suffocating bureaucratic environment.

"10x devs" are situational.
mbleigh.dev
A "10x Engineer" is actually the combination of a:

(1) Highly skilled person who is
(2) Highly knowledgeable about a problem domain they are
(3) Highly passionate about working on with a
(4) Supportive team/working environment

When you have all four you might actually get 10x.
mbleigh.dev
Something that I think gets lost in the debate about whether 10x engineers exist or not is that there are multiple dimensions in play.

I don't think there are engineers who would perform 10x better than the average engineer at *any* project/task. 2x? 3x? Maybe. But not 10x.
mbleigh.dev
The image editing capabilities of Gemini 2.5 Flash are really something else. I think there will be some really cool stuff built on top of this, can't wait to see it!
mbleigh.dev
Want to bring 🤏🍌 into your app? Frontier image editing in Genkit is just a few lines of code away.

Available now, no need to upgrade your Genkit version. Just use the 'gemini-2.5-flash-image-preview' model and set responseModalities in config.
import { genkit } from "genkit";
import { googleAI } from "@genkit-ai/google-genai";

const plant = fs.readFileSync('palm_tree.png', { encoding: 'base64' });
const room = fs.readFileSync('my_room.png', { encoding: 'base64' });

const ai = genkit({googleAI()});

const { media } = await ai.generate({
  model: googleAI.model('gemini-2.5-flash-image-preview'),
  prompt: [
    { text: 'add the plant to my room' },
    { media: {url: `data:image/png;base64,${plant}`} },
    { media: {url: `data:image/png;base64,${room}`} },
  ],
  config: {responseModalities: ['TEXT', 'IMAGE']},
});

media.url; // "data:image/png;base64,..."
mbleigh.dev
Every website that does any kind of comparison between many options (flights, hotels, heck even shopping) should have an easy mechanism to save a list of potential options while searching and then compare just your saved options, picking one.

But basically nobody does this.
mbleigh.dev
I don't think my preferences are "correct" or "better" but they are valid. You are "rejecting my lived experience" as they say to say that X or Y is impossible in a distributed team.

I think we just need to sort people into office-preferrers and remote-preferrers and have both.
mbleigh.dev
Extroverts need an office to feed their energy and that's nice for them. But I get more energized from bouncing between 3 deeply technical debates in chat than I ever do at the office.

For me in-person time should be rare but deep.
mbleigh.dev
I came up in the Rails consultancy Intridea which was fully remote before video calling was a reasonable thing. We lived in Campfire and met up ~twice a year @ RailsConf/RubyConf.

Those were some of the closest work relationships I've ever had. "Cracked team" as they say now.