Race Reports

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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


  7. 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

  8. 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

  9. 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



  10. 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


  11. 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

  12. 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

  13. 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


  14. 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

  15. 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


  16. 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

  17. 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