2,420 karma · joined July 18, 2010
https://bryanmurphy.me/
As somebody with a pretty extensive Home Assistant based home automation system AND kids, I've never once felt the need for this. I can certainly see the utility of it, but Home Assistant is already complicated enough. I'd prefer effort be spent improving the UX, simplifying the system, improving reliability and adding more (optional) integrations.
I do agree, the "MCPs are dead" narrative was overblown, but there were legit reasons we weren't ready to go all in on them back then.
My 2015 Jeep Cherokee had a freakout one day: the power steering stopped working mid-drive, on the highway. I was 50 minutes from my house, had to turn around and drive back home (an exhausting exercise given that modern cars are not built to function without power steering). I got to the dealer, parked in the lot, turned the car off, wait 30 seconds, turn it back on, everything worked fine.
That never happened again, but once is enough to put somebody in a dangerous-to-life situation.
It's not just the infotainment system we should be worrying about. Most modern cars are now distributed computer systems.
My idea of a dumb fridge: a fridge that updates firmware, bricks itself, and lets all my food spoil.
When I use iOS devices, it feels better but I don't use them enough to have used them in anger. Ok, well, yes they have made me angry but for other reasons than the keyboard hence why I'm on Android lol.
If any engineer sent me a 20,000 line refactor I'd immediately reject it and tell them to go back and start making changes incrementally at minimum. More likely I'd force them to have a whole design discussion with the team to make sure that what they are doing even makes sense.
What happens if they push out slop that significantly increases your infrastructure costs? What happens if they push out slop that significantly increases the number of bugs or outages? What happens if they push out slop that has no observational metrics, dashboards, or tooling?
In every case you push back on the team and make them fix their shit. I don't care if they are using LLMs or not. They are responsible for their work being sufficient quality. If they aren't meeting those standards, then they need to step it up.
https://gist.github.com/bmurphy1976/47ad81a842ab4b1628ef5974...
A small preview:
*Meta commentary.* Sentences about the document, the diagram, the reader, or the
writing itself ("the split across this diagram is the whole point", "a reader who
assumes X will be wrong", "as we'll see below"). Delete the frame and keep the fact
it was wrapped around. If there is no fact underneath, delete the sentence.Engineers who have avoided learning the soft skills are going to have a harder time adjusting.
First attempt: mountains of meta conversation and not answering the original question.
Second attempt: shorter and more concise, cuts out some of the nonsense, but terribly written.
Third attempt: goes off the rails, misunderstands what you are asking and tries pushing the work onto you.
Fourth attempt: finally something that's concise, reasonably well written, to the point and passable.
You should have plenty of data to review regularly and push back on any teams that are causing problems. That's a process problem and you need a process for it.
Trace the increase back to specific deployments, call out those teams, and make them fix their shit.
Now, whether you should you be using the Homebrew Python is a completely different question. YMMV for other platforms managed via Homebrew.
I've traditionally used MacPorts for dev tooling and Homebrew for everything else, but with more aggressive adoption of tooling like uv an nvm I'm not sure the different really matters for me anymore.
Just like with a Temporal workflow, I don't care how things work 99% of the time. But that last 1% when I really need to dig in and understand how and where things went sideways this type of view would be invaluable.
Work on your project management, communication, and mentorship skills. The AI tools are much more like a team of sloppy but capable junior engineers and not a reliably consistent fabrication machine. Change your perception that one simple prompt is going to magically solve a hard problem the first time. Learn to break projects down, organize them into sub-projects, and implement them in steps. Learn to communicate more clearly, define your requirements more rigorously, and adapt around your "team's" strengths and weaknesses.
We want these things to be rigorous and flawless but reality is messy just like working with a regular team of engineers. They are good at some things, terrible at others, constantly changing, and unreliable. But we've historically built tons of reliable software on unreliable actors by focusing on process, collaboration, and communication.
AKA, not just the hard technical skills, but the soft skills that allow unreliable software teams to thrive. They don't know what they don't know and it's your job to manage that.
If you really need something to latch onto, there's plenty of educational material available about how to be an effective scrum master. Start there.