Races

Every race I’ve toed the line for, or I’m planning to.

  1. Race Report: 2026 Ironman 70.3 Coeur d’Alene

    Coeur d’Alene has been one of my favorite races ever since I raced my first full-distance Ironman here in 2023; it has a lovely swim, a challenging bike course, and one of the best run courses in North America. While I DNF’d that first full-distance race, I’ve had good results at the 70.3 distance here—last year I was about five minutes away from qualifying for the World Championship. With St. George discontinued, this race immediately became my A race, my top priority for the year, and the one I would peak for.

    I wanted to improve on that result, so my goal this year was simply to be faster than last year—anything under 5:30 would be a success. My stretch goal was qualifying for this year’s Ironman 70.3 World Championship in Nice, France; although the new qualification system had moved the goal posts significantly, with a good result and a little luck it was still possible one of the thirty-five slots available could roll down deep enough for me to snag it.

    Continue reading

  2. Race Report: 2026 Escape from Alcatraz Triathlon

    Escape from Alcatraz is one of the oldest triathlons in the country—it’s celebrating its forty-fifth anniversary this year—and one of the most iconic. It involves jumping from a ship near Alcatraz Island into the cold waters of San Francisco Bay for a 2.4 km swim, a 29 km hilly bike ride through the Presidio of San Francisco and Golden Gate Park, and a scenic 12.9 km run through national park land. It’s a bucket-list race—between 10,000 and 12,000 people entered the lottery for this year’s race, with 2,300 accepted.

    After signing up for the lottery late last year on a whim, I was surprised to find out I was one of them.

    Continue reading

  3. Escape from Alcatraz changes starting procedures for this year’s race. The swim start for this race seems chaotic—athletes jump from the San Francisco Belle into San Francisco Bay en masse, and the entire ship is emptied in less than eight minutes. From what I’ve read, last year’s start was more rushed and disorganized than in previous years, which led to an athlete being paralyzed after someone landed directly on his head during the swim start. Needless to say, I’ve been fairly anxious about this since I signed up for this year’s race, so it’s encouraging to hear that the organizers are making changes to this year’s start procedure. According to this year’s athlete guide, there will be three start locations on the ship instead of the usual two, which should space people out more, and race staff will signal athletes to jump only when the landing area is clear. Hopefully these changes are enough to make the start safer for everyone.


  4. T-2 weeks to Escape from Alcatraz. I’ve been reading a lot about this race to prepare for it, including this race report from Ray Maker, this course preview from two-time winner Eric Lagerstrom, and this race review by Kelly O’Mara, and suffice to say, I’m more than a little anxious about the swim. To ease my anxiety, I built a swim conditions dashboard for San Francisco Bay southwest of Alcatraz, using forecast data from NOAA’s San Francisco Bay Operational Forecast System. Not sure it’s helping with the anxiety part, but it looks cool and gives a good idea of what to expect in terms of currents and water temperature.


  5. I’m Escaping from Alcatraz next June. I entered the random drawing for a race entry for next year’s Escape from Alcatraz Triathlon on a whim, and to my surprise, got a slot in the first drawing. It’s a bucket list race, which involves jumping from a ship near Alcatraz Island into the icy cold waters of San Francisco Bay for a 2.4 km swim, a 29 km bike ride through the Presidio of San Francisco, and ending with a 12.9 km run that includes climbing 400 steps up Baker Beach’s infamous Sand Ladder.

    I’m not quite sure of what I have gotten myself into, but I’m equal parts excited and terrified.


  6. Race Report: 2025 Hole Half Marathon

    I was pretty bummed out when I had to pull out of the Hole Half Marathon at the last minute last year. It’s a fun fall race and a great way to close out my season before winter sets in, so I look forward to it every year, but with last year’s Fish Creek Fire sending the AQI into the stratosphere—235 on race day—I really had no choice but to skip it.

    We’ve been much more fortunate this year with a low-key fire season and good air quality most of the summer. I was once again looking forward to completing this race—not just to close out my season properly this time, but because it’s also the first time I would finish all three of my local half marathons. It feels like a neat little personal milestone.

    Continue reading

  7. Race Report: 2025 Ironman 70.3 Washington Tri-Cities

    Last year, after driving ten hours from Jackson Hole to Richland for the inaugural Ironman 70.3 Washington Tri-Cities, I was certain it would be a one-and-done race—it was just too far, the drive too exhausting. After finishing the race, though, I knew I needed to come back. It’s a phenomenal race in a great location, with a fast downriver swim, a beautiful bike course, and a fun, spectator-friendly run. So here I am again, a year later.

    My goal for this race was simple: Leave with no regrets. This year has been extraordinarily hard for me on a personal and professional level, and with this being my last triathlon of the year and a long, long wait until I can race again, I knew the post-race blues would hit me hard, so I didn’t want to leave Richland feeling like I could have or should have done more. If I could come up with a plan, execute it, and leave nothing on the table, I would be satisfied (and if that translated into a faster time than last year, that’d be the cherry on top). This race is also a milestone for me: It’s my tenth Ironman 70.3 since I started racing triathlons three years ago, and I wanted to leave on a high note.

    So, without further ado, here’s my last triathlon race report of this year.

    Continue reading


  8. Race Report: 2025 Ironman 70.3 Boise

    A couple of years ago Kate and I spent a long weekend in Boise, Idaho. She came to get a new tattoo, and in the meantime I hung out and explored the city. Boise is a cool town and we had a great time, but I fell in love with the Boise River Greenbelt, a gorgeous tree-lined pathway running along the banks of the Boise River. I ended up running over 50 km that weekend alone. I’ve been itching to go back ever since.

    Continue reading

  9. Race Report: 2025 Ironman 70.3 Coeur d’Alene

    There’s always something going on with the weather in Coeur d’Alene. Last year, high winds on race day forced the swim to be shortened and made for a nerve-wracking bike leg; the year before, I got hit by a gnarly surprise hailstorm on the bike; and although I wasn’t there, 2021 was the infamous “Coeur de Flame,” with a high of 38.3°C and one of the highest DNF rates on record for a full Ironman. It’s enough of a recurring theme that at the end of my race report for last year’s race, I jokingly wondered what the weather would hold for this year.

    The answer: Despite a threat of cold temperatures and rain in the days leading up to the race, it turned out to be an almost perfect day for racing.

    Continue reading

  10. Race Report: 2025 Grand Teton Half Marathon

    Last year I surprised myself on the run at Ironman 70.3 Coeur d’Alene—I came out of T2 like a bat out of hell and it ended up being my fastest run split in a 70.3 to date. There were probably multiple reasons for that, including the shortened swim, but I think one factor was the Grand Teton Half Marathon, which I had raced two weeks prior. That was also my fastest half marathon to date, and I suspect that strong run kicked my running fitness up a notch or two just in time for the race.

    This season, I’m putting that hypothesis to the test by racing not one, but two half marathons before this year’s edition of Ironman 70.3 Coeur d’Alene. The first one was the Jackson Hole Half Marathon two weeks ago, so without further ado, here’s a quick race report about the Grand Teton Half Marathon, my last running race before heading back to Idaho later this month.

    Continue reading


  11. What’s the water temperature at Lucky Peak Reservoir in July? Ever since the return of Ironman 70.3 Boise was announced, I’ve been wondering what the water temperature would be like on race day. I know in the previous iterations of this race, when it was in early June, it was a very cold swim: In 2011 the water temperature was 11°C, and in 2012 it was so cold, people wore wetsuits on the bike, which was shortened to 24 km. So far I haven’t been able to find a reliable source of historical water temperatures at Lucky Peak Reservoir to look up what it might be like in late July, but today I got an email from Ironman that states (emphasis mine):

    The IRONMAN 70.3 Boise 2025 swim course offers athletes a refreshing and scenic 1.2-mile swim in the pristine waters of Lucky Peak Reservoir. Starting and finishing in the easily accessible Barclay Bay area, this single-loop course provides a calm and clear environment, ideal for both seasoned swimmers and first-time triathletes. The reservoir’s typical water temperatures in late July range from 64°F to 70°F (18°C to 21°C), making it comfortably wetsuit-legal for most participants.

    That’s not so bad, that’s downright pleasant! Anyway, just thought of dropping that here in case anybody else needs to Google it.


    Update: The water temperature on race day in 2025 was 19.6°C.


  12. Race Report: 2025 Ironman 70.3 St. George

    I wish I had known at the time how good I had it the first time I raced in St. George. I struggled with the ice-cold swim and knee pain on the run, but the weather was absolutely perfect that day and I cruised to a sub-6 finish, in spite of the challenging course. It quickly became my favorite race.

    I got a taste of the real St. George last year. I went with an aggressive goal of improving on that sub-6 result; I was confident I could achieve that despite the sweltering heat on race day, with just some minor tweaks to my pacing plan. I was wrong, so wrong. The heat clobbered me on the bike and I completely fell apart on the run—it was my worst result in a 70.3 to date. Of course, I immediately signed up for this year’s edition, which as it turns out, will be the last one for now.

    So, one last dance in St. George. I hoped for cool weather again, but as race day approached it became clear that wasn’t in the cards—the weather forecast for race week saw steadily rising temperatures, with a blistering high of 34.4°C on race day, even worse than last year. With that, my race goals went from “personal best” to “just finish,” with a stretch goal of “no regrets.”

    Read on for my last race report from the final edition of Ironman 70.3 St. George.

    Continue reading

  13. Gates of Yellowstone Triathlon. I just found out about this new locally-organized race in Cody, Wyoming, just outside of Yellowstone National Park, basically in my backyard (okay, it’s a five-hour drive, but as Wyoming distances go, that still counts as “my backyard”). I immediately signed up for the Olympic-distance race; they also have a sprint-distance, and an Olympic relay. It’s on August 16th, which worries me a little because of the usual summer smoke, but I’m looking forward to it nonetheless.


  14. Ironman comes to New Mexico. Ironman just announced a “festival weekend of racing” next year in Ruidoso, New Mexico, which includes an Ironman 70.3, a 5150 race (Ironman’s branding for an Olympic-distance race), and a sprint-distance race.

    A 70.3 in a scenic mountain town… at about 2,000 meters of elevation… on my birthday? Yes, please. The bike course is right up my alley too, an out-and-back where the last 45 km are uphill with about 730 meters of elevation gain. If it wasn’t a 17-hour drive from here, I’d sign up immediately, but I’m still tempted. Update: Oh, who am I kidding. I signed up.


  15. Race Report: Carrera San Silvestre 2024

    Kate and I visited Mexico City for the first time in 2015. We were here for the holidays and to visit family, but one of the things I remember from that trip was standing in the middle of Paseo de la Reforma on New Year’s Eve during some kind of race, photographing the runners. I had no idea what race that was and didn’t particularly care—I just thought it was a cool thing to photograph, since many of the runners were in costume, such as this guy dressed as El Chapulín Colorado.

    Continue reading


  16. Race Report: 2024 Ironman 70.3 Washington Tri-Cities

    Last fall, Ironman announced a new race in the Pacific Northwest: Ironman 70.3 Washington Tri-Cities, in Richland, Washington. I signed up almost immediately—the venue looked great and I was thrilled to have one more race within a reasonable driving distance.

    A chill end-of-summer race seemed like a great way to end my season, especially since this one has had a few ups and downs: I had my worst result to date at Ironman 70.3 St. George; I ran my fastest half marathon ever in June, but was forced to pull out of Ironman 70.3 Boulder a week later thanks to COVID; I had a great run at Ironman 70.3 Coeur d’Alene, but the swim was shortened; I stupidly almost derailed my season at a trail running race; and I finished my first full-distance race at Ironman Canada, but with a huge asterisk because the swim was canceled. Given that this was my last triathlon of the year, my only goal was to end the season on a high note—just give it everything I got and try to get the best result possible, hopefully at a complete race.

    Long story short, it was a success. Read on for my last triathlon race report of this year.

    Continue reading

  17. Ironman 70.3 is coming back to Boise. Ironman just announced the return of Ironman 70.3 Boise, which ran from 2008 through 2015. This would be the closest race to me, and Boise is such a nice town, I’m very tempted to sign up for next year’s race—running along the Greenbelt is so pleasant.

    I’ve been reading some race reports from back then, such as this one from DC Rainmaker in 2011, and it sounded like a tough race, starting with a swim in 11°C water. It might be tough in a different way next year, though: the high in Boise in late July is usually above 38°C and by then smoke season is in full swing. I’m still tempted.




  18. This year’s Ironman Canada will be the last in Penticton. Not entirely surprising; I thought the writing was on the wall when they unveiled another Ironman Canada in Ottawa, but they just made it official today. This is a huge bummer for me personally; I don’t think there are any other full-distance races that are within a reasonable driving distance, and I don’t want the hassle of flying with my bike and gear. This puts a lot more pressure on me to finish this year’s race—I might not have another shot at a full Ironman anytime soon. It’s do or die.


  19. Race Report: 2024 Ironman 70.3 Coeur d’Alene

    After my disappointing result in St. George last month, I realized that the goals I had set for that race were a little too ambitious. That race is too early in the season for me to treat it as an A race, and I lost sight of my actual goal for this year, which is finishing Ironman Canada in August. That made me reassess what I wanted to get out of my next two races, in Boulder and Coeur d’Alene. Instead of treating them as races with specific results or ambitious times in mind, I decided to treat them as dress rehearsals to test my gear, pacing, nutrition and overall racing strategy before going to Penticton.

    Continue reading


  20. Race Report: 2024 Ironman 70.3 St. George

    Howdy, and welcome to my third season of racing triathlons. This year, I’m starting my season again with Ironman 70.3 St. George, a race I did for the first time last year and enjoyed enormously, despite some issues during the swim and the run. I wanted to come back and try to improve on that effort.

    Last year, I managed to pull off a sub-six finish, with a total time of 5:55:12, so my goal was simply to be faster than that, with a stretch goal of finishing in 5:30. That seemed attainable if I shaved ten minutes of the bike and run, plus a few more from the swim and transitions, but I also knew it was very aggressive; I got lucky last year with the great weather and cool temperature, and it seemed unlikely that would happen again. Sure enough, the forecast this year indicated a high of 31°C on race day, but I was confident I could still beat last year’s time at least.

    Spoiler alert: That, uh, did not happen.

    Continue reading

  21. Race Report: 2023 Hole Half Marathon

    This year’s race season didn’t go the way I hoped at all. After a strong start at Ironman 70.3 St. George in June, I failed to finish Ironman Coeur d’Alene and had to drop out of the Echo Triathlon in July to deal with my knee pain. My make-up race, Ironman Canada, was canceled at the last minute due to the wildfires in British Columbia. After all that, I was looking forward to this year’s Hole Half Marathon, so I could at least get one more race in the books this year and finish the season on a high note. It went pretty well, so without further ado, here’s my last race report of the year.

    Continue reading

  22. Race Report: 2023 Ironman Coeur d’Alene

    Well, this is it. After training for it since November, I finally raced Ironman Coeur d’Alene, my A race of the year and my first attempt at a full Ironman. I didn’t have any specific time goals for this race, just finishing, so the goals I had set for myself were simply:

    1. Don’t drown
    2. Don’t crash
    3. Don’t bonk

    Unfortunately, things did not go according to plan, and despite my best efforts, I was not able to finish the race. Read on for what may be my last triathlon race report of this year.

    Continue reading


  23. Race Report: 2023 Ironman 70.3 St. George

    After a long and brutal Jackson Hole winter, it’s finally race season again, and I just finished my first race of the year, Ironman 70.3 St. George. I chose this as a B event for a few reasons: it’s within driving distance of where I live, it looked like a tough challenge, and I thought it’d serve as good race prep before my first full Ironman next month in Coeur d’Alene.

    I originally planned to come to this race prepared to put in a decent effort and improve on my 6:14 finish in Boulder, but after facing some challenges with my swim training over the winter, and a potential knee injury in the past couple of weeks, I ended up downgrading my race goal from “sub-6 finish” to “just finish.”

    Despite that, the race went both better and worse than I expected—read on for my first race report of the year.

    Continue reading

  24. Race Report: 2022 Ironman 70.3 Arizona

    After a year of waiting, and six months of training, including two triathlons and two half marathons, I finally raced my A race for this year, Ironman 70.3 Arizona. I came expecting a difficult triathlon in the scorching Arizona heat and ended up experiencing a much different race, but I’m very satisfied with the results nonetheless; I raced about as good a race as I could have hoped for given the circumstances. Read on for my final race report of the year.

    Continue reading


  25. Race Report: 2022 Ironman 70.3 Boulder

    One thing I never expected after racing my first triathlon in Bozeman back in June was that it would leave me so hungry for more. I couldn’t wait for my next race, Ironman 70.3 Arizona in October, so I made a last minute decision to sign up for Ironman 70.3 Boulder this past weekend. I’m just halfway through my training plan for Arizona, and signed up for Boulder too late to do a proper taper, so I considered it a B race, with the goal of gaining more experience and testing my pacing, gear, and nutrition.

    Continue reading

  26. Race Report: 2022 Jackson Hole Half Marathon

    Today I raced in my second B race this year, the Jackson Hole Half Marathon, as part of my prep for Ironman 70.3 Arizona in October. I went in with a few goals:

    • Test my nutrition strategy.
    • Test how the pace suggested by Stryd felt.
    • See if I could actually pace myself properly.

    Timewise, I didn’t have any specific goals. Anything under two hours would have been fine, with 1:45 as a stretch goal.

    Continue reading