blog posts

on the world of frontend engineering

Drag to Select

Drag selection is the defacto pointer multi-selection. In this guide we'll recreate native-like drag selection in react.

Interactive dropdown menus with Radix UI

Dropdown menus are great until you have interactive content. This guide combines dialogs and dropdown menus for a simple interactive dropdown flow.

The Virtue in the Workaround

How embracing workarounds isn't such a bad idea.

Type the Word

I created an app for typing through the Bible. Here is a technical breakdown of all the little details.

Desire is for the year, discipline is for today

How to persist through creative struggle

exploring JS vs CSS animation performance by recreating the sidebars of Notion, Linear, and Gitlab

React treeview component (pt. 3)

A bonus post animating our treeview ✨

React treeview component (pt. 2)

What keyboard shortcuts belong on a treeview? What do the ARIA guidelines recommend? Building on a previous post, we answer those questions and make our treeview accessible.

React roving tabindex

What is a roving tabindex? When do you need one? How can you create one in React? In this post, we answer those questions and walk through a simple example of a roving tabindex.

React treeview component (pt. 1)

What is a treeview? How should you structure one? How do you create one in react? In this post, we answer those questions and create a mouse interactive treeview.

React toggle group component

The togglegroup is a modern variant of the radiogroup UI pattern. In this post, you’ll learn how to create one that is accessible via a roving tabindex.

React disclosure component

The disclosure is the best UI pattern for answering questions. In this post, you'll learn how to create one with a height animation via framer motion.

React slider component

Creating a slider with a range input sometimes just doesn't cut it. In this post, you'll learn how to make one from scratch with framer motion.

Vercel tabs component

How to recreate the vercel tabs component with CSS, react transition group, react spring, and Framer motion.

Removing the toil from my blogging experience

how I write in Notion, own my own content, and do as little manual work as possible

The part of productivity that I was missing

how I finally realized that rest is important and that there is a limit to what I can do

Avoiding conformity and doing art

how an extensive software process can impede the real work

Fear as a motivator

how it's fallen short for me and what I am choosing instead

and staying human in your job search. How to not become a zombie.

Software job searching 101: The how-to

of all the practical stuff involved in getting interviews, offers, and negotiating well

Facing the resistance

How to not preoptimize your job search and just apply.

Cool jobs vs. Not so cool jobs

How to identify what is important in your next job and focus on getting there

Shotgunning vs Sniping job applications

I have found two common job searching pit-falls. Here is how they worked for me, and my two cents on how to reach a large number while still differentiating yourself.

Telling a story vs. Telling the truth

Job searching is about telling your story. This is a guide to being honest yet convincing in how you portray your experiences.

A digital garden. Not a blog

It's not chronological, not on a high cadence, never finished, and will always value transparency over all.

How to stop lurking

As a long-time lurker, I have recently discovered why I fall into it and great reasons to stop. The world needs your contribution!

I Created a Blog

It took a lot for me to settle on creating a frontend engineering and web animation blog. Here is the why and what about of that decision.

Subscribe to the newsletter

A monthly no filler update.

Contact me at