Blog
Posts on software development, careers, and craft.
I think I finally have my phone-friendly vertical video format dialed in
I think I finally have my phone-friendly vertical video format dialed in. I'm using an iPad with a Neewer teleprompter as my monitor so I can look...
Wow, the speed impact of rewriting TypeScript in Go is wild
Wow, the speed impact of rewriting TypeScript in Go is wild. Check out these differences. 9-13 times faster?! So excited to see this. Huge win for...
In TypeScript, interfaces and type aliases can "extend" each another
In TypeScript, interfaces and type aliases can "extend" each another. - An interface can extend a type. - A type alias can "extend" an interface (v...
Woah
Woah! Microsoft is rewriting TypeScript in Go. Result? 10x faster performance! https://devblogs.microsoft.com/typescript/typescript-native-port/
My M1 Mac is still wonderful
My M1 Mac is still wonderful. Easily the best machine I’ve ever owned. But the battery life is fading and it’s pricey to replace. Solution? Bought...
My new TypeScript: Zero to Hero courses are different than any courses I've...
My new TypeScript: Zero to Hero courses are different than any courses I've ever done. - Nearly all code. No slides. - Showing my face for narratio...
Theory: If you know a tech well, there are probably features you try to avoid
Theory: If you know a tech well, there are probably features you try to avoid. Thus, one of my favorite interview questions: "What features do you...
Misconception: "Separate useState is faster" Reality: When state changes,...
Misconception: "Separate useState is faster" Reality: When state changes, React renders. So, separate useState vs a single useState doesn't typical...
Tanstack form was announced a day ago and everyone is excited about it...
Tanstack form was announced a day ago and everyone is excited about it despite the fact that they haven’t used it yet. This is a powerful statement...
Problem: You need to convert a big JavaScript project to TypeScript
Problem: You need to convert a big JavaScript project to TypeScript. Solution: ts-migrate It converts all files to .ts, and adds types where it can...
TypeScript rule: The stricter we are, the safer we are
TypeScript rule: The stricter we are, the safer we are. But safety is a tradeoff. It’s not free. Excessively strict typing rules may slow us down m...
Problem: React Query’s useSuspenseQuery displays the Suspense fallback...
Problem: React Query’s useSuspenseQuery displays the Suspense fallback anytime the query key changes. What if you want to only show the fallback th...
Years ago I was a team lead at a growing startup
Years ago I was a team lead at a growing startup. My VP said “keep interviewing and hiring good developers and I’ll tell you when to stop.” So, I i...
Surprisingly, I'm using Bun instead of Node in my new TypeScript courses
Surprisingly, I'm using Bun instead of Node in my new TypeScript courses. Here's a short clip from the course that explains why. Excited to publish...
I was already a big fan of Tailwind, but I'm even more bullish now that AI...
I was already a big fan of Tailwind, but I'm even more bullish now that AI is here. Why? Because Tailwind is more AI friendly than plain CSS. With...
A full-time job sounds safe, but it’s not
A full-time job sounds safe, but it’s not. It puts all my eggs in *one* basket. In contrast, as an independent I’m diversified. I have many income...
Docs should be honest
Docs should be honest. So, here's what I think the "Sunsetting Create React App" blog post should say:
For 25 years, I’ve specialized in frontend web development
For 25 years, I’ve specialized in frontend web development. But we’re moving into a new era: I simply tell the machine what I want. I’m increasingl...
The React docs finally recommend Vite
The React docs finally recommend Vite! Great to finally see this. However, this text infers you only use Vite with React Router 7. That is unfortun...
RSC is the most painful new React API in the State of React survey
RSC is the most painful new React API in the State of React survey. Complaints: - Hard to test. - Hard to debug. - Hard to reason about. - Confusin...
My recipe for feeling great: - Good sleep
My recipe for feeling great: - Good sleep. Avoid alcohol and caffeine. Don’t eat at least 2 hours before bed. Avoid overeating. Go to bed early (ar...
Why React Query
Why React Query? WAY less boilerplate. And this image from @TkDodo doesn't even mention all the other benefits like caching, retries, etc.
Wow, just learned React Query is used about about 1 in 5 of all React apps
Wow, just learned React Query is used about about 1 in 5 of all React apps. 6 million downloads/month!
Just presented a two day React workshop
Just presented a two day React workshop. We built an app from scratch as a team. At the end of the session, one of the attendees generated the same...
The ending of an era: Create React App is about to be officially marked as...
The ending of an era: Create React App is about to be officially marked as deprecated. See ya CRA. Long live React!
2025 is going to be a big year for local first web apps
2025 is going to be a big year for local first web apps. I’m especially excited for Zero, but there are many other options. If you’re new to local...
This article is an excellent overview of why sync engines / local first are...
This article is an excellent overview of why sync engines / local first are the next logical step for ultra-responsive web apps. Better UX. Better...
Problem: TypeScript doesn't support specific string or numeric values (a...
Problem: TypeScript doesn't support specific string or numeric values (a positive number, negative number, a unit of measure like meter, etc). So,...
I've found the best way to learn is to teach
I've found the best way to learn is to teach. And the wonderful thing is, if I have no one to teach, I can pretend. So, I talk to myself - I teach...
At Codemash, a photographer saw me at lunch and asked "Is it okay if I take...
At Codemash, a photographer saw me at lunch and asked "Is it okay if I take your picture?" I jokingly said "Sure as long as you photoshop my bald s...