Background
I had one primary goal that I wanted to accomplish during the 2025 triathlon season. For two years, I’ve been getting closer to finishing an Ironman 70.3 in under five hours. Coming into this year, my PR was 5:08:37. A day didn’t go by where I didn’t think about the need to find a way to get at least 8 minutes and 38 seconds faster.
As North Carolina approached, I was feeling antsy. This would be my final 70.3 of the season. If I didn’t get it done in Wilmington, I’d have to go through the winter with unfinished business.
I don’t know if I’ve ever had a more focused block of training leading into a race as I did this summer. 4:59 was on my mind every single day. I even did silly superstitious things like waking up at 4:59am instead of my usual 5:00am on weekdays.
Luck even seemed to be on my side. This was my healthiest triathlon season ever. From March when we did 70.3 Puerto Rico as a relay team all the way to North Carolina, I never had any injuries other than the occasional sore muscle here and there. I never even got a cold.
As race week approached, I had high hopes and expectations that I’d be able to finally conquer sub-5.
Race Week
Normally, I love race week. Yes, there’s always some stress with travel and logistics, but in a lot of ways, race weeks are the celebration of all the training that’s now completed. They are usually some of my happiest and most fun days of the year.
I didn’t feel any of that here — at all.
There was very much this weight of “if not now, when?!” hanging over me all week.
Between the layout of the course itself, how my training had gone, and how perfect the weather looked, there was no reason not to expect my fastest race ever. While a reasonable prediction, that was also a lot of pressure! PR or bust? That’s spooky!
Traveling by air with my bike is not for the faint of heart…especially during a government shutdown! I’m always nervous when I leave my bike case at the oversize bag drop-off hoping all goes well on its journey.


Thankfully, everyone and everything arrived safely in North Carolina…including my bike!
Race Day Eve had a long list of things to do. I had to rebuild my bike. There was a practice swim in the Intracoastal Waterway. Next, I had to drop my bike at T1 nearby. Then we had to drive over to downtown where T2 is located to drop my run gear. In terms of logistics, this race is certainly on the complicated side. It took until early afternoon to get everything done.
But finally, everything was in place. This was the least stressed I’d felt all week. (Maybe all month? Maybe all summer?) The only thing left to do now was race! In spite of having scary goals for this race, I still managed to fall asleep quickly that evening. Not only that, I didn’t toss and turn either. I slept really well!
Race Morning
Of all the dumb things about this sport, the early alarm on race day is really up there as the dumbest. This race was even earlier than most because after setting up my bike in T1, we would have to hop onto a bus and ride out to the swim start.
My alarm was 3:15 a.m. That’s basically the middle of the dang night!
There was thankfully no race morning drama in transition. That’s something to celebrate! No last minute mechanical issues, nothing forgotten, and even the port-a-potty visit was efficient.


It was a chilly wait for the race to start. But it also felt liberating. There was literally nothing left that I could do. I could finally stop thinking and dreaming about an opportunity to go sub-5. It was finally time to go DO IT!
Swim
- Time 32:19
- Distance 1.2 miles
- Pace 1:29/100 yd
- AG 97/212
- Men 857/1795
- Overall 1149/2617
- Weather: Mostly Clear with sustained winds of 10-20 mph from the north
- Water Conditions: 1-2 foot chop
- Water Temperature: 68°F
- Air Temperature: 46°F
- Current: Yes, incoming tide
- Wetsuit: Yes
Among the many things I did this summer to help punch through that sub-5 barrier was I started taking swim lessons and going to a masters class. Not only is my form a little bit better than in the past, this is a salt water swim in a wetsuit with an incoming tide.
Of those 8 minutes I needed to shave off of my PR, I hoped to gain several of them here in the swim.
This is a great swim course. I never felt cramped except at the turn buoys. It can be a little difficult to sight the buoys among all the houses along the coast. But otherwise, it’s just a straight shot towards T1.

The incoming tide was noticeable…and very welcome! The only callout is that it’s a bit different of a sensation compared to a downriver swim like in Chattanooga. The tide came at an angle to the course. If you aren’t regularly sighting, that tide will actually push you off course. It certainly helps speed us along, but you also need to be aware of it compared to a downriver swim.
At the end of the swim, there are a bunch of ladders extending into the water. While there are volunteers there to help, it’s mainly on us to actually get up to the dock. I climbed up carefully and only then did I give myself permission to glance at my watch.
32:19!

Last season, I was averaging a 70.3 swim in 42 minutes. Last month in Louisville, I’d gotten it done in 35 minutes. Now, 32 minutes and change? Awesome. There was still much work to do today, but with a tip of the cap to the tide, a 32 minute swim certainly meant sub-5 was still in play.
Transition 1
- Time 5:53
As far as transitions go, this one is a bit complicated. It’s also a long run!
From the edge of the water to my bike was about 0.4 miles. It’s a run on concrete, then rough asphalt in a parking lot, across a five lane road, and then through grass to get into T1.
Most athletes just ran barefoot. But I was among the minority that left a pair of shoes just beyond the swim exit. In a normal race, there’d be no reason to waste time putting on shoes. But I decided it was worth the hassle here.

I didn’t relish the idea of running barefoot on that asphalt. Ironman does put down carpet over some of the rougher areas, but it turns into a bottleneck of athletes. The carpet is only two people wide at most. In my shoes, I skipped the crowded carpet entirely, sprinted down the asphalt, and ended up passing a couple dozen people on our transition run.
I didn’t know it at the time, but my speed in T1 (and again later in T2) had a very real impact on rank in my age group. My overall place in the race was higher than where I finished in each of the three individual disciplines. Transition times can have a measurable impact on the day as a whole!
But for now, it was time to bike.
Bike
- Time 2:35:07
- Distance 56 miles
- Pace 22.0 mph
- AG 37/212
- Men 262/1795
- Overall 285/2617
- Weather: Mostly Sunny with sustained winds of 10-20 mph from the north
- Temperature: 49°F
- Course Conditions: Mostly asphalt
- Terrain: Flat
- Elevation Gain: 643 feet
Up until this point, it felt like everything had been going to plan. But this is where things started to go sideways in a hurry.
I wasn't oblivious to the fact that it would be 50ºF into a headwind during the early miles of the bike. I wore arm sleeves which had kept me comfortable two years ago when we raced Ironman 70.3 Indian Wells in mid-December. However, with each passing mile, I was getting colder and colder. Any warmth from the sun was still an hour away before it rose above the picturesque Carolina pines.
My fingers and toes were starting to go numb. It made shifting much harder. In hindsight, maybe I should have worn gloves? But I just was so surprised this was an issue. Indian Wells was a colder race. What is going on here?

As much as I tried to pedal through it, I was shivering and I could feel my body tensing up because of the cold. Not only was this unpleasant, I was horrified at what the metrics on my Wahoo bike computer were showing.
I was only averaging about 200 watts, when I normally average a minimum of 220 in a 70.3. Between a lower power and the headwind, my average pace was settling around 19 to 20 mph. At this pace, I was going to finish the bike ride in about 2 hours and 50 minutes. To have any chance at sub-5, I needed to finish under 2:40…and realistically closer to 2:30. I was on pace for a terrible race.
As I write this, I just stared at the blinking cursor here in Google Docs for a minute. I’m struggling to find the words to describe how horrible this moment felt emotionally. I’d put so much work into preparing for this race and not once had I considered or worried that the cold would be my undoing. I kept pedaling, but I was so upset.
Around mile 30, we turn off the main highway for 10 miles of rural roads among the endless pines. I actually was considering pulling out of the race. My feet and hands felt numb from being so cold. Honestly, it felt embarrassing. The air temperature was in the mid-50s and I was considering pulling out of the race because I WAS COLD?
The road here had no shoulder, so I pulled my bike over at a driveway, unclipped, and stood there for a second. Thanks to Google Street View, I can actually show you where I stopped.

I started making fists with my toes like John McClane in Die Hard. I was just trying to get some kind of feeling back in them.

I was so fucking angry with myself. I couldn’t believe I was going to have to sit through a long cold winter having failed at sub-5. But I decided I didn’t want it to end like this, on a lonely empty road out in the middle of nowhere North Carolina.
I got back on my bike and began to pedal on. Strava says I stopped for a little over a minute.
Over the next 10 minutes, my power output went from around 200 watts to 242 watts. I still felt like shit, but honestly, it might have done me some good to be so angry at myself because I was thinking less about the cold. My average speed increased from 20mph closer to 26-27mph.
At mile 45, we turn back onto the highway and begin our return to Wilmington. I was finally out of the tree tunnel roads and now I was riding in sunshine. Not only that, I was riding south and was able to pick up the tailwind.
I cannot fathom how many swear words I said in my mind during this bike ride. But miraculously as I furiously pedaled up the final hill towards T2, I’d somehow managed to finish the bike ride in 2:35.
The sub-5 dream wasn’t dead yet.
Transition 2
- Time 2:49
This is again humbling and embarrassing to write. While it was admittedly breezy with sustained winds around 10-15mph, the air temperature had warmed to 55ºF and the sun was out. But I had trouble getting my shoes and race bib on because my fingers were numb.
As I ran out of T2, my feet felt awful. I couldn’t feel my toes and it hurt to run on both feet.
In Indian Wells two years ago, I ripped my arm sleeves off at this point because I was getting warm. That thought never entered my mind here. I was doing this half-marathon in long sleeves.

Run
- Time 1:41:02
- Distance 13.1 miles
- Pace 7:45/mi
- AG 20/212
- Men 228/1795
- Overall 250/2617
- Weather: Mostly Sunny with sustained winds of 10-20 mph from the north
- Temperature: 57°F
- Course Conditions: Mostly asphalt except for a boardwalk at the finish
- Terrain: A few rolling hills, but mostly flat
- Elevation Gain: 261 feet
As I started my run, I glanced at my watch and started doing math. I needed to run this half marathon in around 1 hour and 43 minutes.
1:43 would be a 70.3 half marathon PR, but it seemed possible…IF I COULD JUST FEEL MY FEET.
I ran past Tiffany around mile 1 and she was yelling encouraging things to help motivate me up a small hill. It briefly made me forget about how my feet felt like cinderblocks.

To reiterate: It was sunny and 55 degrees. I just don’t understand why I was so cold. I was frustrated. And embarrassed! I didn’t see any other athletes wearing arm sleeves during the run.
After the first two miles, my feet finally had thawed and I could lock into the pace I needed.
I began ticking off the miles. I saw Katy more than once near the turnaround and halfway point. Seeing her always gives me a boost.

Around mile 10, I saw Caitlin. When she saw me, she started SCREAMING at me to the point that I think she might have startled a couple other athletes nearby. Regardless, I tried to take in all the positivity she was putting out there for me.
I had held the pace I needed this whole way. But I didn’t actually start to feel confident until I got to mile 12. I needed to run the final 1.1 miles in 10.5 minutes to finish sub-5. Only then did I start to realize this was actually going to happen.

For everything that happened today, from the depths of despair and anger on the bike, it was impossible to believe I’d made it here. As long as I didn’t trip on the boardwalk near the finish line, I was going to finish in under 5 hours with a few minutes to spare.
There would be no dramatic sprint for the finish line with just seconds to spare, or the agony of something like a 5:01 finish time.
Post-Race
- Overall Time 4:57:10
- AWA Points 2636
- AG 20/212
- Men 228/1795
- Overall 250/2617
Two years ago was my first sub-6 race. (That was just two years ago!) Now I’ve made it to sub-5!

I didn’t know until later, but I actually had accomplished something else as I crossed the finish line. I came in 20th in my age group out of 212 athletes! That was fast enough for the top 10%! I’ve never done that in an Ironman event before. Whether you measure against my past races or measure against everyone in my age group in today’s race, today ended up a massive success.
I almost always cry after finishing these races as soon as I’m reunited with Katy. Throw in all the emotions of finishing in 4:57 and I was just a weepy disaster. Poor Katy got a shoulder full of tears, sweat, and snot. 🫠

Eventually I was able to collect myself enough to give Tiffany a hug, go get some post-race food, and I found my way to a table near the finish. I was physically and emotionally exhausted. But sitting in that bright sunlight, I was finally warm again.
But there was one final unexpected hurdle to overcome.
Caitlin had been out on the run course and hadn’t gotten to the finish line yet. When she got here, she nearly tackled me out of my chair onto the asphalt.
The only thing more embarrassing than pulling out of a race because I was cold would have been going to the hospital with a concussion because a friend tackled me onto the asphalt. Thankfully, all was well. 😂
Final Thoughts
Everything I’ve written so far has basically been the narrative of the day. That’s the easy part to write. But this is where I have to talk about the why.
Gulp.
Triathlon brings out a lot of Type A people, understandably. There are times, points, leaderboards, championships…it’s everything you relish if you’re Type A. If you want to prove your haters wrong and finish on top, you’re going to be attracted to this sport. As for me, I certainly can get competitive, but I’m not Type A.
For me, this sport is the best medicine I’ve ever found for how to fight my nagging chatterbox of negativity and self-doubt that’s been with me since my middle school days. If I have haters out there, even the most ardent one has never thought anything half as negative as what I’ve already thought about myself.
It is, by far, the biggest flaw of who I am as a person. I’ve spent the last 30 years working on it and made a lot of progress. But to be clear, I’m not writing in the past tense. That voice is still piping up with bullshit to this day.
On finishing this race in 4:57:
“It’s a PR and under 5 hours, but this is a fast course in North Carolina. It’s not like you went sub-5 on a hillier course like Chattanooga or Happy Valley. Everybody sets PRs in Wilmington. This is nothing special."
On qualifying for Worlds in 2023:
“You qualified for the World Championship, but that was just a lucky rolldown in the field that day. I didn’t see you qualify in 2024 or 2025. Real triathletes can qualify at any given race. You are the farthest thing from that.”
On racing in bright orange, shaving my legs, crying after I finish, and all the other silliness that comes from triathlons:
“Do you realize how absolutely ridiculous you look? Between the skin tight race kit, the shaved legs, the rainbow of colors on your arm, your white beard, and your balding head…people are absolutely laughing at you as they scroll their social media feeds.”
I can keep going, but I think you get the idea. I’m using examples from triathlon, but this nonsense comes from the back of my head about everything from my marriage to my career to my friendships with all of y’all (and my goodness, if you’ve read this far, you are a true friend!)
I love this sport for many reasons. It is hard physically, but it is equally hard mentally. If you look at photos of me over the years of racing, I look physically stronger as time goes by. But what’s not visible is the mental strength I have been gaining with each passing year.

It turns out the mental fortitude that you need for things like FTP tests or Fartlek runs have benefits that extend beyond triathlon.
Simultaneous with my triathlon career over the past few years, there have also been some big battles in life. I lost a friend to cancer. I nearly lost Katy to a grand mal seizure. I got laid off from a job two weeks before Christmas. I genuinely believe all those things would have turned out far worse if I was not a triathlete.
But above all else, the discipline of this sport has made me far more resilient against the voice in the back of my head spewing all of its self-doubt bullshit.
I’m thrilled I finished in under 5 hours. It’s wonderful to have accomplished my A goal for the season. There’s a bigger achievement that’s far more important, though. The challenges along the journey to sub-5 this year have undoubtedly made me a stronger, happier, and more resilient person.
In fact, regardless of today’s outcome, I’ve never been happier with my life and who I am as a person. Who cares about 4:57, when you can say something like that about yourself?
The 2025 triathlon season was my favorite race season yet. I’m excited to start thinking about 2026 soon. But for now, I just want to enjoy a few mornings without an alarm while four new medals hang on the wall in my office.
