Wednesday, August 27, 2025
advice from a successful UX Engineer Job Seeker
Thursday, August 21, 2025
(Misuse of) Javascript broke the web
Wow - JavaScript broke the web (and called it progress).
What a well-written, thoughtful analysis of things that have been making my developer life less fun for a decade.
Some quotes:
The tragedy is, none of this is necessary. Once upon a time, we had a fast, stable, resilient web. But we replaced it with a JavaScript cargo cult.
Now it takes four engineers, three frameworks, and a CI/CD pipeline just to change a heading. It’s inordinately complex to simply publish a webpage.
[...]
Around 2010, something shifted. The iPhone was ascendant. Native apps were sleek, fast, fluid. Angular, the first mainstream JavaScript framework for the web, had just emerged. And suddenly, every CMO started saying the same thing in website briefs: “Can we make it feel like an app?”
Developers, armed with new frameworks and good intentions, said yes. JavaScript could, in theory, do seamless transitions and slick UI. So we built towards that promise. Or tried to.
Spoiler alert: we didn’t get app-like performance. We didn’t get better user experiences. What we got was an arms race of complexity.
[...]
And so, we rewrote the rules of web development around entirely different needs, almost overnight. Not content, not speed, not interoperability, not discoverability. Just code.
[...]
Fast forward to today. Ironically, after years of chasing abstraction and complexity, the JavaScript ecosystem is now scrambling to reintroduce the things we lost.
Server-side rendering? Back in fashion. Routing? Carefully managed. URL structures, metadata, even HTML output – all being rebuilt, one plugin at a time.
If I disagreed with anything, it's this:
Today, we optimise for “DX” – developer experience. Not user experience. Not performance. Not outcomes.
For a certain subset of developers... not true. At all. It's a mess and everything is harder than it seems like it should be - complexity is not counted as a cost and "ability to follow it in your head" is not prioritized at all.
If you are old enough to remember the old 8bit home computers - they used BASIC even though it was slow and interpreted - on machines that were already slow - because the run-eval loops is SO powerful. And for me, there's a through line to that technology, some early scripting in like Perl and what not, and the Evergreen/Buildless stack I prefer now - everything is transparent, everything shows its work. Ever since the rise of Angular my day job has been about building blackboxes, as if everything was a standalone binary app.
Wednesday, August 13, 2025
copy and paste images right into messages...
I had to switch to a Windows machine at work. Its default screenshot-maker is launched via win-shift-s, and it copies the shot to the clipboard. What I was surprised to learn is how many communication programs now support "copy and paste an image into a message" - I thought maybe it was a Teams flex, but Gmail and FB Messenger also support it.
It's interesting because, programming wise, that's a pretty complicated thing to support. I think they are quietly taking the raw/base64 data, quickly uploading it, getting a file reference, and then putting a tag with the image in the WYSIWYG content.
I have to put it on my Startling Technology list - stuff that really impressed me when it came out, like Google Maps slidey tiles, youtube letting anyone upload video, ChatGPT+Dall-E... not quite as exciting as those but still.)
Wednesday, August 6, 2025
Monday, August 4, 2025
Upsert
Today I learned a new-to-me term "Upsert", which is a lot nice than the "createOrUpdate" compound I might have used previously.
Friday, July 25, 2025
Thinking about Agile and the Games Industry
Something I wrote into Teams at work as we're discussing our Agile process:
I was listening to the gaming podcast "Get Played" the other day - very idiosyncratic episode where one of the 3 improv comedian hosts [Nick Wiger] was running it solo. He had some experience doing tech support then QA then some design for Activision (he was on the team for the old Fantastic Four movie tie in game). Anyway, it reminded me of how much the game industry was responsible for popularizing Agile - both the scale of what a AAA title takes, and the process of nightly builds, and constant deliveries.
I mean, I'm not sure I love game industry as a model; they are in forever crunch mode and really exploit the fact that so many young smart people will sacrifice so much to be In The Industry. But for those among us who dig big games, it's interesting to think about the tie-in with how Agile structures our working day lives.
Gall's Law
Gall's Law: A complex system that works is invariably found to have evolved from a simple system that worked.
The corollary is devastating: A complex system designed from scratch never works and cannot be patched up to make it work.
This is why:
- Microservices migrations often fail when done as big-bang rewrites
- New frameworks struggle against battle-tested ones
- "Clean slate" projects often become technical debt faster
Start simple. Add complexity only when the simple system breaks.
- Robert Roskam