Dev Blog Posts
Technical posts and tutorials covering a range of languages, technologies, and concepts.
Premature Optimization: Code First, Optimize Later
Premature optimization may be hurting the quality of your work. Focus on writing legible code first; optimize it later if you need to.
React, Iframes, and a Back-Navigation Bug
If an iframe re-renders in React, it can interfere with back navigation in your browser. You can fix this by unmounting the iframe.
Make Atomic Git Commits
It can be tempting to lump unrelated code changes into a larger commit, but atomic Git commits are more maintainable.
How to Format Code on Save in VS Code with ESlint
CRLF vs. LF: Normalizing Line Endings in Git
Line endings can differ from one OS to another. Learn the history behind CRLF and LF line endings and how to enforce line endings in git.
How Writing Can Help You Become a Better Developer
Writing is likely one of the last skills you associate with software development. But it plays a key role in a developer's life and can help you build a more successful career.
Remember to Set a Width and Height on Your Images
Layout shifts can be annoying and may even hurt your page's ranking, but you can minimize them by setting a width and height on images.
Why I Don't Like Tailwind CSS
On paper, Tailwind CSS sounds like a great idea. In reality, it suffers from the same problems that it tries to solve.
SVG Tutorial: How to Code SVG Icons by Hand
Learn the basics of SVGs so you can code your own SVG icons by hand, without always relying on icon libraries.
Creating a Vertical Rhythm with CSS Grid
Margins are what you typically use to define a layout's vertical rhythm. But CSS Grid offers a better alternative.
Subtle Web Accessibility Issues (And How to Fix Them)
You've scored 100 on Lighthouse's accessibility audit. But is your site actually accessible, or have you overlooked more subtle accessibility issues?
Be Careful with Async Functions that Return Booleans
Suppose an async function returns a boolean. What happens if you check the return value without awaiting it?
Dynamic Tag Name Props in React (with TypeScript)
Sometimes, a React component needs to allow users to render a custom tag. Here's how you can pass dynamic tag names as props.
What Are Higher-Order Components in React?
Higher-order components are one of React's most popular design patterns, allowing you to define reusable stateful logic and create powerful, flexible components.
6 Ways to Undo Changes in Git
If you ever find yourself in a sticky situation with git, don't panic. Here are six simple ways you can undo changes in git and clean up your commit history.
Does Web Performance Matter? It Depends.
Some big brands have a slow page load speed, but they still rank well on Google. So does web performance even matter?
Creating Responsive Aspect Ratios in CSS
Learn how to give any element an aspect ratio in CSS, using the modern aspect-ratio property or a trick with percentage padding.
Optimizing Images for the Web with WebP and Lazy Loading
Blue People Illustrations, or How to Kill a Brand
There's a recent trend in web design of using illustrations of blue, generic, faceless people. And it's killing brands.