Wednesday, August 27, 2025

advice from a successful UX Engineer Job Seeker

 

It's not perfect but I'm thankful I found something so quickly. If you are currently unemployed or maybe find yourself unemployed soon here are some things that helped me find a new role so quickly:
1. You WILL be taking a pay cut. The market is flooded right now. Companies know this and are taking advantage. The faster you accept this the faster you can move on and apply for roles with a lower salary. The way I looked at it was taking a pay cut is still more than collecting unemployment.
2. You may have to go back into the office (at least a couple days a week). I was very very lucky to find another completely remote role. This was NOT the norm out there. Every other company I was working with was hybrid, some of those were in Boston. I was prepared to do it but thankful I don't have to.
3. Look outside your role. Again I'm super lucky I found something directly within my current niche. I'll even be working with a design system but I was entertaining taking a QA role which is related but not a direct match to what I used to do.
4. You need to be sending at least 10-20 applications daily. Many of these jobs I don't believe were even real because I would get a rejection email within minutes of applying. I think some places are just collecting a pool of candidates. But you don't know which ones are real and which aren't.
5. Branch out from LinkedIn. I did use LinkedIn but I also used builtin, indeed and dice. I also looked up practically everyone I ever worked with to see where they were and if their company was hiring.
6. Lastly remind yourself it's not forever. I took a less than perfect role, but I don't have to stay here forever. The economy will get better and things will eventually go back to normal.

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.)

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