644 tests, and why it matters
15 Jun 2026
A solo project with no team to correct you. On why a test suite is not about the number, but about the safety net it gives you.
15 Jun 2026
A solo project with no team to correct you. On why a test suite is not about the number, but about the safety net it gives you.
12 Jun 2026
A database message said a change had succeeded. Nothing had changed. On false reassurance and why a system with money needs an independent watchdog.
11 Jun 2026
In one day my system failed four times. Two of those were real bugs. The other two were noise. Seeing the difference is a skill in itself.
10 Jun 2026
Two numbers on my dashboard contradicted each other. It turned out not to be a display glitch, but a real bug in how the system made decisions.
9 Jun 2026
I am making the playitsmart live dashboard public. What it is, how to read it, what the terms mean, and why I am choosing full transparency.
9 Jun 2026
A failed cron exposed that an entire part of my trading system had never actually run. On the difference between looks like it works and works.
28 May 2026
The full stack behind playitsmart.nl: Cursor, Python, Supabase, Render, Interactive Brokers, Next.js. Which tools, and above all why these choices.
27 May 2026
An AI has no memory between sessions, and honestly a human barely does either. Why I record everything I will need later in files, not in my head.
26 May 2026
An AI has no memory between sessions. Why I capture context in config files on every AI project, and how that documentation steers the work.
25 May 2026
The six-eyes principle: three perspectives on every decision in my trading system. Why I deliberately separate the thinking from the building with AI.
24 May 2026
A month of building with AI: twenty-five blog posts and a live trading system on a paper account. The honest lessons about what AI does and does not speed up.
20 May 2026
Six production commits on one Saturday. Not a single line typed myself. The six-eyes principle in practice: I think, Cursor builds, Harry reviews.
19 May 2026
Wolters Kluwer holds a high factor score in my portfolio while its price has dropped 63% in twelve months. What is my system not seeing?
18 May 2026
My live dashboard showed zero positions. IBKR Portal showed fourteen. A detective story about a constructor parameter that poisoned everything.
17 May 2026
A NULL field in score_30d_ago held up my entire first production cron. Two commits and 26 hours later it was fixed. What I learned.
15 May 2026
Backtest returns can come out 5 to 10 percent too high because of one invisible mistake. The difference between thinking you have an edge and having a data illusion.
14 May 2026
My momentum calculation ran flawlessly this morning. Top twenty looked logical. Done, I thought. This afternoon I built the fridge.
13 May 2026
How a production trading system forced me to look beyond quick fixes to fundamental architectural choices.
13 May 2026
My system could mistake a dividend payment for a crash. For ING, that would have generated wrong signals for months without me noticing.
12 May 2026
Eighty-six NULLs in my data. Bug? Claude had a SQL query ready before I could think. Three minutes later I knew it wasn't a bug.
11 May 2026
Five hundred American stocks took one API call. Fifty-four Dutch stocks took an entire afternoon. Here's how precision over convenience plays out.
10 May 2026
An honest story for those who aren't programmers, but curious about what it's like to build something with AI. About moments of wonder and frustration.
9 May 2026
A Sharpe ratio of 7. Three times higher than what top hedge funds achieve. That can't be right. Two bugs later, I hadn't even finished my coffee.
8 May 2026
Four years simulation of my trading system. +62% return, Sharpe 0.60, max drawdown -20%. Honest about what the system can and cannot do.
7 May 2026
How lessons-driven prompts turned three iterations of pain into one iteration of progress. A pattern that works for any complex AI-coding project.
6 May 2026
When you measure value across all sectors at once, you get systematic bias toward old-economy stocks. The fix took a day. The lesson took longer.
5 May 2026
SanDisk delivered +2891% over twelve months. That's 18 standard deviations above average. Without z-scores and winsorization, one outlier would dominate the entire ranking.
4 May 2026
On June 1, 2022, my system would have ranked Heijmans first across 462 stocks. Today the price is up nearly 200 percent. But I don't know if that was edge or luck.
3 May 2026
Walmart, Costco, Apple, Microsoft. Hundreds of companies use a fiscal year that doesn't match the calendar. Here's how that broke my system and what I did about it.
2 May 2026
playitsmart.nl gets an opinion today: four factors, z-scores, composite scores. How price data, momentum, value, quality and catalyst come together for the first BUY ranking.
1 May 2026
686,804 data points in my database before 11 AM. And the honest truth is: I just wanted to keep going.
30 Apr 2026
Today I set up a Python backend for playitsmart.nl. Three hours of work, foundation in place. And to be honest: I barely understand it.
27 Apr 2026
26 Apr 2026
25 Apr 2026
24 Apr 2026