Sam
banner
samstrong.dev
Sam
@samstrong.dev
Software Engineer and former Engineering Manager.

Loves pizza, cookies (the kind without pop ups), SFF, RPGs, bouldering and CSS.

Massive fan of scroll-snap. Massive hater of scroll-jacking.

Landlocked yet dreaming of the sea.
I spent a bunch of time today trying to get a position: fixed element to play nicely with the iOS keyboard. It turns out you can’t without an ugly JavaScript hack.

Safari also adds a bunch of spacing at the bottom of your HTML document when the keyboard is active. Has done for years. Never fixed.
October 10, 2025 at 6:58 PM
Playwright is currently driving me crazy. I’ve got a virtualised table with “scroll to load” behaviour. I load some mock data, scroll down, then assert that the new rows are visible.

Except, before I can assert, Playwright has scrolled back to the top of the page.
September 4, 2025 at 8:36 PM
ESLint in VS Code has stopped working for us. I figured let’s just upgrade to ESLint 9. There’s a handy feature to upgrade your config. Now I can’t install one of the required modules because of conflicts with ESLint plugin versions.
August 29, 2025 at 2:16 PM
I’ve been playing with web sockets and WebRTC to try and create a little screen sharing website. The biggest chunk of code is there to try and help Safari display the video Chrome is sending. It still doesn’t work. Tempted to rebuild it in Electron so I don’t have to care.
August 28, 2025 at 10:19 AM
Teams has taken to muting my speakers (both monitor and headset) at the start of every call. Just an overall brilliant experience.
August 28, 2025 at 10:06 AM
If you’re building a UI, don’t be weird. This is weird. Don’t do this.
July 21, 2025 at 6:56 PM
While Copilot chokes when trying to run any tests, Wallaby’s MCP server means it can at least get information about test statuses in the chat.

I’ve also just discovered Wallaby’s “smart start”, which means that when it crashes on branch change or machine sleep, I can get up and running faster.
July 21, 2025 at 4:14 PM
Sometimes Copilot (agent using Sonnet 4) will traverse files, make multiple changes and explain itself perfectly. Other times it’ll just shrug and half-arse things without going beyond a single file. Claude seems particularly poor at overriding MUI defaults.
July 9, 2025 at 5:59 PM
June 30, 2025 at 9:35 PM
Reposted by Sam
O god I'm so tired of this
Dominic Cummings’s action plan
February 14, 2025 at 9:38 AM
Building a recursive tree that combines objects and arrays with React Hook Form and Zod has certainly made me very tired. There’s something inside RHF that doesn’t like it when you make objects in a tree null. Hacking it by using local state as a source of truth feels a bit icky, but seems to work.
January 28, 2025 at 8:32 PM
Me: Clicks on MS Teams to select a chat.

Mac OS: Whoa there hoss, you can’t just go clicking anywhere on a window that doesn’t have a focus.

Me: Clicks again (quickly) to select the actual chat.

MS Teams: Yo! I see you want to open that chat in a separate window. Done!

🤦‍♂️🤷‍♂️
January 22, 2025 at 2:05 PM
It would be really good if everything that CEOs say in public could be reported as a marketing push because that’s exactly what it is.
January 11, 2025 at 9:40 PM
“Microsoft and OpenAI's definition of artificial general intelligence (AGI) is 'a system that can generate at least $100 billion in profits'.” - TL;DR

😂😂😂
December 27, 2024 at 2:01 PM
Reposted by Sam
watching kids open presents on christmas morning is genuinely one of the raddest things ever
December 25, 2024 at 8:31 PM
I recently cleared out the inbox of an old Gmail account. This account had been used for nothing but forwarding to a custom domain account for years.

Anyway, that’s how I broke Spark on my iPad. Every time it tries to sync that inbox it spins for a while then crashes.
December 21, 2024 at 7:55 PM
My brain is really not coping well with the idea that I’m currently without a job (even though things are in progress for a new role). So this morning, at the insistence of my wife, I took myself bouldering (legit the greatest form of exercise ever invented).
December 18, 2024 at 1:27 PM
I guess one real proof of the power of LLMs is whether all those companies who switched to Electron/Reactive Native to “save time” switch back to Native. It should be a five minute job for an AI agent, right?
December 18, 2024 at 10:17 AM
I’ve been unemployed since Friday and I just got on a bus to go visit some friends who live on a narrowboat. All I’ve got with me is keys and my phone. The lack of pressure to be somewhere and do something is incredible.
December 16, 2024 at 10:02 AM
The child has figured out the button combination to access the PlayStation, converted it into numbers and written the numbers on approx 20 post its. She has yet to stick them in clear view of a webcam, but maybe soon!
December 15, 2024 at 3:11 PM
Reposted by Sam
Ok I know nobody cares about this but me, but GOD I care:

1. I have just downloaded your app.
2. You want me to make an account. I don’t want to make an account!
3. When I enter my email, you inform me that I already have an account! This seems like a good thing, but I know it means only pain. 1/2
December 13, 2024 at 10:03 PM
Just imagine, Amazon launches the first Echo. It’s a dedicated kitchen device with first class support for timers, shopping lists (including third party apps) and recipe planning. They never try to make voice the thing for everything. They don’t try and cram Alexa into every device.
December 14, 2024 at 7:25 PM
Reposted by Sam
About a third of job postings are “ghost jobs”—positions companies never intend to fill.

In a survey of 1,641 hiring managers, 40% admitted to posting such listings, citing reasons in the image. This trend feels unnecessarily cruel and disheartening for job seekers navigating the market.
December 14, 2024 at 1:20 PM
Reposted by Sam
My process

Denial: can't do it
Anxiety: need to do it, but scared
Mild panic: OMG, there's so much
No way: I'm too dumb
Straw clutched: latched onto a thing
Hooked: flow state, rapid learning
Irritation: don't interrupt!
Triumph: I'm a genius!
Next: improvisation
Oh f***: broke it.

..back to top!
December 8, 2024 at 7:43 AM
Reposted by Sam
Reminding you all that aria-label overwrites.

<span aria-label="Price">€30</span>

This changes the accessible name to "Price". It does not concatenate.
December 4, 2024 at 7:22 AM