Thoughts

This is my blog, home to my various musings. So far, I've written 67 articles on this site. Use the search below to filter by title.

All Posts

Using Serverless Redis with Next.js

Did you know it's possible to use Redis for your entire database? Hashmaps, counters, sorted lists, and even queues. Learn how to deploy a Redis & Next.js app in a few short minutes.

Past, Present, and Future of React State Management

Learn about the history of state management in React and what the preferred solutions are today.

Web Fonts in 2021

Learn the best practices for high-performance sites using web fonts, updated for 2021.

Switching to Tailwind CSS

Learn why I switched my Next.js blog to use Tailwind CSS and how it impacted performance.

How Should I Style My React Application?

Learn how CSS has evolved and explore pros and cons of different styling solutions for React.

Authentication Patterns for Next.js

Learn how to add authentication with Next.js. The guide covers custom React Hooks, protecting routes and redirecting on the server, and includes a variety of examples.

Which Back End Should I Use As A Front-End Developer?

Choosing a service to store data can be confusing and overwhelming for a front-end developer. This comprehensive guide is a choose your own adventure dive into creating your backend.

Using the Spotify API with Next.js

Learn how to authenticate with the Spotify API to fetch your top tracks in a Next.js API route.

How I Turned an Idea into $7K by Teaching Online

Six months ago, I had an idea for an online course. Today, I've taught students all over the world and made over $7,000 teaching online.

Gumroad API with Node.js

The missing documentation for making requests to the Gumroad API from Node.js.

Static Sites with Next.js 9.3 and Prisma

Learn how to build & deploy a static site using Next.js, Prisma, and a SQLite database.

Improving My Next.js MDX Blog

I revamped my personal site, adding a variety of improvements for the ideal Next.js + MDX blogging experience.

Create a Dynamic Sitemap with Next.js

Learn how to add a dynamic sitemap to your Next.js project, along with a robots.txt file for optimal SEO.

Create a Dashboard with Next.js API Routes - Fetching Data with SWR

Learn how to fetch data with SWR, a React Hooks library which improves the developer experience of retrieving data.

Create a Dashboard with Next.js API Routes - Google Analytics API

Learn how to use Next.js API routes to integrate with the Google Analytics API and retrieve statistics about a site.

Iowa Caucuses Should Not Have Used An App

Four days later, the Iowa Caucuses have finally finished. Yet, we're just now seeing the results. What the hell happened?

How To Use Encrypted Secrets With Vercel

Learn how to encrypt secrets to workaround Vercel's 4kb max limit for environment variables.

Create a Dashboard with Next.js API Routes - YouTube API

Learn how to use Next.js API routes to integrate with the YouTube API and retrieve statistics about a channel.

Create a Dashboard with Next.js API Routes - Unsplash API

Learn how to use Next.js API routes to integrate with the Unsplash API and retrieve statistics about a user.

You Don't Need A Two-Page Resume

Want a better programming resume? Limit it to a single page. See how my resume has transformed over the past five years with some actionable advice.

2019 Year in Review

Highlights and reflections on 2019 and a look forward to 2020.

Next.js vs. Gatsby vs. Create React App

Which is the best for building React applications? Explore the pros and cons for all three options to make the right choice.

Create A Newsletter with Next.js API Routes and Mailchimp

Learn how to integrate Next.js and React with Mailchimp to build a newsletter subscription form.

Why Should You Learn Next.js?

Understand the growth behind JavaScript's hottest web framework and learn why Next.js can help you build web applications faster.

GraphQL at Hy-Vee

Learn about how we've adopted GraphQL at Hy-Vee to improve developer efficiency and enhance our user experience.

Backpacking Italy

My recap of 10 days backpacking across Italy - Venice, Cinque Terre, and the Almafi Coast.

Why I Switched From CircleCI to GitHub Actions

Can GitHub Actions relace CircleCI entirely? Find out why I decided to switch CI/CD providers to GitHub Actions.

Real-Time Blog Post Views With Next.js and Firebase

Want more accurate page view counts? Learn how to track real-time post views using Firebase and Next.js.

Everything I Know About Style Guides, Design Systems, and Component Libraries

A deep-dive on everything I've learned in the past year building style guides, design systems, component libraries, and their best practices.

Going Serverless with Next.js and Firebase

Learn how to build a serverless application with Next.js, Firebase, Cloud Firestore, and easily deploy it with Vercel.

Want to Become a Better Developer? Here's How

Five simple things you can do to separate yourself from your peers and become the best developer.

How To Fix Technical Recruiting

Learn how to place engineers in this competitive market from a 45-minute keynote speech given at Talent42 in Seattle.

How To Print in React Using Iframes

Learn how to use iframes to print React components while only printing what's necessary.

Configuring Sentry for Next.js Apps

Learn how to set up Sentry to capture client-side and server-side exceptions for Next.js applications.

Stop Wasting Your Time

Studies show happiness is correlated to the amount of free time we have. So why is everyone always busy?

Creating a Monorepo with Lerna & Yarn Workspaces

In this guide, you will learn how to create a Monorepo to manage multiple packages with a shared build, test, and release process.

Purpose-Driven Work

We spend ~13 years of our life at work, so it's pretty important we enjoy what we're doing and that it connects with our core values. How can you find purpose-driven work?

Technical Recruiting is Broken

Why is there so much recruiter spam? What can we do to fix technical recruiting?

Things I've Learned Building Next.js Apps

CSS Modules, Font Loading, Polyfills, Dynamic Imports, MDX, and more!

Building a UI Component Library with Styled Components

At Hy-Vee, we reached a point where we were spinning up new teams extremely quickly and needed to maintain consistency across products.

Benefits I Care About in 2019

Should you care about game rooms and beer on tap? How important is working remotely and a flexible schedule? I give my take on what benefits are important to me in 2019.

Using Mapbox with Next.js (Instead of Google Maps)

Learn how to use Mapbox with Next.js to create a non-SSR map component that is free up to 50,000 map views per month.

Why I Create Open-Source Software

Creating open-source software makes me happy. It’s an opportunity for me to showcase my programming skills and gain experience with new languages and frameworks.

Joining Hy-Vee

Starting the next chapter of my career.

Build vs. Buy

What decisions go into evaluating software solutions?

My Essential Software/Hardware List

Exploring the tools I use daily for work and personal use.

Optimizing My Digital Content Consumption

Using RSS to aggregate and simplify how I consume media.

Analyzing 10+ Years of My Facebook Data

Which year was I the most active? Who has commented on my pictures the most? How many songs have I streamed?

Unplanned Road Trips & Expectations

Learning to say yes to the unexpected and embracing change.

The Search for Everything

Leaving my comfort zone and working remotely in Bali, Indonesia.

Using Content Marketing to Build Your Personal Brand

How to transform your online presence, drive more traffic to your website, and sell yourself.

How Stripe Designs Beautiful Websites

Examining the tips and tricks used to make Stripe's website design a notch above the rest.

Getting Started with Dart & React

Building a todo list from start to finish.

Creating a Loading Placeholder with Sass

Using animation to simulate loading text content.

Learning CSS Animations by Example

A quick tutorial for making a logo swirl.

Building My First Electron App

Learn how I created a simple application to convert and download YouTube videos as MP3s.

Calibrate San Francisco

What I learned from this engineering management conference.

Migrating to Hugo

Why I chose this static site generator and the benefits you can receive.

Life at Workiva

Learn what exactly my job looks like on a daily basis.

10 Days in Norway

Visualize my journey through the scenic lands of Norway with rich, stunning pictures and daily travel logs.

Beginner’s Guide to the Programming Portfolio

Learn how to create your programming portfolio from the ground up, including tips and tricks I learned building my own.

My Life Behind the Lens

Learn how I got into videography and where I'm headed next.

What I’ve Learned From 4 (or 5) Years of College

Reflections on my college years and advice I wish I knew from the start.

Harnessing the Google, Yelp, and Foursquare APIs with Python

A simple Python program to retrieve relevant data.

The 10 Best Bars in Des Moines

Using data to determine where to drink.

From Zero Programming Experience to Three Internships

How I preserved through college and got the job of my dreams.

Creating a Space Invaders Clone with Python

Utilizing Python and PyGame to revive a classic.