Ed Grosvenor
@gros.co
Building hallway.fm and finding fun new ways to bend Laravel tools to my will.
The AI Bubble:
We have observed that this solvent is significantly faster and more effective at removing certain oil-based stains from natural fabric than the products currently on the market.
We have observed that this solvent is significantly faster and more effective at removing certain oil-based stains from natural fabric than the products currently on the market.
November 10, 2025 at 6:06 PM
The AI Bubble:
We have observed that this solvent is significantly faster and more effective at removing certain oil-based stains from natural fabric than the products currently on the market.
We have observed that this solvent is significantly faster and more effective at removing certain oil-based stains from natural fabric than the products currently on the market.
Reposted by Ed Grosvenor
The PHP Foundation is Seeking a New Executive Director! 🐘💜
We're asking the PHP community to help find the right person for this role. If you know someone who would be an excellent fit, please encourage them to apply or reach out to us directly.
thephp.foundation/blog/2025/11... #phpc #php
We're asking the PHP community to help find the right person for this role. If you know someone who would be an excellent fit, please encourage them to apply or reach out to us directly.
thephp.foundation/blog/2025/11... #phpc #php
The PHP Foundation is Seeking a New Executive Director
The PHP Foundation — Supporting, Advancing, and Developing the PHP Language
thephp.foundation
November 10, 2025 at 3:03 PM
The PHP Foundation is Seeking a New Executive Director! 🐘💜
We're asking the PHP community to help find the right person for this role. If you know someone who would be an excellent fit, please encourage them to apply or reach out to us directly.
thephp.foundation/blog/2025/11... #phpc #php
We're asking the PHP community to help find the right person for this role. If you know someone who would be an excellent fit, please encourage them to apply or reach out to us directly.
thephp.foundation/blog/2025/11... #phpc #php
My advice to the younger generation in the face of a scary, uncertain job market:
If you lack competence, principles, and backbone, go into politics. The money is fantastic (assuming you also lack ethics), and it's basically impossible to get fired for being extremely bad at your job.
If you lack competence, principles, and backbone, go into politics. The money is fantastic (assuming you also lack ethics), and it's basically impossible to get fired for being extremely bad at your job.
November 10, 2025 at 11:31 AM
My advice to the younger generation in the face of a scary, uncertain job market:
If you lack competence, principles, and backbone, go into politics. The money is fantastic (assuming you also lack ethics), and it's basically impossible to get fired for being extremely bad at your job.
If you lack competence, principles, and backbone, go into politics. The money is fantastic (assuming you also lack ethics), and it's basically impossible to get fired for being extremely bad at your job.
Anyone know a disgraced former AWS Naming Engineer who's looking for work? As we grow the portfolio of tools in our client portal, I'm struggling to find the right mix of catchy and confusing.
November 9, 2025 at 5:00 PM
Anyone know a disgraced former AWS Naming Engineer who's looking for work? As we grow the portfolio of tools in our client portal, I'm struggling to find the right mix of catchy and confusing.
The generator works perfectly. There are a few other little compatibility issues that I could patch by publishing a service provider. But so far, I'm enjoying this combination.
November 9, 2025 at 3:41 PM
The generator works perfectly. There are a few other little compatibility issues that I could patch by publishing a service provider. But so far, I'm enjoying this combination.
This explains why I get that weird look on my face every time an underformed clump of aging brain cells somewhere inside my skull attempts to perform a real-time translation of the conversation around me.
November 9, 2025 at 1:27 PM
This explains why I get that weird look on my face every time an underformed clump of aging brain cells somewhere inside my skull attempts to perform a real-time translation of the conversation around me.
Email, but the sender pays for postage. Making it free was a mistake.
This calendar spam trend has me irrationally angry and I’m about to cut off all communication from anyone who’s not already in a Slack with me.
This calendar spam trend has me irrationally angry and I’m about to cut off all communication from anyone who’s not already in a Slack with me.
November 5, 2025 at 3:45 PM
Email, but the sender pays for postage. Making it free was a mistake.
This calendar spam trend has me irrationally angry and I’m about to cut off all communication from anyone who’s not already in a Slack with me.
This calendar spam trend has me irrationally angry and I’m about to cut off all communication from anyone who’s not already in a Slack with me.
The real vibe-coding horror stories aren't "the AI dropped the production database". They're "I have 132 open PRs across 23 repos, and nobody understands what they do well enough to click the Merge button". It's such a recurring theme in my sales calls.
November 5, 2025 at 2:23 PM
The real vibe-coding horror stories aren't "the AI dropped the production database". They're "I have 132 open PRs across 23 repos, and nobody understands what they do well enough to click the Merge button". It's such a recurring theme in my sales calls.
My next mission is to find a way to stop a client (non-technical) from vibe coding and merging (usually bad) PRs into mission-critical production apps. In order to do this, I have to give him something that meets the following criteria:
November 2, 2025 at 9:42 PM
My next mission is to find a way to stop a client (non-technical) from vibe coding and merging (usually bad) PRs into mission-critical production apps. In order to do this, I have to give him something that meets the following criteria:
My new assistant’s first day on the job. Maybe the machines really will replace us after all.
October 30, 2025 at 1:47 PM
My new assistant’s first day on the job. Maybe the machines really will replace us after all.
All of this AI stuff I'm working on now is driving toward the most mundane and pedestrian thing possible. I'm working on a tool for one of my clients to allow the non-technical stakeholders to open better, more actionable tickets so that developers can solve their problems more effectively.
October 26, 2025 at 10:31 PM
All of this AI stuff I'm working on now is driving toward the most mundane and pedestrian thing possible. I'm working on a tool for one of my clients to allow the non-technical stakeholders to open better, more actionable tickets so that developers can solve their problems more effectively.
I'm watching Claude Code orchestrate an opencode session using a Livewire chat component it's controlling via Playwright and fixing both the SDK and the client package as it goes. I'm really glad I put in the hours figuring out how to manage all our packages in a single monorepo.
October 26, 2025 at 9:26 PM
I'm watching Claude Code orchestrate an opencode session using a Livewire chat component it's controlling via Playwright and fixing both the SDK and the client package as it goes. I'm really glad I put in the hours figuring out how to manage all our packages in a single monorepo.
It's still a bit WIP, but if you want to orchestrate opencode sessions from your PHP application, this should get it done for you...
github.com/artisan-buil...
github.com/artisan-buil...
GitHub - artisan-build/opencode-sdk: A Saloon generated SDK for opencode
A Saloon generated SDK for opencode. Contribute to artisan-build/opencode-sdk development by creating an account on GitHub.
github.com
October 26, 2025 at 8:59 AM
It's still a bit WIP, but if you want to orchestrate opencode sessions from your PHP application, this should get it done for you...
github.com/artisan-buil...
github.com/artisan-buil...
I had a lot of fun building that Forge SDK (ultimately ended up being a pretty robust Forge client for Laravel) last Saturday. So I'm doing it again tonight. Cracking a beer and creating an opencode client for Laravel.
October 25, 2025 at 4:19 PM
I had a lot of fun building that Forge SDK (ultimately ended up being a pretty robust Forge client for Laravel) last Saturday. So I'm doing it again tonight. Cracking a beer and creating an opencode client for Laravel.
You know what would make @pestphp.bsky.social even better? A --dry-run flag that just finds all the tests that it would run and lists them out in order.
Imagine this scenario. You run your test suite and something just hangs forever. The problem is in the test just after the last one displayed.
Imagine this scenario. You run your test suite and something just hangs forever. The problem is in the test just after the last one displayed.
October 22, 2025 at 10:15 AM
You know what would make @pestphp.bsky.social even better? A --dry-run flag that just finds all the tests that it would run and lists them out in order.
Imagine this scenario. You run your test suite and something just hangs forever. The problem is in the test just after the last one displayed.
Imagine this scenario. You run your test suite and something just hangs forever. The problem is in the test just after the last one displayed.
Reposted by Ed Grosvenor
Edinburgh castle failing to render, likely thanks to the AWS outage
October 20, 2025 at 8:35 AM
Edinburgh castle failing to render, likely thanks to the AWS outage
Here's the (VERY WIP) version of the forge-client package that I started on Saturday. Yes, Claude is helping me (using a spec-driven approach inspired by @briancasel.com). The README is overwhelming, so I'll eventually build a docs site. But it's basically working:
github.com/artisan-buil...
github.com/artisan-buil...
github.com
October 20, 2025 at 1:19 PM
Here's the (VERY WIP) version of the forge-client package that I started on Saturday. Yes, Claude is helping me (using a spec-driven approach inspired by @briancasel.com). The README is overwhelming, so I'll eventually build a docs site. But it's basically working:
github.com/artisan-buil...
github.com/artisan-buil...
Current Status: Renaming the package from forge-sdk to forge-client because it also contains a pretty robust set of artisan commands and I have some other goodies planned. I should probably extract the SDK out into its own package (not requiring Laravel), but that's for another time.
My Saturday night plan is to turn on a podcast, crack a beer, and create a Saloon SDK for the new Laravel Forge API.
This is how I relax after a crazy week at work. Don't judge me.
This is how I relax after a crazy week at work. Don't judge me.
October 20, 2025 at 12:26 PM
Current Status: Renaming the package from forge-sdk to forge-client because it also contains a pretty robust set of artisan commands and I have some other goodies planned. I should probably extract the SDK out into its own package (not requiring Laravel), but that's for another time.
My Saturday night plan is to turn on a podcast, crack a beer, and create a Saloon SDK for the new Laravel Forge API.
This is how I relax after a crazy week at work. Don't judge me.
This is how I relax after a crazy week at work. Don't judge me.
October 18, 2025 at 9:43 PM
My Saturday night plan is to turn on a podcast, crack a beer, and create a Saloon SDK for the new Laravel Forge API.
This is how I relax after a crazy week at work. Don't judge me.
This is how I relax after a crazy week at work. Don't judge me.
My son’s school was closed today because of a bomb threat. All is well (then again, I’m not the parent of the kid who called it in). So I had Milo and one of his classmates haunting the house all day. It’s my wife’s birthday and our plans got blown up, so I improvised for dinner.
October 17, 2025 at 4:41 PM
My son’s school was closed today because of a bomb threat. All is well (then again, I’m not the parent of the kid who called it in). So I had Milo and one of his classmates haunting the house all day. It’s my wife’s birthday and our plans got blown up, so I improvised for dinner.
When delegating code generation to LLMs, you need to be dogmatic. These systems don't do nuance. Our instinct to say "it depends" does not serve us well here.
This is another reason why keeping their tasks small and well-defined matters. They're horrible decision makers.
This is another reason why keeping their tasks small and well-defined matters. They're horrible decision makers.
October 13, 2025 at 8:08 AM
When delegating code generation to LLMs, you need to be dogmatic. These systems don't do nuance. Our instinct to say "it depends" does not serve us well here.
This is another reason why keeping their tasks small and well-defined matters. They're horrible decision makers.
This is another reason why keeping their tasks small and well-defined matters. They're horrible decision makers.
We landed in Greece to a little drizzle and a gentle breeze. Apparently, that's not the norm here, as the pilot received a rousing ovation from the passengers for setting the plane down safely in such rough conditions.
October 6, 2025 at 9:18 PM
We landed in Greece to a little drizzle and a gentle breeze. Apparently, that's not the norm here, as the pilot received a rousing ovation from the passengers for setting the plane down safely in such rough conditions.
My family is all asleep, so I stopped at the hotel bar for a beer. I got to chatting with a man whose family has an overnight layover here on their big corporate relo trip. He's Puerto Rican and he's been arrested twice by ICE in recent months.
October 5, 2025 at 9:08 PM
My family is all asleep, so I stopped at the hotel bar for a beer. I got to chatting with a man whose family has an overnight layover here on their big corporate relo trip. He's Puerto Rican and he's been arrested twice by ICE in recent months.
Back at the Zurich airport. The quality of transit in this country really lowers the stakes for disorganized families like ours.
October 5, 2025 at 7:08 PM
Back at the Zurich airport. The quality of transit in this country really lowers the stakes for disorganized families like ours.
You know how top executives at some companies never fly together on the same plane? My family does the same thing but for totally different reasons.
October 5, 2025 at 3:34 PM
You know how top executives at some companies never fly together on the same plane? My family does the same thing but for totally different reasons.