Skip to content

blog — 12 entries

Blog

On why programming skills fade, what actually brings them back, and how this thing is built.

  1. 5 min read

    Spaced repetition for code, concretely

    The scheduler is SM-2, the intervals are 1, 3, 8, 20, 50, 125 days, and the pass/fail that drives it comes from running your code rather than from you rating yourself.

    #spaced-repetition#learning#practice

  2. 5 min read

    The 20% yield: what happened when we generated exercises with a strong model

    Five exercises came out of the generator and all five passed every static check we have. Then we ran them. Four did not work.

    #ai#tooling#quality

  3. 5 min read

    Why your practice site should run your code

    Similarity scoring and keyword matching grade the shape of an answer. A test suite grades the behaviour, accepts any correct solution, and hands back a stack trace — which is the part that teaches.

    #testing#infrastructure#quality

  4. 4 min read

    Learning to vibecode is learning to review

    The bottleneck is not prompting. It is deciding what to build, checking what came back, and knowing when to stop steering and read the code yourself.

    #ai#practice#code-review

  5. 4 min read

    Reviewing code you did not write: the skill AI made mandatory

    Generating code is now cheap and reviewing it is not. The failure mode is not bad code that looks bad — it is wrong code that looks right, and reads fluently, and passes the tests you thought to write.

    #ai#code-review#practice

  6. 4 min read

    Eleven of our exercises were impossible. We only found out by running them.

    Every exercise had been read and looked fine. Executing the reference solution against the real test suite found eleven that nobody could have solved, including three the author was sure about.

    #testing#quality#tooling

  7. 4 min read

    Running untrusted code: containers versus microVMs

    A container shares the host kernel, so a kernel bug is a host compromise. A microVM does not. Here is what changed when BlankCode moved submission execution from Docker to Firecracker, and what it cost in latency.

    #security#sandboxing#infrastructure

  8. 4 min read

    We shipped 91 exercises. Two of them graded everyone correct.

    A test that calls a function and never checks the result passes forever. Reviewing for that by hand does not scale, and it did not work. A forty-millisecond rule found both.

    #tooling#testing#code-review

  9. 4 min read

    The error that is not the error

    A production bug where every server-rendered page died with the wrong exception, two confident diagnoses that were both wrong, and the mistake in the reproduction that let them survive.

    #debugging#nuxt#postmortem

  10. 4 min read

    Why you forget how to code, and what actually brings it back

    Skills you built over years fade in months once you stop using them. The fix is not re-reading tutorials — it is being asked to recall the thing right before you would have forgotten it.

    #learning#spaced-repetition#practice

  11. 4 min read

    How to write a skill that holds up on the case you did not think of

    Turning a procedure you know into instructions an agent follows correctly is a testable engineering problem, not a writing exercise. The test is the case you held back.

    #ai#tooling#process