• 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.

    aivibe-codingworkflowfundamentalsnative-firstbatchgrain 15 sections

  • 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.

    aiworkflowmeasurementprocessstandards 6 sections

  • 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.

    aiworkflowstandardsdeveloper-toolsarchitecture 13 sections

  • 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.

    aihcigraindesign-systems 4 sections

  • 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.

    teachingaigrainattendancegithubassessment 8 sections

  • 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.

    aiworkflowprocessdeveloper-toolsstandardsplanning 8 sections

  • 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.

    batchgrainmillno-buildview-transitionsarchitecture 6 sections

  • 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.

    native-firstcssno-buildbatchweb-platformperformance 8 sections

  • 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.

    teachinggithub-actionsautomationnative-firstai 6 sections

  • 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.

    teachingeducationautomationgithub-actionsportfolioai 5 sections

  • 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.

    origin-storybatchgrainmillnative-firstai 9 sections

  • 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.

    aidesign-systemshciprovenancegrain 10 sections