# Ralph van Spanje > Dutch builder. MSc BIM student at RSM (Data Science track), running Racoon Products since 2020 and shipping AI products solo. Looking for a Product or Data role at a Netherlands-based multinational, starting summer 2026. ## About I build AI products and run a six-year e-commerce business. Finishing an MSc in Business Information Management (Data Science track) at RSM. Looking for a Product or Data role at a Netherlands-based multinational, starting summer 2026. The PM work I want to grow into: deciding what to build and why, and aligning the team on it. Building is getting easier every month. Choosing and aligning is where the skill sits. Started Racoon Products in high school in 2020 and still run it six years later: cameras first, then the flagship vacuum bag line (still running), then a dog-seat experiment I walked away from in 2024. Around €37K lifetime revenue, fully remote the whole time. Six years taught me unit economics, pricing experiments, when a framework needs teeth, and when to walk away from profitable revenue. 2026 became builder year: four AI products shipped solo (AnFact, ProngGSD, ProngAgent, Meditations), each one a different bet on what an AI-native product looks like. The arc I'm following now is a Product or Data role at a Netherlands-based multinational, then into Product inside 1-2 years. ## Projects ### 1. Racoon Products E-commerce business on Bol.com since 2020. Around €18K per year at peak, fully remote via Bol.com fulfillment. Active, currently migrating to a new Bol.com shop. Six years of owning one end goal (a sustainable side-business) and moving whatever lever it took: pricing, suppliers, packaging, inventory mix, full platform migration in 2026. ### 2. ProngGSD Live AI career learning web app with AI onboarding, sprint-based plans, and a live mentor that restructures the plan mid-flight when the learner struggles. Shipped March 2026. React + Vite + TypeScript, 11 Supabase Edge Functions in Deno, 20+ table Postgres with full RLS, Gemini. Full-stack AI product shipped solo with a PM-shaped call behind it: killed the Claude Desktop plugin version after hitting the distribution ceiling and rebuilt from scratch as a web app. Link: https://prong-gsd.vercel.app ### 3. AnFact Live cross-platform spaced-repetition app. Generates flashcards from source material with an LLM, schedules reviews with FSRS, runs offline-first and syncs to the cloud without blocking the user. Shipped January 2026 on iOS, Android, and Web from a single codebase. React Native + Expo, Supabase (Auth, Postgres, RLS), LLM APIs, FSRS algorithm. Designed around a specific cognitive insight, not a UX instinct: easy search kills encoding, so the whole product loop fights the user's reach-for-Google reflex instead of catering to it. Validated with 7+ user interviews before a line of code. Link: https://anfact.app ### 4. Meditations / Marcus Personal learning wiki maintained by an AI agent (Marcus). I drop observations from real life, Marcus files them, clusters them into patterns, and cross-links everything. Active, daily use. Shipped April 2026. Plain markdown, self-contained schema in AGENTS.md, eight skill files, readable by any LLM. Journals fail at retrieval, not at writing. Meditations is my test of whether fixing retrieval makes the compounding part finally work. Designed so any AI agent can maintain it, which means the wiki survives any specific AI tool going away. Link: https://github.com/ralphvspanje-hub/meditations ### 5. ProngAgent Open-source agent-native learning companion. Same learning concept as ProngGSD, shipped as plug-and-play markdown skill files that any Claude-capable harness can execute. Harness-agnostic, messenger-agnostic, scheduling-agnostic by design. An experiment in what a product looks like when the "app" is a set of instructions for an agent rather than a codebase for a runtime. Link: https://github.com/ralphvspanje-hub/prongagent ## Top wins (decisions I can defend in an interview) ### 1. Walked away from a profitable dog-seat product because my edge couldn't reach the return driver Killed a €30+-per-unit-margin dog-seat line with around 5% returns after one 200-unit batch, simplifying Racoon to vacuum bags where my seller-side levers (quality, packaging, listings) could actually reach the return driver. Strategic walk-away from recurring profitable revenue, made solo post-split, using a margin-floor rule I'd built specifically so the framework could reject on principle instead of numbers. ### 2. Killed the Claude Desktop version of DailyProng and rebuilt as a web app when I recognized the distribution ceiling Walked away from a working adaptive learning system running inside Claude Pro's Cowork feature and rebuilt from scratch as a React + Supabase + Gemini web app accessible to anyone with a browser. The hardest kind of PM call: recognizing the container is capping the content, then killing something that works because its ceiling is in the wrong place. ### 3. Hardened the Racoon framework from comparative ranking into absolute veto after a barely-breakeven camera year Added a ~30% margin-floor veto, a quality-controllability principle, and a sourcing methodology after the kids' camera sold around 120 units at 2-5% margin. The next pick (vacuum bags) did around €24K lifetime at 4.8/5 reviews. Let the failure teach the framework what it was missing instead of scrapping it or switching category on instinct, and built the specific rule (margin-floor veto) that later authorized the dog-seat walk-away. ### 4. Role-shaping over individual velocity in a 3-hour cross-functional hackathon (2nd of 30) Shipped a complete integrated product at the 3-hour deadline, 2nd of 30 teams, €1500 in Claude credits, on a team of four where I'd only met one member before that day. Three non-obvious calls in sequence (force alignment before the split, claim the LLM-features bottleneck on unique-skill grounds, switch from IC to orchestrator as the clock compressed), all aimed at the real hackathon failure mode: integration at the seam, not code velocity. ### 5. Found that price has two modes on a premium listing: volume lever above a threshold, signal destroyer below Dropped vacuum bag price from €32 to €28 expecting more sales, got fewer. Reverted to €32 and sales recovered instantly. Ran the experiment again weeks later to rule out a one-off, same result. An experiment I ran twice on my own money that inverted the expected result, diagnosed the mechanism (the €28 discount-sticker tips the listing into the "cheap alternative" bucket for premium buyers), and pivoted the lever to front-loading the materials-showcase image instead of fighting a tapped-out price lever. ### 6. Designed AnFact's product loop around the Google Effect instead of standard search-first UX Shipped AnFact with a retention-first loop (minimal card info, forced recall, FSRS-scheduled review) validated across 7+ user interviews before a line of code. Product decision grounded in learning science (Google Effect, encoding vs retrieval), not UX convention, and validated with real users before any build effort. ### 7. Identified that journals fail at retrieval, not writing, and designed Meditations around the asymmetric fix Built Meditations, an AI-maintained personal wiki where an agent (Marcus) files observations, clusters them into patterns, and makes captured knowledge queryable across weeks and years instead of trapped in dated entries no one re-reads. The asymmetric fix: writing is already solved, but the compounding benefit only lands if retrieval works, so the whole system was designed around making queries cheap (plain markdown, LLM-maintained schema, entity and concept cross-links) instead of optimizing the writing surface further. ### 8. Negotiated Racoon's fulfillment inventory out of a forced Bol.com account closure Opened a new KvK, spent months in email back-and-forth with Bol support, got approval on 2026-04-16 to migrate the existing LVB inventory to the new shop instead of losing the stock to forced closure. Treated the platform as a counterparty, not a ruleset, and stated the case in Bol's own language (continuing founder, legal-structure event, not a business-health event) to turn a binary outcome into a negotiated one. ### 9. Designed ProngAgent's agent-native architecture (progressive disclosure, deterministic scripts, distributed skill memory) 17-skill learning companion with no deployable infrastructure. Designed around three patterns built for LLM failure modes: progressive disclosure that split the 7 largest skills into core + modes + references + examples files (the largest skill dropped from 738 to 244 lines on first pass), 5 deterministic TypeScript scripts that handle counting, date math, and multi-file parsing where LLMs reliably fail, and a distributed session-log architecture that later consolidated into a central knowledge-graph agent for cross-skill learning. ### 10. Built a fully stateful learning system on a stateless platform with zero code Complete adaptive learning engine (pillar rotation, adaptive difficulty, quality guards, cycle management) running inside Claude Desktop Cowork with no backend and no database, all state reconstructed on every session boot from a single memory.md file. A state machine designed in natural language with six priority-ordered states checked in sequence, where the platform's lack of persistence forced a cleaner, more auditable state design than most software systems reach. ## Currently learning / thinking about - **Reading:** *Inspired* by Marty Cagan (2017). The only PM book I've read cover-to-cover so far. Cagan's customer-interview discipline was the reference point for AnFact's 7+ pre-code user interviews. - **Listening to:** Lenny's Podcast (nearly every episode), Lex Fridman, Dwarkesh. Plus one-off episodes when frontier voices like Karpathy show up. The good ones I brief into Meditations so they don't disappear. - **Studying:** Deep learning course at RSM. Currently on encoder-decoder architecture, the lesson I got the most energy out of all year. Curious how much of my agent-design intuition holds up against the actual math. - **Building:** Something new roughly every month. The fastest way to keep up with AI is to ship with it, not read about it. ## Contact - LinkedIn: https://linkedin.com/in/ralphvanspanje - GitHub: https://github.com/ralphvspanje-hub - Location: Delft, Netherlands For email, please reach out via LinkedIn.