Published work
What I've shared.
I write about building software, training for HYROX, and the moments where those two parts of my life overlap. Each post opens where I originally published it.
AI-Native Software Leadership
8 posts
Training to Compete
2 posts
The Crossover
4 posts
Uncategorised
54 posts
Updated 19 Aug 2026 · NZ time
AI-Native Software Leadership
Building software, leading teams, and putting AI to work.
8 posts
Instagram
Last year I used 21.9B AI tokens across 44,981 agent messages. My first 31 days with Codex used 15.3B. The surprise was how uneven it was. I only coded hard one or two days most weeks. A few deep sessions carried most of the usage. I was h…
11 Aug 2026
X
We run a lot of A/B tests at work. Most fail. That is fine. A winning test on an upgrade flow with almost no traffic can matter less than a small lift where users actually drop out. The trick is rarely the point. Finding the bottleneck is.
11 Aug 2026
LinkedIn
The files were gone. The WSL virtual disk was still 545 GiB. This is the sanitized script that compacted it.
10 Aug 2026
LinkedIn
It has become much easier to put a lot of AI tokens to work. Last year, I used 21.9 billion tokens across 44,981 agent messages in Cursor. In my first 31 days with Codex, I used 15.3 billion. My busiest day used 2.7 billion. That is 70% of…
5 Aug 2026
LinkedIn
Lumin is the best place to work and get really good with AI. We will train you and also pay for your token habit Although I wouldn’t mind a 2026 Mustang Max Ferguson
23 Jul 2026
LinkedIn
When I was learning to code, I had a habit. I would get something working, then stop and hunt for a cleaner way to do the same job. In Python that often meant swapping a loop for a map. Nothing made me do it. The code already ran. I rewrot…
8 Jul 2026
LinkedIn
Last year I gave myself one rule. I would not write code by hand. Whatever I built, I built with AI. The rule fit in one sentence. Keeping it was the hard part. For months the work was slow. The old way would have been faster right then, a…
7 Jul 2026
LinkedIn
The first thing my AI does each morning is read my Slack and Notion and build my to-do list, sorted against our OKRs. Dull work. Work I already did by hand. That is the whole point. I point AI at work I already understand. A second one rea…
2 Jul 2026
Training to Compete
The work, setbacks, and decisions behind the HYROX build.
2 posts
Threads
When I was in a university athlete programme, I asked my trainer about protein. I had already trained on structured programmes for about 10 years. Some of the athletes competed internationally. I expected a detailed answer. He said most pe…
11 Aug 2026
LinkedIn
I thought I was training 8 to 10 hours a week for HYROX. The logs said four. Eight to ten was the plan. I had only hit 10 hours once in the last two or three months. Most weeks were closer to 6 to 8. After an injury in July, the last month…
11 Aug 2026
The Crossover
Real moments where software leadership and training overlap.
4 posts
LinkedIn
The hard part of leadership is knowing what I fall back on when a decision gets messy. Watching the HYROX World Champs made that obvious. Some athletes had a great race. Some fell apart. The ones who struggled mostly had the same problem:…
6 Jul 2026
LinkedIn
I set a HYROX training plan a few weeks ago. Run these days, lift those, easy work between. Then I stopped thinking about it and just followed it. A few weeks in, the sessions hold. I do not wake up motivated most mornings. The plan carrie…
5 Jul 2026
LinkedIn
I pulled my hamstring a few days ago, mid training block. So I eased off, which I had not planned to do. The forced rest gave me room to look at the last few months instead of just the next session. Day to day, none of it feels like progre…
4 Jul 2026
LinkedIn
For a couple of weeks before I picked up an injury, my hamstrings were tight every session. Not sore. Just tight. I read it as stiffness and kept training. That tightness was the warning. The muscle was overloaded, so my body clamped down…
3 Jul 2026
Uncategorised
Published posts that have not been assigned a pillar yet.
54 posts
Threads
I trust an AI workflow more when the work gets a second pass. After the first agent finishes, I give another agent the output and a clear standard to check it against.
18 Aug 2026
Threads
The phone has become where I check in on work already running. I start a task, leave it running, then return to see the result. I probably use Codex more there than on my computer.
18 Aug 2026
LinkedIn
Unsurprisingly, AI adoption did not lead to mass unemployment
18 Aug 2026
Threads
I am trying to measure my content work without pretending the numbers know more than they do. Hours spent tell me very little. Posts published count the reps, but not the quality. At this scale, views are noisy. For now, I can measure whet…
17 Aug 2026
X
Before difficult work or training, I have started replacing "this will be hard" with "this will be fun." It puts me in a better frame before the hard part starts.
17 Aug 2026
Threads
I had put my training at close to ten hours a week in my head. The logs mostly showed four to six. The tracking works for me because it happens in the background.
17 Aug 2026
X
I prefer counting work done to time spent on a task. Writing a number of posts feels more motivating than staring at a screen for an hour. Time expands for me. I stare at a screen. Counting reps or work done does not measure quality. Neith…
17 Aug 2026
Threads
A feature used again and again can be good news. It can also mean someone is stuck in the workflow. The count does not settle it. I still need to know what they were trying to do.
17 Aug 2026
X
Background tracking gave me a number I would not have chosen. I thought I was training close to ten hours a week. The logs mostly showed four to six. https://t.co/1uEOiHlJsp
17 Aug 2026
Threads
I gained and lost about a kilogram in a day. It was unlikely to be a kilogram of fat. That is the annoying thing about noisy metrics. The number is real, but its explanation is not inside it. Revenue can behave the same way. A movement can…
17 Aug 2026
X
Customer feedback can break an assumption I was carrying. The events did not change. My explanation did. That is why I treat analytics as a prompt to ask what the customer was trying to do.
17 Aug 2026
Threads
I am bad at judging a run from inside the run. A session can feel awful while the metrics are good. An easy one can look worse than I expected. I do not measure because I enjoy structure. I measure because my memory and mood are not very r…
17 Aug 2026
X
When I assess AI risk for a software business, I split it in two. Could the customer move the task to an LLM? Could AI change how they find the product? Those are different threats. They need different answers.
17 Aug 2026
LinkedIn
Opening Codex on my phone took about five minutes, when it loaded at all. I had more than 6 GB of local chat history. I think the mobile app was trying to load the whole backlog. After I archived the old chats, it took about 20 seconds on…
17 Aug 2026
Threads
I avoided programming papers at university because I thought I was not logical enough. Eventually I tried programming. It was fun. I got kind of good at it. That assumption had been limiting me.
16 Aug 2026
X
I expected structured strength work to disrupt my running. Across 37 Apple Watch VO2 max estimates from 1 June to 15 August, the trend kept rising through eight logged strength sessions. They are estimates, but the disruption I expected is…
16 Aug 2026
Threads
Joe and I were talking about athlete-first training. Average advice gets me to a starting point. It does not tell me what fits the person in front of me. I need to account for the risk before I bend a rule in training or business.
16 Aug 2026
X
The average rule can be a useful starting point. It may still be wrong for the athlete or business in front of me. When I break it, I need to understand the risk I am taking.
16 Aug 2026
Threads
I have four Gmail accounts that open email in different ways, even though I never chose different settings. My original Instagram account showed no ads for ten years. A new account showed an ad. I suspect the old account was in a holdout.…
16 Aug 2026
X
I asked a trainer in my university athlete programme about protein. He said most people would improve by turning up, lifting and going home. So in this case, the basic session mattered more than detailed optimisation.
16 Aug 2026
Threads
I track food without weighing every ingredient. It is not exact, but it is enough to show which meals carry more calories or fat than I thought. I would quit if perfect data were the price of useful data.
16 Aug 2026
X
I thought I was not logical enough for programming, so I avoided the papers. Then I tried it. It was fun, and I got kind of good at it.
16 Aug 2026
Threads
I remembered my running improving in four or five breakthroughs. The chart looks almost boring. It rises steadily across messy weeks, an injury, and the start of strength work. I seem to remember the dramatic moments and miss the quiet acc…
16 Aug 2026
X
Repeated tool use is an observation, not an answer. It might mean a feature is useful. It might mean someone is trying to get past it. Understanding the intent matters more than celebrating the count.
16 Aug 2026
Threads
I've started replacing "this will be hard" with "this will be fun." It's a cliche, I know. But I perform better when I bring a positive frame to difficult work and training. Sometimes the pain cave is a fun place to be.
16 Aug 2026
Threads
The numbers are small. LinkedIn moved from 1,138 to 1,145. X stayed at 52. Threads and Instagram are both at 0. I am fine with that. I am building the habit first and using the reps to test different kinds of content. I expect plenty of po…
16 Aug 2026
X
Early follower counts: LinkedIn: 1,138 to 1,145 X: 52 to 52 Threads: 0 Instagram: 0 My focus now is building the publishing habit and testing different kinds of real content. Once I have enough signal, I will do more of what works.
16 Aug 2026
Threads
We run a pretty comprehensive A/B testing program at Lumin. Some tests win. Some lose. Most fail. The tempting bit is the clean story after a win. A button changes colour. A number moves. I care more about the question before it: where are…
16 Aug 2026
X
I measure lots of things because I am bad at judging my own performance. A run can feel bad while the metrics are high. Or it can feel easy while the metrics say otherwise. I do not measure because I enjoy structure. I measure because it h…
16 Aug 2026
Threads
I remember how hard the first podcast episode at Lumin felt. It was new, awkward, and probably not very good. We are seven or eight episodes in now. It feels much easier. I cannot measure the quality as neatly as a run. I just know the nex…
16 Aug 2026
X
First time doing something is always the hardest and gives the worst result The first podcast episode was the hardest one I have done. It was probably the worst too. 7 or 8 episodes later, it feels much easier
16 Aug 2026
Threads
After a bad week, I can find it hard to commit to doing it again next week. After a good week, I want to add more training and more work. I am trying to catch both moods before they plan the next week for me.
16 Aug 2026
X
A bad week makes me question the plan. A good week makes me want to add more to it. Neither feeling is especially useful. I'm trying to let the next week look like the plan, not a reaction to the last one.
16 Aug 2026
LinkedIn
I am testing a publishing routine across LinkedIn, X, Threads and Instagram. The early results are modest. From 4 to 11 August, LinkedIn moved from 1,138 to 1,145 followers. X stayed at 52. Threads and Instagram are both at 0. I am fine wi…
16 Aug 2026
X
I get weak answers from an LLM for the same reason I get weak business advice: missing context. A broad claim like "SaaS is dead" says little about one company. I need to know how its customers find it, what job they do, and which behaviou…
15 Aug 2026
X
Product analytics tells me what someone did. The hard part is working out what they meant to do. Repeated use may be engagement. It can also mean a feature got in the way. AI agents and people both struggle here. The intent behind the beha…
15 Aug 2026
X
I thought I was training 8 to 10 hours a week. My logs told a messier story. Across 12 complete weeks, I hit that range once. Two July weeks fell below four hours. I track the big things because my memory is a generous accountant. https://…
15 Aug 2026
LinkedIn
Lumin is somewhere you can do your life’s best work We also have very generous ai usage and support for anyone who wants to get really good with new ways of working
15 Aug 2026
X
I saw my first Instagram ad this week after ten years on the app. I made a new account because I heard Instagram had ads and wanted to see some. My old account seems to be in a holdout group, giving Meta a baseline for how ads affect engag…
15 Aug 2026
Threads
I am happy to let AI build my task list each morning. I know what good looks like, and I can catch it when a passing Slack mention turns into work I never agreed to own. Visual design is harder. Sometimes I know I dislike the result but ca…
15 Aug 2026
X
My weight dropped 1.4 kg between 9 and 10 June. Losing 1 kg of fat takes roughly a 7,700 kcal deficit. I had not done that. The scale had moved faster than fat can. Revenue is noisy too. I need the underlying mechanics to tell if a change…
15 Aug 2026
X
I hand AI more work when I know the job well enough to check it. It's too hard to verify and trust if I don't know the domain. Task lists: I can trace bad calls back to Slack. Visual design: I often know I dislike the result, but not why.…
15 Aug 2026
X
I have four Gmail accounts. They are all different. One opens email in a preview. Another opens it full screen. I never chose those settings. It is a glimpse of A/B testing at scale: keep people in stable cohorts, then let them change the…
15 Aug 2026
LinkedIn
I let AI build my task list each morning. I keep it on a short leash with visual design. I know the task-list job well enough to check the result. I can trace each task back to a Slack message. I can spot when the tool turns a passing ment…
15 Aug 2026
Threads
I keep seeing "SaaS is dead." I still cannot work out what decision that sentence is meant to help me make. If customers find a product through search, AI may change distribution before it changes the task inside the product. I need the bo…
14 Aug 2026
X
HYROX plan: I set it once and follow it for weeks. Work plan: I can rethink it by Thursday. Sometimes I adapt because work changes faster. Sometimes I keep my options open before one plan has enough time to teach me anything.
14 Aug 2026
LinkedIn
I followed my HYROX plan for weeks without renegotiating it every morning. At work, I do the opposite. When I want to improve something or push a piece of work through, I keep adjusting the plan. I react to the week. By Thursday I can be t…
14 Aug 2026
Threads
For two weeks before I hurt my hamstring, it felt tight every session. I kept reading it as stiffness and trained through it. In hindsight, that was the warning. I am very good at understanding a signal once it has become an injury. I stil…
13 Aug 2026
X
I learned to code by getting something working, then rewriting it for fun. The useful part was the feedback loop. Code runs or breaks. I knew quickly whether the next version was better. When I learn something new now, I first look for whe…
13 Aug 2026
LinkedIn
I gave myself one rule last year: I would not write code by hand. At first, it made me slower. The old way was right there, and I knew it worked. The new loop had quick feedback. The code ran or it broke. I could see where the prompt, cont…
13 Aug 2026
Threads
Most mornings I use AI to read Slack and build my task list. The clear bits are easy: work assigned to me and things I said I would do. Then there is Slack's grey area. A mention is not always an assignment. A useful thread does not always…
12 Aug 2026
Instagram
I am training for sub-60 Pro HYROX alongside a full-time software job. My plan said 8 to 10 training hours a week. The log says I got there once in the last 13 weeks. The latest complete week was 4.5 hours. July included an injury, so the…
12 Aug 2026
X
I made an AI skill to prepare for meetings from Slack. The bit I care about most is where the available context runs out. It marks the gap instead of guessing. I still read the sources and decide what matters in the room. https://t.co/Mlg6…
12 Aug 2026
LinkedIn
AI-native product leadership and the public pursuit of a sub-60 Pro HYROX.
12 Aug 2026