Balance > nothing more to take awayYou’ve heard that good design is not when there’s nothing more to add, but when there’s nothing more to take away. A good design puts every…Aug 27, 2022Aug 27, 2022
Themes are about accessibility first, personalization secondAlthough custom themes and variations are often responsible for broken UI states like the one below, developers love themes. Why…Jul 14, 2022Jul 14, 2022
Bus factor is overrated. Code ownership is underratedCode ownership has clear downsides. Even if a project is successful, having an owner gives you a single point of failure. Bad engineers…Jul 12, 2022Jul 12, 2022
What might a web browser from the future look like?Managing tabs is tricky once you have hundreds of tabs. You’ll have people on one side telling you to just close your tabs, and people on…Jul 11, 2022Jul 11, 2022
SSR mismatch adventures in Next.jsI went back to update my personal site, and it was quite an adventure digging into some of the bugs.Jul 11, 20222Jul 11, 20222
Accidentally-triggered Chrome local overrides made me think Next.js caching was brokenIn trying to debug server-side rendering issues (SSR), I ran into another problem:Jul 8, 20222Jul 8, 20222
My frontend wishlistFix the problem of scopes. There’s often this tradeoff of polluting one namespace or another. Over the last few years I’ve seen the value…Sep 27, 2019Sep 27, 2019
Encrypting imagesIn my journey to understand encryption, I learned to appreciate just how difficult it can be to mathematically convert a pattern of data…Mar 10, 2019Mar 10, 2019
Thoughts on choosing between plain JS objects and classes.I haven’t created a class in years. There’s only one exception: React. Classes are the idiomatic way to create a stateful components…Jan 11, 20191Jan 11, 20191
Categorizing CodersDuring my time as a programmer I’ve seen a shift in how programmers are categorized. I think we’ll see more in the future. All large…Oct 24, 2018Oct 24, 2018