notes shipped events
Feed
-
The Check Ran Once in 165 Sessions, and I Got the Reason Wrong
I built a check that fires when I sit down to work, rolled it across a dozen repositories, and wrote a note about it. Three weeks later my session store said it had run exactly once outside the repo where it was built. The obvious reading was a discipline problem, and I argued myself into it for most of a day before running the check by hand from the wrong folder and watching it fail to find its own program. It had never been able to start, in any repo but the one it was written beside. What the numbers measured was real. The reason I hung on them was invented, and it held up for three weeks because it was plausible and nobody ran the command that would have killed it.
-
Everybody Wants the Agent. Somebody Has to Build the Floor.
Most organizations have bought AI subscriptions and are hoping the automation arrives on its own. This is the roadmap that actually gets there, and the implementation behind each stage. Instrument and make one repository legible now. Extract skills from the people who do the work and let developers run them by hand. Score what happens. Then fire the same skills from triggers, then chain them into loops that run unattended. One artifact travels the whole way, so there is never a second system and never a migration project. Includes what to build now, what six months looks like, where a year lands, and the six ways these systems fail without telling you.
-
Don't vibe anything you can't code yourself
Infosession: Navigating Tech, the general assembly of Google Developers Group on Campus - Holy Angel University, about 60 students on a Saturday-night call. Louella Salenga took the ethics of AI in learning and teaching, Marc Samuel Pabilona took security in the age of AI, and I got the one that sounds like a compliment until you look at it: vibe coding, and where it stops working.
-
Ten Times Zero Is Still Zero
How I actually work with AI, and why it holds up. AI is a multiplier, not an addend; it multiplies what you already are, and ten times zero is still zero, so I made sure I wasn't zero first. Then the receipt, pulled from this portfolio's own git history: nearly as much writing as code, produced fast, with an AI co-authoring every commit. Professional vibe coding is the human writing the rails and the AI writing much of the code inside them. Includes the playbook, the context and loop engineering underneath it, what to check before anything counts as done, and where to start if you are early.
-
Watch Its Hands
Most AI works offstage. You ask, it disappears, it comes back with a result and a summary of itself. I built the opposite: the AI operates the same controls I do, enters through the same single door, and leaves its handwriting on everything it touched. Here is the plain-language version of the argument, and the part I have not proven yet.
-
The Console I Built to Stop Drowning
The story of the Course Console, and how it grew out of a scaling problem. Going from four classes to seven made attendance alone unmanageable, so I built a data-free QR scanner: signed codes a student cannot forge, scanned on my phone, verified by a workflow. That scanner taught me a shape, a page that holds no data, reads my repos live, and writes back only through one reviewed door. The same shape then swallowed grading review: AI-proposed grades render in grain type until I approve or edit them, at which point they go clean, and nothing reaches a student until I turn my decisions into a prompt I have read. One console, two tabs, one rule: the machine drafts, I sign.
-
I Was Shipping Faster Than I Could Understand It
How I got back on top of AI-assisted work across a dozen repos: one shared workflow instead of a dozen improvised ones. Plan state moved out of chat and into markdown files the AI already edits, with a board that renders them and writes nothing back. A work-triggered heartbeat (a doctor at every session start, CI on every push) that makes skipped chores visible. An accountability contract (a run ledger, declared rails, and verification by a second pass) that keeps an unattended run honest, and a documentation discipline borrowed from aerospace manuals and from Addy Osmani's writing on loop engineering. One person applying the shape the field agrees on, honest that it isn't proof it scales to a team.
-
PROOF is live
The plan board stopped rendering a snapshot and started streaming: cards move as the work moves, pushed over server-sent events, on this very site.
-
Closed a loop I called at the top of a note
The plan for building PROOF was the first thing on its own board. I published the plan for the plan tool before the tool existed, and it held.
-
PANTRY's mindmap shipped
PANTRY's whole-codebase mindmap shipped. It is AI-legible, not AI-powered: it runs no model, it just makes a project easy for an agent already on your machine to read.
-
This Site Feels Like an App. It's a Stack of Full Page Loads.
A technical tour of how tjakoen.github.io is built, and why it is a different way of doing things: the single-page feel is a cross-document View Transition, not an SPA; there is no build step, because a Bun server composes the HTML and the static site is a frozen crawl of it; there is no client framework, only a handful of small scripts leaning on native browser elements; writes go through one path that also runs with no server; and the whole thing is three layers stacked one direction. The AI side of the story lives in its own whitepaper.
-
The Browser Grew Up While I Was Busy With Frameworks
I spent years inside frameworks because the native web platform couldn't do the job. It can now. Here is the specific, mildly technical account of the browser features (View Transitions, the dialog element, details, has, color-mix) that let me build a whole stack with no framework and no build step, what that actually buys you, and the honest limits. Including the benchmark I kept promising and finally ran: the same small blog built four ways, where Next ships about 118 kilobytes of JavaScript for one filter and my stack ships about two, plus Declarative Partial Updates, the new browser primitive that hands the last piece of glue back to the browser.
-
One design system, one vocabulary
The whole site is one design system: every surface is addressable by a human and an AI through one shared vocabulary, and the AI's hand stays visible on the page as grain. One vocabulary, one direction.
-
How I Turned a GitHub Org Into My Whole Classroom
The maker's story of a GitHub-native course platform: GitHub is the LMS, a repo is the coursework, a push is a submission, and grading is an Action. How the "repo is the platform" reframe fell out of having no budget, the one-engine-many-courses design, and the unglamorous bugs that turned out to be the real work: access control, scoped tokens, and treating repo names as data.
-
I Nearly Quit Teaching. So I Automated the Part That Was Killing Me.
Why I teach when the math says I shouldn't, how I run a classroom (treat adults like adults, lean into self-study, skip the fluff, go straight at the hard parts), and how, after a semester that nearly made me quit, I automated grading and coursework onto a GitHub-native platform so the mechanical grind stopped stealing the time I actually wanted to spend on students.
-
New panels on the desk
This feed, and a compose window that doubles as the contact form. The site is static, so the compose window hands your message to your own mail app rather than pretending to have a backend.
-
I Built a Whole Stack Because No To-Do App Would Have Me
How trying to organize my own life turned into a no-build stack, a design system, a content engine, and an AI that manages me.
-
One Vocabulary, Two Operators
A research-style positioning of GRAIN, an AI-interaction design system: a UI where a human click and an AI decision resolve to the same closed, semantic action-vocabulary through one write door, with the AI's presence disclosed as an in-surface provenance signal. The contribution is an alternative *modality* for AI, a design-system claim, independent of what is built with it or where it runs.
-
The prize we gave out was not for the best demo
EXPE21ENCE: The Hackfest, run by YSES at UP Los Baños. Career Team came in as a premier sponsor, so I gave a talk and then sat as a judge for our own special prize. We handed the Accelerating the Human Condition Award to two teams, and neither of them won it for the code.
-
A booth in the morning, a stage after lunch
EXPE21ENCE, the Practicum Fair, Job Fair and Company Talks run by YSES at UP Los Baños in their twenty-first year. Career Team took a booth and a stage slot on the same day: 130 sign-ups on the sheet, then a talk called From Code to Career. A recruiting day, and I will not dress that up.
-
Talking AI to a room of artists
Re: AI-lity Check, a seminar on originality and integrity amidst AI-driven media, run by MAFIA, the Multimedia Aficionados, the student org for the Entertainment and Multimedia Computing program. I got half an hour to talk about AI to a room of artists, which is a bit like turning up to explain the weather to people already standing in the rain. The best part came later, in the Q and A.
-
I handed out the criteria, then had to score them
Beyond Limits: The AI Hack, the GDG on Campus hackathon at Holy Angel University, ran alongside the first Regional AI Conference. I opened it with the ideation workshop, which is an hour of telling ten teams what makes an idea worth building. Two days later I was sitting behind a nameplate with a scoring sheet, marking the same teams against roughly the same list. The team that won broke my advice on purpose.
-
The slots were gone before I said anything
Sleek & Swift, a hands-on Tailwind and shadcn/ui workshop run by Code Geeks, the student organization for the computing programs at Holy Angel University. Two hours in a full lab on a Wednesday afternoon, registration closed a day early. Written up a year to the day afterwards, which is late enough that I say so in the post rather than pretending otherwise.
Nothing under this tab yet.
🤖 Built with Claude. I don't prompt and pray, I prompt and prove. How I actually work with AI, receipts and all →