Profile Picture

Hello, Vesta

My first day at Vesta was three weeks ago—long enough for me to have some initial thoughts about joining.

Read More →

Automatically Fixing Relative Imports with ESLint

I was recently working in a fairly new React/TypeScript codebase that was growing quickly. Because of its rapid growth, it used the default of relative paths for all local imports. This was becoming a problem for developer experience: relative paths make it harder to reorganize files in a codebase, since the developer making that change will also need to update all of that file’s imports.

Absolute imports were the answer—I needed to both set up TypeScript to support them and transform all of the project’s relative imports into absolute ones.

Read More →

September 2021 Review

September was eventful!

I spent the first part of the month camping in Glacier National Park and driving back to Atlanta. Glacier was gorgeous and a great way to end my time in Montana. We drove back through the northern route, stopping in eastern Montana, Mineapolis, Madison, and Louisville. It was definitely strange re-entering civilization after months in sparsely populated Montana.

September 24th was my last day at Ladder. The following Monday I joined Vesta as one of the first handful of software engineers. I’m sad to leave Ladder—I enjoyed my time there, learned a ton, and made a bunch of friends. But I’m super excited to build the foundational pieces of an extremely young company!

My pre-season training is well underway—my first GPP block finished up this week. This season, I’m working with Coach Evan Gregory on both programming and technique. I’ve already learned a ton from him in the short time we’ve been working together, and I’m really excited to see how this season plays out!

Goal Tracking

  • 🟢 Get 12% faster. I’m resetting this goal to be 2% faster than the 10.79 I ran at the end of last season—that’s a goal of 10.57. I doubled my goal mainly because I managed the 10.79 while injuring myself.
  • 🔴 50% less discretionary spending. My discretionary spending was 22% higher than my 2020 average. Camping, a week-long road trip, and some furniture purchasing will do that!
  • 🟡 One hour of solitary free time a day. This has been improving, and I expect it to continue to get better: my work schedule promises to be a lot more flexible with this new gig.
  • 🟡 Twice-weekly live conversations with friends. Although I didn’t manage to do this while traveling, since I’ve returned home to Atlanta I’ve gotten back into the routine.
Read More →

Am I Getting Faster Over Time?

Am I Getting Faster Over Time?

Last winter, I published Temperature and Speed, which looked at the correlation between my 30-meter fly times and the ambient temperature. Since then, I’ve gathered a lot more data: I have 49 Freelap-timed fly workouts and 245 reps across 11 months. I’ve also collected other metrics to help answer some questions I’ve had about speed:

Did I get faster?


There’s a relatively significant negative trend line between time of the year and rep—it sure looks like I got faster, at least at 30-meter flies, over the past year. This definitely wasn’t clear in my day-to-day workouts: my per-workout graph looks really spiky:


The lesson here is to not read too much into individual reps and workouts—zooming out onto the overall trend is better.

Read More →

JOTA: syncing MFA app for Apple devices

JOTA: syncing MFA app for Apple devices

Multi-factor authentication is becoming increasingly prevalent. Many companies’ information security policies require employees to use MFA when available—and it’s just good practice.

Read More →
← PreviousNext →