Preamble
Exactly a year between my last triathlon race and this one I am writing about.
I been staring at the screen the past days, hours sometimes. Wondering how if this effort is still relevant and if the effort to share is still worth it. This blog has started to serve it’s purpose much less than when I first started years ago. Paying USD10-USD15 a year to keep the domain, and with minimal return. Sometimes I wonder if my competitive racing ventures will go down the same path as this blog.
Before I carry on writing, I want to record my gratefulness. This goes to (in no particular order):
- My family, for always believing in everything I do though sometimes they do question why I do what I do;
- The good people in Sports Paragon, that has provided gears (shoes, sports apparel, fuels, entries) even though they know I stand no chance to be in Top 10, never mind podium;
- Brands that has continued to support, and almost all at the tail end or has already ended the collaboration. Shokz Malaysia, Stryd Malaysia, Ultrahuman Malaysia. Totally understand the direction of next generation KOLs;
- Brands that have indirectly contributed, the opportunities you have provided for me to provide feedback to your products, many are awesome and perhaps only one or two that has promised more than it actually delivered;
- The good people I know online – many I have never seen in real life, that has consistently left comments, share insights, help correct me, allow me to learn, keep me humble, cheers and cheered for me. You are nothing short of amazing;
- Photographers over the years, that has captured the soul of me racing, baring it all;
- The haters and stalkers for making me feel like I am important. Do come and say hi sometimes, perhaps we can be friends in real life;
- And everyone (person or brands) that I failed to mention, it wasn’t intentional but I may had forgotten due to the brief encounter we had.
As I write and perhaps end today’s race report, I realised I inadertedly has revisited all the race report that I was supposed to write; 2025 – PD Tri, MOS168, Score HM, KLSCM HM. 2026 – TwinCity HM.
Let’s go the race report, or not.
Was supposed to be race report but halfway writing this, this seems to be another pre-amble… Bear with me folks…
It has been a demotivating year, almost racing-career ending journey I had since the last attempt to break my Half Marathon personal best.
KLSCM 2025 was my A-race. If anything, 2025 has been a great year racing. Season best HM of 1:39:11. Racing very strong as the last race of 2025, a big notch up from Score HM where it was a prep (B) race for MOS168. The challenge for Score HM 2025 was to get back to the finish line before my son goes off for his 10km race because he was holding the car keys. Nevertheless, he aced the 10km run really well. Personal Best despite running with a broken thumb.
So much promises as I carry it over to 2026 where I enter a new age group (50 and above). A good ending as I leave 40s and striding into the big 5-0. I would say it was the best year ever (2025) having raced and delivered to plan. You know when you feel invincible (in your own way – be reminded I am not a podium potential), and you put a lot of hope and wish that heading to the next level will be easy.
Until it’s not.
2026 started with TwinCity HM. With work travel/transit hours before flag off, as rested as I was, you can’t underestimate factor of air travel, lack of sleep over 36 hours (of flights and lounge) and of course, being in denial that 5-0 will be hitting you hard. 1:58 HM – that is an absolute worse timing in the past 7 years. Only saving grace was not quitting as the body went to sleep. Little do I know Twincity HM was the race I paid dearly for. Not for the lack of mileage (remember I ended 2025 on a high), but well, as they say, “shit happens”.
I typically takes about 2 days to recover from a hard race. The 2-days post Twincity went to 3-days. I was still not at my usual pace 1 week on. Running became something less enjoyable. On certain days it became painful, both to the body and to the mind. It wasn’t something I had experienced. It was no longer enjoyable. The 1 week went to 1 month. February was distracted by Chinese New Year, I did not think too much about it, maybe reduced mileage, easier run, cancelling the HM training block was the right thing to do. Afterall, it’s still early in the season.
“Why not you go see the sports rehab that all of us went”, my Home Binister said after weeks of noticing me not being my usual self at training.
She saw the demotivation, the less than usual runners high after every run. I no longer run long not because I do not want, but because I can’t. I no longer meet the intervals and VO2Max workout because the legs just refused.
And so that marked the start of my Sports Rehab – not in my bingo card after being active and in sports the past 3 decades, perhaps more.
My condition as diagnosed after sitting (and being made to do a lot a lot a lot of exercises in 120 minutes “get to know you” session) were:
Overused right calves and severely underused left glutes with impaired hip mobility. My right legs were so tight it impaired my hip movements as it overcompensates for the lack of glutes (I knew now why my jeans never fill my left backside). My rehab specialist (Foon) was sweating as she did a myofascial release on my right glutes.
“Tightest I ever released”, she said.
“Iron glutes”, I jested.
Tears rolled down my cheek, well hidden under the face/head cut out of the massage bed I was on.
Humbling, painful. I knew then the road and the journey to performance again have officially reset.
Coincidently, that was when the registration for Men of Steel rolled in from my sponsor ZootSports Malaysia. Thanks to them, I got a spot to race the reduced 123 distance vs 168 the year before.
And I made that my A-race, with (at that time) Port Dickson to be my B-race. Both races are organised by my favourite triathlon and sports organiser, Uncle Chan and family.
I went from zero swim since MOS168 to swimming twice a week, trying to get used to the deep end of the pool, pretending to know how “water feel”, and to basically survive the distance of the swim. Obviously listening to Coach Aldrian and Coach Brian as they share their teaching during this period at Taylors was very helpful. I went from swimming twice a month to swimming 9 times before the race. Something got to count, right?
I maintained pretty much the same amount of training on the bike. This was the least of my worries as unlike “water feel”, I can tell the speed of my cycling just with the wind blowing against my skin.
And running mileage has been decreasing as I underwent rehab. There was significantly more weight workout to get the underused glutes activated again and grow, apart from nursing the overused leg.
In short, I was serious about getting well and to be performing again. The extend of effort put in was in all hope that I be well for both my mental health and physical health. This is a setback, a major one as I never been challenged with an “injury”, let alone a physical condition blocking progress. Those that know me I even ran during my dad’s funeral. It was a coping mechanism then; but how do you run to cope with the mental burden of not being able to run as long, as fast, and as easy as I did before?
Then I broke my bike.
And miraculously it was able to be fixed within a week (or over two weekends in total), and I was back on the saddle again. Thanks, a huge load to my friend Kok Wai that not only mend the bike, but helped preserved my sanity. What else can go wrong, right?
Well, 3-months into the rehab, my Rehab Specialist (Foon) told me I have been progressing well. Our focus then shifted to performance coaching, specifically how to help me swim and bike better. This woman is a level short of a miracle worker. Never once claim to be able to fix me, but she did. Not only I gained substantial ability in my swimming speed (in the pool), I cycle better due to a few adjustments to the workout.
However, due to the much-reduced mileage over the months, my endurance took a huge hit. How big?
If VO2max is an indication of endurance speak, It declined fast due to the lack of time of the feet when it comes to running. And even the trend is telling – I was in denial about the performance condition and the injury could had happened much earlier with the TwinCity basically being the last nail in the coffin. Saving grace? A month into rehab, I started to be able to run better, and the VO2Max started climbing up again. However, as the refocus was really about not getting too excited, I had to start reducing my volume and the progress continue to take a dive, but not as steep of a dive than a year ago.
“Oh, but you did not race PD Tri, why?”
I thought I registered. I did, but for my son. I forgot about myself. Not because I did not want to, I was in fact looking forward to that until a week to the race when I realised I never received the confirmation email, except that of my son.
I showed up as a supporter, taking photos for my son and his teammates in Team Time/GoGetter Performance.
The test to all the rehab and work I put I was the Score HM that took place exactly a month before MOS123. I knew it will be my B-Race. If you ask me a year ago (post KLSCM), I will tell you Score 2026 will be the year I aim to break my 1:34 HM PB. We all know it did not happen for the obvious (rehab) reason (if you still have to rub it in). I did use this race to test out a new method to approach my race day. Thanks to Coach Cali Amaral, the Olympic and SEA Game coach of Brazil and Indonesia respectively, I have learnt a new way to see “carbo loading”, which is basically not carbo loading in the actual sense than to limit fibrous food and go to processed-fibreless food – chocolates, candy, protein shake, race fuel (yes, gels), Haribo (who doesn’t love jelly?) 3-4 days before race day. The science in it makes perfect sense, the practice however, is a bit more controversial to the conservative practice. But it worked beautifully.
6 months after TwinCity and running a HM faster than the worse HM timing ever in the past 6 years? I take it. 1:46 for me was a big bonus and a big reward in the (by then) 5 months of rehab. Lack of mileage and spiralling endurance. I was racing on experience and full on reliant on my capability using Stryd (Power). It delivered wonderfully. I was within 2mins of prediction.
Finishing injury free and feeling really good. Visited Foon (Rehab) to get those super tight muscles sorted out (painfully), and I was at the level of final preparation for MOS123.
The journey, as you can see above (which is also when I realised this WAS supposed to be my MOS 123 RACE REPORT) has been painfully long. I continue to go through rehab, with good mind-body connection, to ensure I know when to hold back and when to push as condition permits.
And that was exactly what took place in the 3-weeks running up to MOS123. A good myofascial release, assessment of my run data, checking into my swim quality and deciding if I should take the Boardman for the race, or ride the new ride.
Long story short – bought a pre-loved Specialized Allez Sprint in full Ultegra 11-speed, new wheelsets and tires and decided that the Boardman in mix Dura Ace – 105 10 speeds, on tubular tires (just changed) and 15 years old Zipp404 wheels deserves to toe the line.
Now that ALL the past race reviews have been written, somewhat, and my underlaying condition shared more widely outside of my other socials (Threads, IG, FB), we get back down to business of the actual MOS123 Race report.
Men of Steel 123 (Swim 2km – Bike 98km – Run 23km)
But before that, my son race on Saturday in the Sprint race and he did well. He came in 5th overall for the Sprint triathlon. This is a boy that can’t bike or run 2-years ago, with his first group bike ride ending prematurely 3minutes into the ride as he landed in a soft-soil ditch in Sang Lee.
This is the boy that can’t keep up with me at pace 6 running around the neighbourhood and hit his head, with an open cut against the low hanging roof of a guard house, despite me pointing upwards to avoid the hazard. This boy came a long way in a short time.
Hard work, staying humble and dreaming big took him to where he is today, and he still has a lot of years ahead of him racing.
And I was there whole morning to support and take photo.
The race officially started when I collected my race kit on Friday, ahead of both Sprint and my MOS123. The race organiser is EC Pixel, which is a long-time friend and family venture. For those of you that may not be aware, Uncle Chan (he is 85 years old) is the OG of Malaysia multisport and organiser. The organising has now went to his kids – Samantha, Eugene and Kevin. The three of them has been racing in the local scene when I first started multisport, that was a good 25 years ago. The like of PD Triathlon and many other local triathlons (Melaka, Kenyir, Titiwangsa, Perak) was Uncle Chan’s leadership until the local triathlon/state triathlon clubs came into fruition.
There was a lot of (personal) expectations to this race. I used to clock in no less than 4 triathlon races a year. Then work priorities came in (yes, I do work to pay bills), and my races became less. Last Ironman distance race was in 2019, right before the pandemic. I was 44 when that happened and I was at my peak fitness. What I did then was signed up for all the races under Ironman Virtual Racing (IMVR) and I was amongst a handful globally to have completed all IMVR races over the 3 years they have it, earning the title of “legend”. My fitness was at it’s peak, thanks to these short, intense workouts.
An attestment of Showing Up and positive habit forming.
OK. I am drifting from my race report, again. Reeling back…
Pre-Race setup and mindset
Here is my setup for the race:
Overall: ZootSports P1 Ultra Trisuit. One piece for swim, bike and run. Size S. Good fitting and compression, with pockets for fuels and ice (on the run).
Swim: compulsory personal buoy (son’s), Orca (new) goggles (damn expensive), compulsory swim cap.
Bike: Boardman (not shown), kitted with extra tubular, handpump and CO2 canister, single bottle setup (between-the-arm BTA).
Run: Brooks Running Hyperion Elite 5, Pacific & Co socks, Rudy Project Noyz (this is an OG sunnies), Brooks Running soft cap
For fuels and hydration, based on my tolerance and ability to digest without throwing up, bearing in mind I have not taken any fibrous food over 3 days and not taken any caffeine over 4. My plan were based on the below, almost fool-proof as I follow similar strategy with differences in the fuel brands (Triathlete on budget = buy/use what is cheap in the market)
Fuels: Pre-race full on Skratchlab chews (200kcal) 30mins before race.
1 Endurance gel post swimming (110kcal).
On bike, 450kcal over 3 hours in bottle concentrate, one bottle with Skratchlab electrolytes, fuels to be sip every 30mins. Supplement 1 Endurance Gel every 45mins. Total per hour : approx. 200kcal.
On run, whatever the organiser serves. Insurance, I brought 1 Endurance gel for 45mins in/KM8. Likely take organiser’s N8 gel 2x (1x per 10km loop), supplement/carb gargle with 100plus (full flavour) every water station. Approx 120kcal/hour.
My water bottle was left in freezer after mixing the fuels. Safe to do so as the instruction typically demand that you finish the fuels within 24hours upon mixing.
On electronics, my Stryd pod for running, Garmin devices for cycling, power meter and racing with the FR965. Despite being very comfortable with Coros pace 4 for multisport, decided to revert to Garmin for this race for familiarity.
One more ritual that I do pre-race, I wash my swimming cap with detergent to get rid of the powder. If you have allergies related to latex or preservatives of latex, its best to wash it before using, else you may end up with watery eyes on race morning.
I was in bed by 10pm. Call time 5am. Leave home by 5.30am, to reach Putrajaya by 6.15am, race ready by 7am. Race gun off 7.30am.
Play these in your head pre-race and you have half the battle sorted.
Race Morning
I slept well. Body felt good and the biggest concern remain to be the run. I know the lack of mileage and the endurance wasn’t at it’s best, will definitely impact the overall outcome. I was actually feeling good about the swim and was certain that the bike will not be much of an issue as long as I stay within 29/30kmh (keeping to 80% FTP) to preserves the legs for the run section.
Setting up the transition area, ensuring that all items are well placed and playing in the mind on T1; deflate buoy on run in from swim (to save space in the basket), place the goggles in the basket, switch on Garmin Edge to allow it to lock on satellite, take 1x gel, sip on bottle, wear helmet, buckle, take cycling cleat, slowly push out to line, wear cleat, go.
T2 involves socks in the Elite 5, sunnies tucked into one of the shoes and a gel in the other one, so I won’t forget, and the cap covering both. Flow would be coming in from bike, push bike in at brisk walking pace. Rack bike, unbuckle helmet, place helmet on handlebar. Sit down. Take a few deep breaths, take cap put on head, take sunnies put on head, take gel put in back pocket, wear socks, wear shoes, tie shoelace to correct tightness, adjust, as necessary.
Transition in triathlon is an art. Muscle memory plays a bit as well, to ensure that you do not forget anything as you “rush through”. At my pace of action, rushing through usually involve a much slower pace vs the elites.
Once happy with the setup, I went to the race start area and collected my race chip. Along the way, bumping into Malaysia Fastest Ironman, and I dare say Asia current fastest Ironman finisher, Kevin The (IronMonsta). One thing about these races for folks like me is the camaraderie and the people that I see (usually) during races. Every time I race, there are less familiar faces. Many of my generation has stopped racing triathlon and handful has picked up new hobbies or new sports. Which is a great thing. Life to many often are beyond swim bike and run. For some of us (like me), this is the core lifestyle. I harbour the wish to continue to race until I am as old as I possibly be. I heard the route to World Championship become more attainable as one age, so there you go.
Razlan (the old timer MC) called all participants to the starting line. We are to be released by age group. Sharp at 7.20am, the younger folks were sent off with little fanfare. Then it was my age group in 3-mins interval later. I kissed my wife, and jumped into the lake. One thing about Putrajaya lake is it’s a “life lake”, there are living organisms in there, and that also meant there are shallow at some places and deep at most. And for that, never dive or jump right into the water from the edges. Ease yourself into the water and paddle/waddle to the starting arch.
And before I knew it, we were off. I started swimming but has to keep changing to breaststroke as I get close to other triathletes. Unlike the fast/elite swimmers, most of us age grouper aren’t used to swimming in very close proximity to others without thinking the next person is trying to drown us or attack us. Truth are most of us just want to get ahead. So in being respectful, we often switch strokes, just to make sure we do not hit, kick, punch or claw another triathletes around us.
Sighting was good. Just have to look forward to one yellow and one red buoy at every turn. One loop is 1km and we have to do 2 loops. As a trick, find the swimmer that you believe has good pace (as yours) and has better sighting than you. Then you follow them. Keep them in your sight and help with direction by taking the lead if you have too. Many times, everyone are looking for someone with that ability.
You can almost see the differences between being in the pack vs being alone with all the space to front crawl.
For me, I got one or two triathletes that I can rely on and went on well past the 700m. Then I realised I was off course. A kayak/rescuer came close to me to point me to the right direction. So, what happened was on the second yellow buoy, I sort of sighted wrongly and went for the wrong buoy, I managed to recover and went on to the the second loop with less drama. Successfully exiting the water in really good spirit and having swam extra 50m, which ain’t too bad if I thought about it.
Out of water, a quick jog while deflating the buoy (as planned), and got caught on the camera – I did look like I wanted to go back to sleep.
And immediately, the rest of the muscle and mind-memory goes to work. In and out of T1 within 3minutes. Likely the most time spent was putting on the cycling cleat with BOA dial. I would suggest if you are serious podium chaser and has a T1 time of less than a minute, go for strap-type cycling cleats so you can go on the fly.
The cycling route requires us to take 4 loops, with each at 24km and u-turn at the last traffic light before T2. Loop 1 will determine if the loop will be indeed 24km. I was going and keeping to the effort planned (80% FTP @ 29/30kmh) pretty well on the first loop. As expected, it was short by approximiate 800m per loop. Which meant there is a distance of about 4km max, cycling 94km vs 98km.
Fuelling was on point and I did stop at the water station once to transfer the electrolytes into the main fuel bottles. This allow the body to continue to get the electrolytes replenished while still delivering the fuels for the last 2 loops or approximately 40km. At KM50, it is about making sure you do not jeopardise the remaining of the race by fuelling smarter while starting to decide to push or keep at the same place.
On my third loop, I was cycling within range of another triathletes, which rode abreast with me to chat. Found out he was doing his first MOS distance and he knew me from socials. A privilege to be talking and sharing some views while racing. Thank you sir! The cycling ended with no mechanical issues. Only thing I felt was a bit dangerous was while the traffic was partially locked off with geat control by both police and race officials, there are one section where cars travelling at speed just cut between the cones to get to their exit. I witnessed a few instances where it was near misses for other triathletes.
As for Drafting, there were two or three groups, fast groups that was bundled up together and was pushing 40kmh on the course, naturally they bunched up and I saw the race officials rode up to them to break it up. No penalties served but it’s nice to see some control on the “no drafting” rules were implemented.
Also, Geoff Kronenburg came to my mind, at 11pm, I know he was/will be buried. Those of you that followed my social will know of this awesome person that has fought brain tumor but succumbed to it; a week after he was taken off life support! Infact, one of the driving factor for the use of Boardman was because this bike is equipped with the groupset that Geoff gave me decades ago – his way of supporting a budding triathlete and to encourage the sports. I carry a little of “Geoff” in every race I do since then.
Finishing my bike in 3:20, at expected average speed was a nice feeling. I am now down to 23km of run. It was playing in my mind if today will see me finishing the race, or not.
My T2 took much longer. Taking the time to take a 5-mins (or more) break, to gather back a bit more mobility on the feet post cycling, and to ensure I am psych up for the mental run. Mental run it was. The running route for MOS is through the Cyberjaya lake, it is a long winding route where you can see the water stations, but you can never reach it even if they looked like it’s just opposite the lake. The saving grace was the weather, it was overcast and there were minimal heat from the ground. Only tough part was the increased humidity due to the balmy weather.
I managed to run the first 15km, managing good decent pace while looking for any sign of pain. There weren’t any but what took me down the last 9km was muscle fatigue resistance. In short, the lack of volume and mileage finally hit me. With muscles tired off from swim and bike, the VMO (the teardrop muscle on the front of the legs), finally gave up, which then limit how much I could bend my legs as every movement brings me nearer to painful cramps. I stopped at most water station to seek for analgesic sprays, or whatever that may help.
Was it disappointing? Perhaps as when the run was happening. 15km of decent running pace and last 9km was briskwalking. Total time was 3:35, hardly inspiring. But looking back (a few hours later), it wasn’t too bad. If I did run all the way, It would had been 2:30 anyway, likely slower average of 6:30 overall. And there wasn’t any shame in the final 9km walk. I made a few friends, both triathletes and also race official/water station. They are out there as long as most of us, they deserves a big hand and clap as well.
And walk I did, looking forward to most loop to see my Home Binister, just to recharge a little bit more and to get closer to finish.
Reflecting during the run, I would had made it a 6:30 finish if I managed to run all the way. But 6:30 in, I was started to walk, and that very much locked me in close to 8 hours finishing. Not a great timing (comparatively on similar distance during Desaru Long Distance) but I made it.
I crossed the line finally, at 7:58. A long day out on the course, with gratitude.
Not giving up, despite the challenges – it would be too easy to call it quit. It was harder to suck it all up and in, and bring every steps closer to complete what I started, even when it meant it’s the only triathlon race I ever done in 2026.
It was, glorious.
Post Race thoughts
From the beginning when my rehab started, I knew the journey in this milestone year (turning 50) will not be as glamourous as I envisioned it to be. People sing song about going into a new age group, doing better than they did a decade ago. Here I am, starting it all off with solid sessions of workout to grow my glutes, to teach the muscles movement, to prevent potentially serious injuries, avoiding an early racing retirement. Putting it all together, there isn’t any regrets.
Would I had done it better? Definitely.
Could I have been happier? Possibly.
Am I glad? Yes.
Was I injury free? Hell yes.
And unlike post TwinCity in January, my recovery this time around was 2-days. I was back running my usual pace again. Rebuilding the base, restarting the mission for KLSCM which will remain (KLSCM HM) my A-race. A season finale, and perhaps something we can cheer about again come October 2026.
Thank you again to everyone. Your gift as someone that believes in me meant a lot. You coming here to read this blog, despite the (now) annual update, is a huge thing for me.
And perhaps, I should write again. Until the next one, do say hi when you see me.
Keep showing up.