A few months ago, I finished a long rideβjust over 100 miles, solid climbing, felt strong the entire way. The kind of session that makes you think, Iβm on track.
The next week, I pushed again. Then again.
Nothing dramaticβjust a bit more volume, a bit more intensity. Exactly what most self-coached athletes do when things feel good.
Two weeks later, I was flat. Not injured. Not sick. Justβ¦ off. Power was down, runs felt heavy, motivation dipped. The frustrating kind of fatigue where nothing is clearly wrongβbut nothing is clearly right either.
When I looked back, the pattern was obvious:
I had increased load too quickly
Skipped a proper recovery week
Let βfeeling goodβ override structure
Whatβs worse: all the data was there. Garmin had it. The workouts were logged. The signals existed.
I just didnβt have a system that could connect the dots, enforce discipline, and still adapt intelligently.
Thatβs the gap.
Most tools today fall into two extremes:
Static plans that ignore what you actually did
βAI coachingβ that sounds smart but you canβt really trust
I wanted something in between:
A system that keeps me honest on the fundamentalsβwhile still helping me think, adapt, and improve.
The Murph Challenge isnβt a workout. Itβs a systems failure conducted at heart-rate redline.
If youβve ever tried to remember whether youβre on rep 183 or 193 of squats while your lungs are filing a formal complaint, you already know: human memory is not a reliable datastore under load.
So I built a Murph tracker that does exactly one job wellβcount repsβwhile I focus on the important things, like not dying.
ποΈ What is Murph (and why people keep doing it)
The Murph Challenge is performed on Memorial Day to honor Lt. Michael P. Murphy, a Navy SEAL killed in Afghanistan in 2005.
It was his favorite workout. Originally named βBody Armorβ, which feels accurate in the same way βproduction incidentβ feels accurate.
The canonical version:
1 mile run
100 pull-ups
200 push-ups
300 squats
1 mile run
Optional difficulty modifier: wear a 20 lb vest and rethink your life choices.
Every cyclist has stared at a local hill and thought some version of: βCould Iβ¦ just keep doing this until Everest happens?β
That thought is how Everesting is born. One hill. One activity. Repeat until youβve climbed 8,848 meters. No shortcuts. No segments stitched together. Just you, gravity, and increasingly questionable life choices.
Everesting is simple in theory and brutal in practice. And planning it turns out to be way more annoying than it should be.
For the past few years (2024, 2022, 2019, 2018, 2017, 2016, 2015, 2014, 2013), Iβve wrapped up the year by summarizing books and sports eventsβrunning, biking, gravel fun/suffering, and other questionable life choices.
2025 is no different. Except it kind of is, because this was the year AI stopped being βthe futureβ and the world become more (and more) crazy by the minute.
Letβs start with the books.
Books That Made Me Think
Clean Code β Robert C. Martin Yes, I re-read it. Again. Apparently I still need to be reminded on many good aspects of ‘clean’ code. Uncle Bob remains annoyingly correct.
Murakami β What I Talk About When I Talk About Running I wrote about this one earlier this year. Itβs not really about running. Itβs about showing up, embracing boredom, and quietly grinding forward. Which is also the most accurate description of debugging production on a Friday afternoon.
The Psychology of Human Misjudgment β Charlie Munger I summarized Mungerβs lessons this year. The man spent nearly a century documenting all the creative ways humans confidently shoot themselves in the foot. Smart people donβt avoid mistakesβwe just build better stories around them.
Range: Why Generalists Triumph in a Specialized World β David Epstein Turns out being βkind of good at many thingsβ isnβt a flawβitβs a survival strategy. Epstein makes a compelling case that breadth wins in messy, unpredictable systems. Which explains both modern tech careers and the contents of my garage.
Project Hail Mary β Andy Weir A man, a spaceship, impossible physics problems, duct tape, and an alien who communicates via jazz hands and math. Pure joy. If The Martian made you happy, this one will make you irresponsible with sleep.
The Year on Two Wheels (And Two Feet)
2025 was the year I finally admitted that gravel racing is just mountain biking for people who think theyβre still road cyclists. 2025 was not about dabbling. It was about distance, stubbornness, and rides long enough to require negotiations with your own legs. According to Strava, my idea of βa good day on the bikeβ is apparently anything north of 120 miles.
Here are some numbers
And next are the top 5 rides of the year, ranked by pure, unapologetic mileage:
1. California Death Ride (a.k.a. βLetβs See What Breaksβ)
166.8 miles Β· 8h05m Β· 4,350 m climbing This was the big one. Alpine County served up altitude, endless climbing, and the kind of fatigue that makes basic arithmetic difficult. Long, brutal, beautifulβand exactly as advertised. Legs emptied. Brain quiet. Highly recommended if you enjoy earning your recovery week.
2. Marin County Mega Ride
161.5 miles Β· 5h32m Β· ~2,000 m climbing Fast, flowy, and just enough climbing to keep things honest. One of those rides where everything clicks, the weather cooperates, and you start making wildly optimistic plans for the rest of the season. Dangerous mindset. Great day.
3. Three Lakes to Morgan Hill (Because One Lake Is Never Enough)
134.7 miles Β· 5h05m Β· ~1,500 m climbing Long, steady, and sneaky-hard. The kind of ride that doesnβt feel epic until mile 110, when your legs quietly file a complaint. Classic endurance builder. Zero regrets. Some soreness.
4. Old La Honda to Half Moon Bay and Back
126.2 miles Β· 4h48m Β· ~1,850 m climbing A greatest-hits tour of local suffering. OLH never disappoints, Half Moon Bay always lies about the wind, and the ride home is where humility is restored. Did this voluntarily just for a good espresso. Would do it again.
5. Windy Hill + Butano (Name Checks Out)
121.2 miles Β· 5h19m Β· ~2,300 m climbing Rolling climbs, long stretches of solitude, and enough elevation to remind you that βendurance rideβ is just code for βextended negotiation with gravity.β
The Pattern (In Case It Wasnβt Obvious)
Lots of long days
Serious climbing
A recurring belief that anything under 120 miles is βkind of shortβ
Strava confirms what I already suspected: 2025 was about volume, consistency, and seeing how far you can go before snacks become critical infrastructure.
The pain faded but the data remained.
I also finally nailed my race week taper strategy. The secret is doing less while eating more. Years of preparation paid off.
It started as βIβm tired of losing recipes in browser tabsβ and escalated into a full-stack AI-powered cooking platform. React, Prisma, Node.js, OpenAIβand long philosophical debates with Cursor about database schemas at 1 a.m.
It now helps people manage recipes, generate new ones, and stop Googling βeasy chicken recipeβ for the 47th time. My family uses it – so that’s already a win.
The pattern is clear: AI is incredibly usefulβas long as you treat it like a very confident intern who occasionally hallucinates entire APIs.
Security Became Personal
I got strangely passionate about password security and MFA/passkeys this year. Mainly, after seeing some friends being hacked by some (really) bad actors. It’s far from being fun and with a few simple steps you can remove ~90% of the attackers. The TL;DR: * Turn on MFA. * Use a password manager. * Stop trusting your memory from 2014. Seeing βpassword123β still alive in 2025 does emotional damage.
The Pull-Up Counter That Actually Worked
My son asked, βCan we build something that counts our pull-ups?β
So we did. A real-time pull-up tracker using TensorFlow.js and a webcam. Teaching a machine to recognize human suffering was harder than expectedβbut now we have data-driven trash talk.
Because if itβs not measured, did it even hurt?
Things I Learned (The Hard Way)
Focus beats options. You canβt cross a canyon in two jumps. This applies to startups, training plans, and side projects that βjust need one more feature.β
Charlie Munger was right. Especially about how intelligence doesnβt protect you from bad decisionsβit just helps you justify them.
Great teams scale via systems, not heroics.Google, Facebook, Netflix all figured this out. Burnout is not a strategy.
Tapering is a skill. Your brain will beg for βjust one more hard session.β It is lying.
AI coding tools are magicβuntil they arenβt. Then you lose 30 minutes debugging code that confidently imports a library from an alternate universe.
Looking Ahead
2026 will probably look similar. More books. More miles. More yelling at AI. Definitely more coffeeβespecially since I wrote a guide on dialing in espresso.
If you made it this far, thanks for reading. Hereβs to another year of breaking things, building things, and occasionally fixing the things we broke.
This 7-day pre-race plan exists for one simple reason: to get you to the start line slightly bored, mildly twitchy, and annoyingly fresh –> Thatβs the “sweet spot”.
Itβs built on two ideas that sports science actually agrees on (a rare event): tapering and nutrition periodization. No crystals. No miracle powders. Just physiology doing its thing if you donβt mess with it.
Training Taper: Doing Less Is a Skill
Tapering is the controlled art of not ruining months of work in the final week.
But in other cases, when you are planning a long ride, hike, or bikepacking trip and wondering where you can safely refill water? GPX Water Mapper helps you find potable water sources along any GPX route β quickly, privately, and for free.
Try it, explore the code, and join the (dev) community:
Most weather apps just tell you the numbersβtemperature, wind, UV, etc.βbut as cyclists, we need to know what those numbers mean for the ride.
Weather 4 Bike bridges that gap: it translates raw weather forecasts into clear, activity-aware guidance for road, gravel, and MTB. With one glance, you know whether to head out, wait, or change routes.
The Bay Area (San Jose to San Francisco) is a dream playground for road cyclists: ocean views, towering redwoods, lung-busting climbs, and rewarding descents all within a few pedal strokes. Whether youβre training for a big event or just out to explore, the Peninsula and Santa Cruz Mountains offer some of the most iconic rides in California.
Below are six of my favorite road rides in the Bay Area, complete with Strava route links, ride highlights, coffee stop suggestions, and a few bathroom tips to make your day in the saddle smoother.
As a long-distance runner and endurance athlete, reading Haruki Murakami’s “What I Talk About When I Talk About Running” felt like connecting with an older brother’s spirit. It was the 3rd time for me. Each time, at a different age (23, 37, and now much older), I experienced a different type of reflection and understanding.
Running is often associated with pushing harder, going faster, and constantly challenging yourself. However, the true secret to improving your endurance and overall performance lies in the often-overlooked practice of running in control (=you will feel it as slow).
Specifically, training in your Zone 2, also known as the “aerobic base building” zone, can yield remarkable benefits for runners of all levels. We can dive into it a bit later in this post.
But what exactly is Zone 2 running, and why is it so beneficial?