A 21-year-old from Lesotho, a Chinese shoe brand, and a team called McKirdy Trained: the unlikely story behind New York’s most astonishing run.
Published: Nov 5, 2026 4:09 pm
You probably thought it amazing that Andreas Almgren ran a 2:06:01 in his first marathon to win the 2026 NYC Marathon. And incredible the way Jess McClain sprinted past big-time marathon star Hellen Obiri to grab second.
But neither effort comes close to Kamohelo Mofolo’s. He delivered the most astonishing performance in New York, by far. It wasn’t even close.
Consider this: Mofolo finished third in 2:06:26, outsprinting Kenya’s Benson Kipruto, a four-time World Marathon Majors winner. It was only his second marathon. He finished 11th in his previous marathon, Cape Town, last May. In New York, he was celebrating his 21st birthday.
There’s more: Mofolo’s shoe sponsor isn’t Nike, Adidas, Asics, or On, but a Chinese brand, Xtep, little known in the U.S. Mofolo hails from Lesotho, a country that many couldn’t locate on a map. He runs for a team with a strange name, McKirdy Trained.
How McKirdy Trained Grew From 150 Athletes to Olympic Podiums
McKirdy Trained is an online business that coaches runners. James McKirdy, now 45 (see interview below), founded it in 2016 as a Connecticut-based personal trainer who ran a 2:38 marathon in Philly in 2013. A couple of years later, McKirdy attended a Jack Daniels/ VDOT coaching program and was impressed by the philosophy and structure of Daniels’s system.
In particular, he adopted the Daniels’s approach: “Train where you are” vs “Train where you want to be.” By the end of 2016, MT had grown to 150 athletes.
In January 2018, McKirdy and his wife moved to Flagstaff, which was fast becoming an endurance mecca. In 2020, MT helped 24 athletes qualify for the Atlanta Olympic Marathon Trials.
Along the way, MT also began working with several elite marathon runners. Its most established athlete, Tebello Ramakongoana, placed fourth in the 2023 World Champs Marathon and seventh in the 2024 Paris Olympic Marathon.
Since then, Ramakongoana has racked up more impressive results. He secured a bronze medal in a World Marathon Major (Sydney, 2025), and ran a superfast 2:04:18 for sixth at Boston last April.
But he’s far from the only elite runner at McKirdy Trained. Other big performances include:
- Julia Paternain’s bronze medal in the 2025 Tokyo World Champs Marathon
- Nathan Martin’s winning 2:11:17 in this year’s Los Angeles Marathon. Martin also holds the fastest-ever time by a U.S.-born African American, 2:10:45, achieved at Grandma’s in 2023.
- Mofolo’s bronze in New York City. In addition, Mofolo has run 13:34.02 for 5,000 meters on the track, and 27:47 for 10K on the roads.
Not a World Major. But A Runner’s Major
McKirdy has also helped pioneer the concept of the “personalized marathon” — a small-field marathon for serious, fast runners that provides an ideal course, optimal weather conditions, pacers, and concierge-level fluid and gel stops.
Ben Rosario and friends staged the first of these, The Marathon Project, in Arizona in December 2020, and it was reborn last year. This year Jess McClain joined the ownership group.
McKirdy began his efforts in 2021 with an event he calls The Micro on a flat, no-traffic 2.94-mile loop in Rockland Lake State Park, NY, about 35 miles north of Manhattan. The races, now held several times a year (spring and fall), feature personalized bottle tables every 3 miles, hand-painted tangent lines, and “micro-targeted” pace groups.
The various Micro races are designed specifically to help runners achieve a U.S. Olympic Trials Marathon qualifying time, a sub-3:00 marathon, or a Boston Marathon qualifier.
Great Britain’s Calli Thackery made her marathon debut in the fall 2023 Micro, and ran 2:22:17 to become the second-fastest British woman behind only Paula Radcliffe. Paternain used The Micro to hit her World Athletics qualifying time in spring 2025.
Top male times have been achieved by two Canadians, Thomas Nobbs (2:09:25) and Justin Kent (2:09:29), and by American Haftu Knight (2:09:38).
Q&A: James McKirdy on Mofolo, Lesotho, and His Coaching
Here, James McKirdy, owner of McKirdy Trained, answers questions about Mofolo and his online coaching.
Marathon Handbook: I read that you predicted Mofolo would run 2:06:30. Really? How?
James McKirdy: The marathon is pretty darn predictable, and the New York weather was picture-perfect, so we were able to dial in on a pace for Mofolo. He lives at moderate altitude in Lesotho with hills similar to the New York bridges, if not more severe. Although he’s new to the distance, his recent workouts were “telling.”
In one, he did 4 x 5K in 14:30, 14:27, 14:24, and 14:02 with 2-minute recoveries at 5,500 feet on the roads. He also ran a fairly conservative 16-miler at 4:48 pace on rolling terrain. His last 5K in New York was sub-14:30, and he felt great at the end. He wasn’t too spent. We’ve got a lot of room to play with.
MH: How do you end up coaching two great marathon runners from Lesotho?
JM: I first met Tebello at the 2022 World Championships in Eugene. He showed up at my hotel room at midnight as my assigned roommate with nothing but a passport and the sandals on his feet. No luggage. No running shoes. The airline had lost everything.
He was supposed to run the marathon. I was put in the unexpected position of helping him. I had some extra running clothes and fuel, and we found him a pair of racing shoes. After that weekend, he asked me to coach him, and we’ve been together ever since.
Tebello introduced me to Kamohelo about two and a half years ago. He told me Kamohelo was a good, honest kid with the potential to achieve something. Now, he’s standing alongside Tebello as one of the best marathoners in the world.
MH: It’s hard to tell whether McKirdy Trained is an online coaching platform for recreational runners or a team of elites. How do you describe MT?
JM: McKirdy Trained is a platform for athletes of all abilities. I coach some of the best, but I also coach those who are just starting out, like first-time runners and 6-hour marathoners. I personally work with athletes who run/walk as well as athletes with Olympic dreams.
All of our coaches have a focus on serving. We believe great coaching is meant for everyone. That doesn’t make us perfect, but I want it to be a service where anyone can have a true connection with their coach. They should feel like they matter, that they are “seen.” That’s what we strive for.
MH: How would you describe your marathon training and racing philosophy?
JM: Here are the principles we live by, whether you’re training for the 5K or marathon: Be rested. Be ready for the next session. Sleep well. Eat well (and often). Hydrate well. Run appropriate paces for your fitness level and the circumstances you face.
While individual training plans can look different, we believe that focusing on these simple concepts makes the training more developmental over time. The marathon isn’t just about pace. It’s also about fueling and understanding the requirements of success.
If you don’t fuel well and practice digesting fuel on the run, you’re in for a world of hurt on race day. However, if you can fuel at specific paces and don’t destroy your body from session to session, we can see great things on your big day.
MH: While the World Marathon Majors get huge waves of attention, you’re putting on a Micro. Why?
We want our races to have the feel of a high school cross-country meet where friends and family can line up along the way and cheer you on. Where you can bring a bottle of champagne and pop the cork after you get your Olympic Trials Qualifier or break 3 hours for the first time.
Last March, we had 27 OTQs. That’s more than any other race outside the USA Championships and Boston. It’s more than Chicago, the Marathon Project, Grandma’s.
We love helping athletes get a chance they might not get elsewhere. The Micro races are powerful and meaningful, but also small. They’ll stay that way.
Join 300,000+ runners in RunClub
Free training plans for every distance, a daily running game, exclusive coaching content, and a real community of runners. Create your free account in 20 seconds — no card.
‘;
pfOverlay.addEventListener(‘click’, function(e){ if (e.target === pfOverlay || e.target.closest(‘.rc-news__pf-close’)) pfOverlay.style.display=’none’; });
document.body.appendChild(pfOverlay);
}
pfOverlay.querySelector(‘.rc-news__pf-body’).innerHTML = r.data.html;
pfOverlay.style.display = ‘flex’;
}).catch(function(){});
}
root.addEventListener(‘click’, function(e){
var a = e.target.closest(‘.rc-news__author’); if (!a) return;
e.preventDefault(); openProfile(a.getAttribute(‘data-user’));
});
// Reply targeting (composer lives outside the re-rendered box).
var pill = document.getElementById(‘rc-artc-reply-pill’);
var pillName = document.getElementById(‘rc-artc-reply-to’);
var input = document.getElementById(‘rc-artc-input’);
var formEl = document.getElementById(‘rc-artc-composer’);
function setReply(pid, name){ replyParent = parseInt(pid,10)||0; if (replyParent && pill){ if (pillName) pillName.textContent = name||’comment’; pill.style.display=”; } if (input) input.focus(); }
function clearReply(){ replyParent = 0; if (pill) pill.style.display=’none’; }
var rcx = document.getElementById(‘rc-artc-reply-cancel’); if (rcx) rcx.addEventListener(‘click’, clearReply);
box.addEventListener(‘click’, function(e){
var b = e.target.closest(‘.rc-news__reply-btn’); if (!b) return;
setReply(b.getAttribute(‘data-parent’), b.getAttribute(‘data-name’));
if (formEl) formEl.scrollIntoView({block:’nearest’});
});
// Show-all (load the full thread).
box.addEventListener(‘click’, function(e){
var s = e.target.closest(‘.rc-artc__showall’); if (!s) return;
s.disabled = true;
post(‘mh_artc_thread’, {post_id:postId, sort:currentSort, all:1}).then(function(r){ if (r.success && r.data.html) box.innerHTML = r.data.html; }).catch(function(){ s.disabled=false; });
});
// Sort tabs.
Array.prototype.forEach.call(document.querySelectorAll(‘#rc-artc .rc-news__sort’), function(tab){
tab.addEventListener(‘click’, function(){
var ss = tab.getAttribute(‘data-sort’); if (ss === currentSort) return;
currentSort = ss;
Array.prototype.forEach.call(document.querySelectorAll(‘#rc-artc .rc-news__sort’), function(t){ t.classList.toggle(‘is-active’, t===tab); });
post(‘mh_artc_thread’, {post_id:postId, sort:currentSort, all:1}).then(function(r){ if (r.success && r.data.html) box.innerHTML = r.data.html; }).catch(function(){});
});
});
// Composer: emoji (all) + member image upload + submit.
var msg = document.getElementById(‘rc-artc-composer-msg’);
var mediaIds = [];
if (formEl){
var emojiBtn = document.getElementById(‘rc-artc-emoji-btn’);
var emojiPop = document.getElementById(‘rc-artc-emoji-pop’);
var emojiLoaded = false;
if (emojiBtn) emojiBtn.addEventListener(‘click’, function(){
if (!emojiLoaded){ emojiLoaded = true;
var sc = document.createElement(‘script’); sc.type=’module’; sc.src=’https://cdn.jsdelivr.net/npm/emoji-picker-element@1/index.js’; document.head.appendChild(sc);
var picker = document.createElement(’emoji-picker’);
picker.addEventListener(’emoji-click’, function(ev){
var u = ev.detail && ev.detail.unicode; if (!u) return;
var s0 = input.selectionStart||0, s1 = input.selectionEnd||0;
input.value = input.value.slice(0,s0) + u + input.value.slice(s1);
input.focus(); input.selectionStart = input.selectionEnd = s0 + u.length;
});
emojiPop.appendChild(picker);
}
emojiPop.hidden = !emojiPop.hidden;
});
var preview = document.getElementById(‘rc-artc-media-preview’);
var attachBtn = document.getElementById(‘rc-artc-attach-btn’);
var fileInput = document.getElementById(‘rc-artc-file’);
function renderPreview(){ if (!preview) return; preview.innerHTML=”; mediaIds.forEach(function(m){ var d=document.createElement(‘div’); d.className=’rc-news__pv’; d.innerHTML=’
‘; preview.appendChild(d); }); }
if (attachBtn && fileInput){
attachBtn.addEventListener(‘click’, function(){ fileInput.click(); });
if (preview) preview.addEventListener(‘click’, function(e){ var x=e.target.closest(‘.rc-news__pv-x’); if (!x) return; mediaIds=mediaIds.filter(function(m){ return String(m.id)!==String(x.getAttribute(‘data-id’)); }); renderPreview(); });
fileInput.addEventListener(‘change’, function(){
var files = Array.prototype.slice.call(fileInput.files||[]); fileInput.value=”;
files.forEach(function(file){
if (mediaIds.length >= 4) return;
var ph = document.createElement(‘div’); ph.className=’rc-news__pv is-loading’; ph.textContent=’…’; preview.appendChild(ph);
var fd = new FormData(); fd.append(‘action’,’mh_newsroom_upload’); fd.append(‘nonce’,upnonce); fd.append(‘file’,file);
fetch(ajax,{method:’POST’,body:fd,credentials:’same-origin’}).then(function(r){return r.json();}).then(function(r){
ph.remove();
if (r.success){ mediaIds.push({id:r.data.id, url:r.data.url}); renderPreview(); }
else { msg.className=’rc-news__composer-msg is-err’; msg.textContent=(r.data||’Upload failed.’); }
}).catch(function(){ ph.remove(); });
});
});
}
var btn = formEl.querySelector(‘.rc-news__send’);
var authorEl = document.getElementById(‘rc-artc-author’);
var emailEl = document.getElementById(‘rc-artc-email’);
formEl.addEventListener(‘submit’, function(e){
e.preventDefault();
var content = (input.value||”).trim();
if (!content){ msg.className=’rc-news__composer-msg is-err’; msg.textContent=’Write something first.’; return; }
var payload = {post_id:postId, content:content, parent:replyParent, sort:currentSort, all:1};
if (authorEl) payload.author = authorEl.value;
if (emailEl) payload.email = emailEl.value;
if (mediaIds.length) payload.media = mediaIds.map(function(m){ return m.id; });
btn.disabled = true; msg.className=’rc-news__composer-msg’; msg.textContent=’Posting…’;
post(‘mh_artc_comment’, payload).then(function(r){
btn.disabled = false;
if (r.success){
input.value=”; clearReply(); mediaIds=[]; if (preview) preview.innerHTML=”;
box.innerHTML = r.data.html;
msg.className=’rc-news__composer-msg is-ok’; msg.textContent = r.data.approved ? ‘Posted.’ : ‘Posted — awaiting moderation.’;
setTimeout(function(){ msg.textContent=”; }, 5000);
} else {
msg.className=’rc-news__composer-msg is-err’; msg.textContent = (r.data || ‘Could not post.’);
}
}).catch(function(err){ btn.disabled=false; msg.className=’rc-news__composer-msg is-err’; msg.textContent=’Error: ‘+err.message; });
});
}
})();
