My latest posts

Team member archetypes

Archetypes are often used to describe a group of users with similar needs, priorities, and general outlooks. Archetypes can be a helpful user research tool, but they can also be useful when thinking about teams. Here are some of the archetypes I've observed on high-performing teams.

TIL: Optimizing WebP files with cwebp

How to cut a WebP file's size in half.

TIL: Using ffmpeg to create looping videos

Building a scrappy semantic search for my reading highlights

How I built a semantic search feature for my reading highlights. It turns out you can go surprisingly far with just storing embeddings in a file in S3.

A JavaScript Developer's Guide to Python Tooling

Drawing parallels between Python and JavaScript tools: virtual environments, dependency management, linting, code formatting, testing, and documentation.

Use the U.S. Web Design System and focus on bigger challenges

Instead of creating a design system from scratch, use the U.S. Web Design System to save time and resources. Learn how to apply your own branding to a system that’s already compliant and accessible.

Read this post on

Repeatable, sustainable processes for building benefits systems

Building government services is often urgent work. Reusing, expanding, and iterating on proven practices is essential to quickly and effectively meeting people’s needs. It can also help the teams that do this work thrive.

Read this post on

Using state machines to define and visualize routing logic

State machines can be a framework and language agnostic option for defining and visualizing the routing logic in your applications.

A mental model for React props for beginners

How React Props relate to HTML attributes and JS functions.

Form design approaches for downstream effects & nonlinear navigation

How we approached nonlinear navigation, answer changing, and more challenges when building a new eligibility form for

Read this post on

Structuring a complex eligibility form for

How we determined the sequencing of questions and design patterns to break a complex form into digestible chunks.

Read this post on

Providing help and guidance to applicants

Our design team reimagined the end-to-end help experience and established help content design patterns for the entire site. The primary goal: to respectfully and clearly guide people through a deeply personal process that determines how they care for themselves and their family.

Read this post on

How I export, analyze, and resurface my Kindle highlights

Using a serverless approach, natural language processing, and SMS.

Building a design system for

Alongside the Centers for Medicare & Medicaid Services, Nava created an open source design system for Using proven approaches to building scalable, developer-friendly, and flexible design systems bolstered our work.

Read this post on


Things shaping my perspective as an engineer

The Five Dysfunctions of Teams highlights.sawyerh.comBezos on memos, messy meetings, and why powerpoints are bad lexfridman.comHTML Web Components blog.jim-nielsen.comA year working with HTML Web Components hawkticehurst.comEstimation isn't for everyone open.nytimes.comTowards an understanding of technical debt laughingmeme.orgThe 3 D's of feature leading frontendmastery.comThe Art of Code Comments - Sarah Drasner youtube.comView the books I’m reading