Every post so far has assumed nothing was cached. That was on purpose — you can't reason about an optimization until you understand the thing it optimizes. Now we turn it on.
The five-step craft cycle behind good products: problem, insight, bet, ship, learn — and why the judgment steps, not the process steps, are where products actually succeed or fail.
Nine posts. One request.
The previous post argued that most of what people put in a global store was never client state — it was server data, or URL state, or form values, all miscategorised.
Post 3 established a fact in passing that's worth picking back up: useEffect does not run during the SSR pass. Your client component executes on the server, produces markup, and its effects never fire.
This series has spent several posts taking things away from the browser.
Functions can't cross the boundary. Not because React is fussy, but because the two sides never share a scope — there's no lexical environment on the client for a server closure to be captured from. Props go into a text payload. A function isn't text.
One question before we start.
A module path, a chunk, an export name. That's bundler output — the bundler assigned the ID and decided which file the module lives in.
Browsers have supported ES modules natively since 2018. Every browser you care about can read import and export without help.
Here's a test. Take this component:
Here’s a question I sat with for longer than I should have: if React’s Virtual DOM is supposed to make things faster, why does a complex React app sometimes feel slower than a simple jQuery one?
Rendering patterns are one of those topics where everyone nods along in standup and then quietly Googles “SSR vs SSG” for the fourth time that week.
The original problem modules solved was not performance — it was namespace pollution.
Stuff a software engineer should know about browsers
At this point all fifty states have considered passing "right to repair" law aimed at making it easier and cheaper for consumers (and independent repair shops) to repair their tech. That said, only Massachusetts, New York, Texas, Minnesota, Colorado, California, Oregon, and Washington have actually passed laws. And of those states, none have seen any...
Initially the idea of the "smart television" seemed like a good idea. That is until TV makers realized they could make significantly more money loading the television with spyware, tracking your every online choice, then selling all that data to a global assortment of unregulated data brokers.It didn't take long for product quality to sag...
There’s still a massive effort afoot to implement statewide “right to repair” laws that try to make it cheaper, easier, and environmentally friendlier for you to repair the technology you own. All fifty states have at least flirted with the idea, though only Massachusetts, New York, Texas, Minnesota, Colorado, California, Oregon, and Washington have actually...
Linear's telemetry shows coding agents multiplying output while planning and coordination do not shrink.
I like to geo-tag all my "stuff" so of course I also like to geo-tag my blog posts. I just wrote a tiny little plugin to do that. I looked at a whole bunch of plugins, I used Simple Location for a while until I realized that all of them are doing way too much....
A "better-late-than-never" discovery of advanced testing strategies.
So, I finally did it. I got my MacBook Air. I went for 16GB because it was cheaper, and I want to dip my toe in before even thinking about committing to the Mac ecosystem. And so far, with the few days I've had it, it's been really good, although with some big caveats. The...
i use malware btw
Pleaseeeee shut up. I have a headache
Grob gesagt habe ich Folgendes gemacht: Auf einem Android-Smartphone das originale Betriebssystem durch eine Android-Variante ohne Google-Apps und -Dienste ersetzt. Wichtig: Das Betriebssystem sollte aus einer seriösen Quelle stammen und Sicherheitsupdates liefern. Folgende Apps installiert: F-Droid (für freie Open-Source-Apps), Kiwix (für Offline-Lexika), Conversations (Familienchat über Jabber/XMPP), Signal und Fennec (eine freie Firefox-Variante aus F-Droid). Leider...
How would Rich Hickey decomplect the actor model ? I’m thinking: Messages: immutable values Queues: actor inboxs (and outboxes) become queues (see Queues decouple producer from consumer ) State: state is stored by ID in a KV store (see…
If you're going to decomplect a class into a bunch of component slices, you're going to need a way to tie those slices together. You need identifiers that you can use across multiple systems. So you'll be using a lot of globally-unique identifiers…
It might be too soon, but I wanted to make this post anyway because it's been on the mind lately. Last month or so, I decided after hopping on and wrangling with static site generators to dismiss them as a whole, and I decided to make the jump to WordPress. And frankly, I don't regret...
MusicBee, my bee-loved.
Open, model-agnostic runtime for stateful agents with persistent memory, computer use, skills, subagents, and deployment across interfaces.
Constraining language-model generation so downstream systems receive valid, schema-shaped data.
Personalized stateful agent built on Letta's open harness and research in AI memory and continual learning.
So, Apple Music has two problems: The Windows app kinda sucks. There's no app for Linux. The Linux part, I can understand. The Windows part, however, I don't - right now I've got a problem where it says "An unknown error occurred", and I think it's because I had to briefly use Wi-Fi instead of...
So, Linus Torvalds has come out and said that LLMs are just a tool, and that Linux is not considered to be an anti-AI project. This has caused anti-AI people to crash out on social media, down to making very embarrassing conspiracies about Linus Torvalds being "compromised" when really he seems to be a no-bullshit...
Slack built chat. Teams turned it into a distribution war. Agents are forcing the next collaboration product to compete on architecture again.
Due to political reasons, Microsoft has actively refused to add flag emojis on Windows 11. Given how common flag emojis are, it's honestly more annoying than I thought it'd be, especially when discussing international events like Eurovision where these emoji would be useful. People use these flags to denote their nationality, or a country they...
Ich habe ein größeres Experiment hinter mir, das mich die letzten x Stunden ganz enorm ins Schwitzen brachte. Das war schon sehr sportlich. Ich habe ein paar sehr essentielle Dinge für mich neu gemacht. Ich habe ehrlich gesagt keinen blassen Schimmer, ob ich alles soweit hinter mich gebracht habe. Aber ich werde euch hier mal...
The best use of AI in a product may be the part the customer never recognizes as AI at all.
We had that at our fingerprints and we never knew about it
Just remove any VOLUME_ADJUSTMENT tags.
A long-ass post detailing the problems I've personally experienced with desktop Linux.
Stop me if you’ve heard this one before. You’re starting a new job in software and you ask someone from your new team about their process and how work is prioritized. They say something about being an Agile team and working in sprints (one or two weeks in length, usually), but you look at the backlog and see tickets that won’t be worked on for several months with specific acceptance criteria and story points attached, linked to some sort of planning document that stretches out for months or even...
The joys of portability!
Learn how to disable Chrome AI on your device model to optimize performance, keep your disk space, and reduce battery usage.
Quick rant about LibreOffice on Windows.