
👨🏼💻 & 🚵🏼♂️ mostly. Currently building https://xitter.cf/t.co/dq804S14QP. Previously @up_banking, @buildkite & @conversationedu @plasticine@mastodon.social
Melbourne, Australia
Joined July 2007
- Tweets18.3K
- Following871
- Followers866
- Likes7.5K
Justin Morris 🦅 retweeted
I'm seeing a progression of agents writing software that I have mixed feelings about.
I have been fighting the complexity battle - the sloppy code that for us is really hard to maintain. Junk building on junk, that ultimate compounds the reliability challenges you'll face in real world production scenarios.
Agents dont seem to be getting noticeably better about it.
What does seem noticeable though is their ability to manage it. The code is just as messy, complicated to reason about as before, but the agents are producing fewer broken behaviors. So more code, but they are capable of working through the overhead.
It doesn't account for the issues that arrise from that (e.g. more resources) and they certianly aren't automatically genreating performant code, but it does beg the question:
does software in the future just become unreadable for us? is it just too hard to reason about because the most efficient way build and maintain is via these coding agents?
Justin Morris 🦅 retweeted
shots fired
There's some senior engineers on here who, in the face of AI changing the very structures this industry is built on, present themselves as Stewards of the Craft of Programming.
Bugs the hell out for me.
They keep alluding to the virtue of doing things by hand, the value of Good Code and of craftsmanship, saying that yes, AI might change some things, but hey it won't ever change the value of something done with proper care, by hand, just like in the olden days of 2024. Most everything that was Good back then is still Good now: deep knowledge of languages and systems, good code, great architecture. You know the sermon.
And, yes, some of that *is* true. At least I think so. But we don't know, because no one truly knows what will be important in the future.
We're going through times of great change and I think the best advice to give to young people and others who want to have a job and provide value is: keep your eyes open, rethink from first principles, derive from what businesses value what you can provide; the digital world is more malleable than ever, you should rethink how you can help shape it.
All this pounding on the Bible of Good Code seems to me to be doing the opposite: it lets people feel comfortable -- what I've valued all my life is still valuable, I can rest easy -- in times when one shouldn't feel comfortable. This is a bumpy, exciting, strange ride. If you lean back you might fall off the waggon.
Let's not delude ourselves and others that we can keep doing what we've been doing. Rethink it all.
And, like I said, it bugs the hell out of me seeing senior engineers (that are secure in their career) talking as if there's nothing *really* to change, because the Fundamentals will still be valued. They might!
But it's the wrong advice to not rethink everything right now.
Justin Morris 🦅 retweeted
with all the dunking on @elixirlang, a quick note from someone who bet on it.
phoenix liveview is processes all the way down. that is what lets us build interactive ui without the overhead and indirection of client side state management. we ship and test interfaces insanely fast and nothing else has come close.
and that is just liveview. @elixirphoenix is one of the most productive web stacks i have tried.
the erlang runtime is the other half. agents can attach to it in dev and in prod and see the process tree, memory and cpu, not just symbols. it is a system you can interrogate.
we have not used everything it can do because we have not needed it yet. when something does need to be fast we can drop into a nif and write that part in rust, and so far that has barely come up. we optimized for feeling productive so we could get the business off the ground. @marekfort and i say the same thing every time. best decision we made, and even better with agents.
Justin Morris 🦅 retweeted
I'm fluent in DHHese. Let me translate:
"the benchmark I posted was completely fucked up. I tried arguing it's measuring agent performance instead of language performance but these duckers found out I spent more time on the rust version. stop calling me out on it. how about some free labour to fix the shittiest benchmark on earth? but also realise you are still wrong and I'm right, although it's hard to say what I'm right about exactly - I've run out of lies and misdirections a while ago"
Replying to @crertel
I didn't do anything. I asked two frontier agents to make the most of Elixir and this is what they came up with. Please do send a PR to speed things up! But also realize that it's not exactly extra points for Elixir if frontier agents can't find the magic "go fast" switches.
Justin Morris 🦅 retweeted
What frustrates me the most is the lack of curiosity.
People saw the numbers they wanted to see and ran with the story. They didn’t ask about the process. They didn’t question the results. They didn’t explore the code. They didn’t look at the history.
You could have even asked a coding agent to do an initial investigation.
There has never been a better time to be curious, dig deeper, learn... but this is what we’ve got now.
Oh well.
Justin Morris 🦅 retweeted
Here is a nice pun to close the week: Rust is a system programming language, Elixir is a *systems* programming language.
Justin Morris 🦅 retweeted
You might believe you should spend less time thinking about code because of AI.
I strongly disagree! We’re watching this play out live where tons of AI generated code becomes a liability.
At the end of the day, an engineer needs to be responsible / on call for code that gets shipped to production. If you don’t understand the system you’re trying to debug, you’re probably going to have a bad time.
Yes, AI can help with all of this, if you set up the proper systems. You can have agents triage prod logs, look at errors, etc. You can speed up parts of the investigation, but an engineer needs to make the call. There might be serious customer or financial implications from that change.
I expect the trend continue for trimming dependencies, vendoring code so you can modify it directly, preferring simpler systems with fewer abstractions, and spending waaaay more time thinking about system design and code maintenance.
I’ve said this before, but it’s a great time to get familiar with CS fundamentals and some of the history behind what great software looks like. Many parts will be different in the coming years as AI progresses, but also a lot more than people realize will stay the same.
Justin Morris 🦅 retweeted
I strongly believe there are entire companies right now under heavy AI psychosis and its impossible to have rational conversations about it with them. I can't name any specific people because they include personal friends I deeply respect, but I worry about how this plays out.
I lived through the great MTBF vs MTTR (mean-time-between-failure vs. mean-time-to-recovery) reckoning of infrastructure during the transition to cloud and cloud automation. All those arguments are rearing their ugly heads again but now its... the whole software development industry (maybe the whole world, really).
It's frightening, because the psychosis folks operate under an almost absolute "MTTR is all you need" mentality: "its fine to ship bugs because the agents will fix them so quickly and at a scale humans can't do!" We learned in infrastructure that MTTR is great but you can't yeet resilient systems entirely.
The main issue is I don't even know how to bring this up to people I know personally, because bringing this topic up leads to immediately dismissals like "no no, it has full test coverage" or "bug reports are going down" or something, which just don't paint the whole picture.
We already learned this lesson once in infrastructure: you can automate yourself into a very resilient catastrophe machine. Systems can appear healthy by local metrics while globally becoming incomprehensible. Bug reports can go down while latent risk explodes. Test coverage can rise while semantic understanding falls. Changes happens so fast that nobody notices the underlying architecture decaying.
I worry.
The slowly caving in hole just the other side of the fence has also smashed the septic line, so now it’s also full of sewage.
Justin Morris 🦅 retweeted
The highest form of city-building today is turning a space for cars into a place for people. Like Paris did, turning a waterfront freeway into a vibrant & diverse promenade. Our cities are full of car sewers in key locations awaiting change. V/@EmmanuelSPV





















