Projects
One of my goals is to launch at least one new project every year. I’m making small bets and staying comfortable with failure.
2025
Don’t Stay Stuck: A Debugging Guide for Rising Engineers. Debugging is one of the most difficult programming skills. It’s also a skill that can be learned, and that’s the purpose of this guide.
Today I Learned (Blog): A website version of my daily learnings, published right here on the blog.
2024
test_visualizer: A Ruby gem that helps visualize your test architecture.
“Technical Book About Testing”: I wrote a 30K-word draft of a technical book about automated testing. It’s on pause while I do other things.
2023
Maine JS: I took over as organizer of this Meetup in 2023. Along with my co-organizers I’ve rebranded, reinvigorated, and grown group membership 5x through a series of monthly events.
Yes, It’s a Problem: Chat-GPT-powered hobby application that confirms all your fears. Ask it about the risks of waterskiing and it gives you an article titled “Hidden Dangers of Waterskiing: The Truth About the Risks and Injuries for Beginners”, an article-length body, and an accompanying image via DALL-E.
2022
My Newsletter: As of 2025, this is an additional channel for my blog posts, with some subscriber-only thoughts and content.
2021
React Explained: I launched this React-focused newsletter during the pandemic, publishing thirty issues about the latest news and advancements in the community. Revue has since shut down and issues are no longer available on the internet.
Hashshake: A small application to foster communication and camaraderie between remote teammates. It randomly chooses pairs of coworkers to meet for informal, 20-minute conversations via a Slackbot message.
2020
FinTech Startup: For a year I moonlighted as CTO and co-founder of a FinTech startup. We built an MVP web application in React and TypeScript and an API in Ruby on Rails. We built something I am proud of and I learned a lot.
The Bell: The Bell was a pandemic-inspired social-distancing art project I created and maintained from March–October 2020. Over the life of the project, The Bell was clicked over 4K times.
2018
Game of Life: This is my React/TypeScript implementation of the classic cellular automaton and programming puzzle, Conway’s Game of Life.
SQL Workshop: Jack Christensen and I built this full-day, hands-on SQL curriculum for the Code Platoon programming bootcamp. We’ve taught it live about ten times.
JavaScript Equality: I built this React/TypeScript application to demonstrate the difference between twoquals and threequals in JavaScript.
2016
PG Casts: PG Casts is a series of screencasts about PostgreSQL. My coworkers and I built it together during downtime at Hashrocket. I helped create the idea, build the site, and wrote, recorded, and edited six screencasts as one of the founders.
Capybara::Webmock: A Rubygem to speed up your integration tests. Co-written with Dillon Hafer.
2015
Today I Learned (Application): TIL was my apprentice project at Hashrocket. It has grown into a popular developers blog with over 3K posts, millions of page views per year, and the top-ranked answers on Google to many an esoteric question.
Ceramic Nation: Ceramic Nation was an auto-generated internet novel, one chapter per day, supported by a Ruby gem I wrote called Remarkovable. From 2015-2022 it produced nonsensical, occasionally inspired prose informed by a corpus of classic literature.
Today I Learned (Github): ‘Technical articles; needless words omitted.’ I’ve posted short technology learnings here since 2015.
cap-driver-benchmarking: Benchmarking the performance of the drivers available for use with Capybara.
2014
jakeworth.com: The technical blog you’re reading now. Learn, write, repeat.
Talks
I’ve delivered dozens of technical talks across the country. Here are my favorites.
Observing Change: A Gold Master Test in Practice
Tests try to observe change. But are some systems too big to observe them all? What if we need to test a function with a very complex output?
In this talk, we’ll explore a Gold Master test– a special test for evaluating complicated legacy systems. We’ll look at how this test takes an input, such as a production database, runs it through a transformative function, and then compares the output to an approved version of the output.
Testers of every experience level will leave this talk with a new technique for evaluating complex environments, and a broader conception of what a test can be.
Format Your Elixir Code Now
Elixir master now contains a formatter that automatically formats your code to match a community style. Which might lead you to ask: Why should I use it? How do I set it up? What is it going to do to my code?
Wonder no more! In this talk, we’ll seek answers to these questions. We’ll locate Elixir’s moment in the history of this idea, review the best arguments for and against autoformatting, and witness how it changes a real OSS Elixir/Phoenix application.
Elixir mixologists of every experience level will leave this talk with a better understanding of this important tool, and a deeper grasp of the persistent debate around code style.
How Building a Guitar Made Me a Better Programmer
In the middle of the COVID-19 pandemic, I built an electric guitar. I chose the project to keep myself busy, and I learned something: programming and luthiery have a lot in common.
In this talk, I narrate the build, from unboxing to first strums. I share the lessons I learned over the months, and how they echoed hard-won insights I accumulated over almost ten years of riting code.
Programmers of every experience level will leave this talk reflecting on the professional value of their hobbies and inspired to build their guitar, whatever that means to them.
Functioning in React: A Deep-Dive into useState
The State Hook is now a core part of React. But what does it mean for a function to have state? This talk explores this question, touching on the history of state, the source code behind the hook, and the impact stateful functions have on the code we write.