What You'll Find Here

You'll find posts about training, physiology, data analysis, machine learning and the tools and ideas that help us get better—on the road, on the track, and in life.

Engineering and Tool Development

Much of this blog documents the technical journey of building better data analysis tools for runners. You'll see me diving deep into Garmin FIT files, experimenting with Python data science libraries, developing algorithms for training analysis, and sharing the inevitable frustrations and breakthroughs that come with any engineering project.

I'm building these tools primarily for my own use - I'm my own guinea pig with six years of Garmin data, seven years of Oura ring data, and four years of morning HRV measurements - but I'm documenting the process because others might find it useful, or at least entertaining.

This isn't just about the code, though. It's about understanding what tools runners actually want and need. Building products people want to use is hard, and I want to learn what kinds of analytical capabilities keen runners are looking for before spending years building something nobody uses.

Exercise Physiology and Training Science

To build effective training tools, you need to understand the underlying physiology. I'll be diving deep into topics that are fundamental to endurance performance: How do our energy and metabolic systems actually work? What happens in our bodies when we run? How do we set heart rate zones accurately, and how do we know if we're getting it right? What's the likelihood we're wrong, and how can we improve our estimates over time? These posts will often involve academic paper reviews and attempts to distill complex physiological concepts into something actionable for everyday runners. I'm not a doctor or sports scientist, but I believe there's value in a technical person working through these topics methodically and sharing the journey.

Practical Training Guidance

Beyond the theory, you'll find practical guides on topics that matter for day-to-day training: How to structure your training effectively? What does the science actually say about 80/20 training? How should you strength train to improve speed and stay injury-free? What's the best approach to recovery? How do you fuel for longer runs? I'll also tackle some of the topical questions that pop up in mainstream media with the nuance they deserve: Do low-carb diets work for runners? Is running actually bad for your knees? Does running help with weight loss? The goal is to get past the headlines and into the evidence.

Why This Approach?

I find that the best way to learn is to write, and writing forces you to filter out bad information because you have a duty to your readers not publish total rubbish. Much of the online discourse around running is low-effort "content", even from people with impressive credentials. There's room for someone to approach these topics methodically, with intellectual honesty about what we know and don't know.

Who is this blog for?

This blog is primarily for runners who want to get faster and are willing to dig into the details—people who take their running kit on holiday, use a chest strap and immediately sync their watch after every run! But if you're newer to running and can see yourself getting quite into it, this might be useful too, even if it's occasionally full-on.

On AI and Transparency

As an experienced software developer with over 25 years of writing code, I use AI tools like Claude and Cursor as part of my development workflow.

This blog itself was built with AI assistance. Part of the reason for writing my own blog software — a cliché in tech circles, I know — was to practise developing with AI and determining the workflow and tools which work best for me on a project which isn't too taxing for me, or the AI!

My approach to AI in software development is straightforward: don't be lazy. I prompt AI tools the same way I would brief a junior engineer working for me. Using clear requirements and context to get the best results. More importantly, I review and understand everything the AI produces so I can make manual modifications when needed. The AI accelerates the work, but I remain responsible for the architecture, logic, and final implementation.

For writing, I use AI occasionally to help refine and polish my posts, but all first drafts are written by hand. The ideas, research, and core content come from me. AI just helps me express them more clearly when I'm stuck on phrasing or structure, which happens reasonably often!

I've always keen a keen user of the em-dash, well before LLMs became mainstream and so the presence of one in my writing doesn't necessarily indicate LLM produced prose.

I believe in being transparent about these tools because everyone uses them now, but not everyone is honest about how. The goal is to use AI to amplify human capability, not replace human judgment.

The Technical Side

This site is built with custom Python tooling. It's a static site generator which ingests markdown files to produce simple HTML pages. I've gone for a clean design, drawing inspiration from substack. There's no cookies or tracking of any kind at this point in time. You can check out the static generator on GitHub here. The technical choices reflect the same philosophy as the content: build exactly what you need, understand how it works, and share the process.

About me

Nerdy Runner

My background spans computer science, chartered accountancy, bank auditing, startups and a decade working in blockchain and crypto. This blog and the running tools I'm building serve as my antidote to the crypto world. A return to something more tangible and down to earth, where the only thing being optimised is how fast you can move your own two feet.

Copyright Notice

All content on this blog, including but not limited to articles, code, and images, is copyright Roger Willis. No part of this content may be reproduced, distributed, or transmitted in any form or by any means without the prior written permission of the author.

If you have questions, feedback, or want to collaborate, feel free to reach out at rojeee [at] gmail [dot] com.