Internal application · Product Engineer · o2oInterne sollicitatie · Product Engineer · o2o
I've been at o2o since April 2025, in the bicycle squad. Back-end, front-end, and a lot of AI. It's good work. But the part I keep coming back to is the part nobody assigned me: the Dynamo app and the uBike store, where I decide what gets built, build it, deploy it, and answer for it afterwards.
Ik werk sinds april 2025 bij o2o, in de bicycle squad. Back-end, front-end, en veel AI. Goed werk. Maar het stuk waar ik telkens naar terugkeer is het stuk dat niemand mij heeft toegewezen: de Dynamo-app en de uBike store, waar ik bepaal wát er gebouwd wordt, het bouw, deploy, en er daarna op aanspreekbaar ben.
That is the whole difference this role makes. Today I mostly build what has already been decided. In the tools I own end to end, I decide first — who it is for, what it has to do, and what it does not need — and then ship it. “Je denkt in product, niet enkel in tickets” is the line in the posting I keep coming back to, because it names the difference between the two halves of my week.
Dat is precies het verschil dat deze rol maakt. Vandaag bouw ik vooral wat al beslist is. In de tools die ik end-to-end bezit, beslis ik eerst — voor wie het is, wat het moet doen, en wat het níét nodig heeft — en lever ik het daarna op. “Je denkt in product, niet enkel in tickets” is de zin uit de vacature waar ik telkens naar terugkeer, omdat ze precies het verschil benoemt tussen de twee helften van mijn week.
Applying from inside means I am not guessing. I know which parts of the platform are load-bearing, which are held together by habit, and which small tools have had no real owner since whoever wrote them moved on to something else. That last category is the one I want.
Van binnenuit solliciteren betekent dat ik niet moet gokken. Ik weet welke delen van het platform dragend zijn, welke door gewoonte overeind blijven, en welke kleine tools geen echte eigenaar meer hebben sinds wie ze schreef aan iets anders begon. Die laatste categorie is degene die ik wil.
I did not start out as a developer. I studied communication sciences, spent three and a half years running my own breakfast and coffee business, and retrained at BeCode in 2021. So I have spent more of my working life deciding what a business should do than writing the code for it — and I have never managed to switch that half off. For a Product Engineer I would argue that is the point rather than the gap.
Ik ben niet als developer begonnen. Ik studeerde communicatiewetenschappen, runde drieënhalf jaar mijn eigen ontbijt- en koffiezaak, en volgde in 2021 de opleiding bij BeCode. Ik heb dus meer van mijn loopbaan besteed aan beslissen wat een zaak moet doen dan aan de code ervoor schrijven — en die helft heb ik nooit kunnen uitzetten. Voor een Product Engineer lijkt me dat eerder het punt dan het gat.
Agents produce a large share of my output now. The judgement is not in the prompting — it is in knowing where to let them run and where a plausible-looking wrong answer costs someone real money. That is written out in agents.md.
Agents produceren vandaag een groot deel van mijn output. Het oordeel zit niet in het prompten — het zit in weten waar je ze laat lopen en waar een plausibel ogend fout antwoord iemand echt geld kost. Dat staat uitgeschreven in agents.md.
CV is on the desktop. Yes, it's a Word document. Read the comment in the margin.
CV staat op het bureaublad. Ja, het is een Word-document. Lees de opmerking in de marge.
Fullstack developer in the Laravel and Vue ecosystem, with a background in communication sciences and three and a half years of running my own business. I work across the whole stack and lean on AI agents daily. What I am best at is the step before the code: deciding what is worth building, for whom, and what to leave out.
Fullstack developer in het Laravel- en Vue-ecosysteem, met een achtergrond in communicatiewetenschappen en drieënhalf jaar eigen zaak. Ik werk over de hele stack en gebruik dagelijks AI-agents. Waar ik het sterkst in ben is de stap vóór de code: bepalen wat de moeite waard is om te bouwen, voor wie, en wat je weglaat.
| # | Name | Naam | Time | Tijd | |
|---|---|---|---|---|---|
| 1 | Early to the Party | 4:05 | |||
| 2 | Is That Enough | 7:46 | |||
| 3 | Kingston | 3:22 | |||
| 4 | The Rising Sun | 4:20 | |||
| 5 | The Magician | 3:51 | |||
| 6 | Prototype | 5:26 | |||
| 7 | Miss Modular | 4:29 | |||
| 8 | Ventura Highway | 3:31 | |||
| 9 | Hang on to Your Love | 4:30 | |||
| 10 | Love in Music | 3:41 |
One metric, and the only one this application is really about: the share of the week I spend deciding what to build rather than being told. Eén metric, en de enige waar deze sollicitatie echt over gaat: het deel van de week dat ik beslis wát er gebouwd wordt in plaats van het te horen te krijgen.
These are my estimates, not telemetry. The decimals are not the point — the gap between the two bars is. I already work the second way in a corner of my week. This role makes that corner the job. Dit zijn mijn inschattingen, geen telemetrie. De cijfers achter de komma zijn het punt niet — het verschil tussen de twee balken wel. In een hoekje van mijn week werk ik al op de tweede manier. Deze rol maakt van dat hoekje de job.
I don't know yet which domain I'd be given, so these are about method, not about a backlog I haven't seen. Ik weet nog niet welk domein ik zou krijgen, dus dit gaat over werkwijze, niet over een backlog die ik nog niet gezien heb.
| Kind of work | Soort werk | Autonomy | Autonomie | My review | Mijn review |
|---|---|---|---|---|---|
| Tests, fixtures, migrations | Tests, fixtures, migraties | Free rein | Vrij spel | Skim the diff, trust the suite | Diff scannen, suite vertrouwen |
| Internal tooling, scripts, n8n flows | Interne tooling, scripts, n8n-flows | Free rein | Vrij spel | Does it work? Ship it. | Werkt het? Ship it. |
| UI copy & Vue components | UI-copy & Vue-componenten | Guided | Begeleid | Read every string, click every state | Elke string lezen, elke state klikken |
| Anything touching money or lease terms | Alles met geld of leasevoorwaarden | Kept on a short line | Strak opgevolgd | Line by line, plus a second pair of eyes | Regel per regel, plus een tweede paar ogen |
Written as a repo file would be, because that is where it belongs.Geschreven zoals een repo-bestand, want daar hoort het thuis.
What moving me actually costsWat mij verplaatsen echt kost
Hiring me internally is not free. A team loses a developer. Pretending otherwise would be the least product-minded thing on this desktop.
Mij intern aannemen is niet gratis. Een team verliest een developer. Doen alsof dat niet zo is, zou het minst productgerichte op deze desktop zijn.
My share of the bicycle squad's delivery work on the bicycle tool. Plus the smaller tools I currently keep alive on the side — those either come with me as an explicit domain, or they need a named owner who isn't me. Leaving them where they are is the one option that doesn't work.
Mijn deel van het werk van de bicycle squad aan de bicycle tool. Plus de kleinere tools die ik er vandaag bijhoud — die gaan mee als expliciet domein, óf ze krijgen een eigenaar met naam die ik niet ben. Ze laten waar ze zijn is de enige optie die niet werkt.
Less squad delivery. That is the trade, plainly: fewer tickets closed in bicycle squad, in exchange for someone actually owning the work that currently has no owner. Better said now than discovered in month two.
Minder squad-delivery. Dat is de ruil, rechtuit: minder tickets afgesloten in bicycle squad, in ruil voor iemand die het werk bezit dat vandaag geen eigenaar heeft. Beter nu gezegd dan ontdekt in maand twee.
If six months in I am executing rather than deciding, we say so at six months instead of eighteen. I would rather go back to the squad early than quietly hold a title that doesn't match the work.
Als ik na zes maanden aan het uitvoeren ben in plaats van beslissen, zeggen we dat na zes maanden en niet na achttien. Ik keer liever vroeg terug naar de squad dan stilletjes een titel te dragen die niet klopt met het werk.
1 item
1 item
Trash is empty.
Prullenmand is leeg.
“A dry Word document is outdated.” — the job posting
“Een droog Word-document is achterhaald.” — de vacature