Building software with confidence, for developers and their AI assistants.
I'm Kevin Martínez, a software architect working on testing strategy, developer experience and responsible AI adoption. I created TWD, an open-source way to run your tests inside the app you're building.

describe("Kevin Martínez")
- it("teaches JavaScript and testing (6+ years)")
- it("mentors engineers and leads frontend teams")
- it("treats tests as the foundation, not the afterthought")
- it("built TWD to test in the browser you develop in")
- it("keeps AI fast without lowering the bar")
5 passing
Latest writing
All 89 postsEvals tell you which parts of your skill to delete
Skills only grow. Every bug adds a line and nobody removes one, because nobody knows which lines still matter. Running each case with and without the skill answers that, per model, and the cost per run tells you what the extra lines are costing.
The score tells you what failed. The trace tells you why.
An eval score says which grader failed. The trace, a line-by-line log of every step the agent took, says why. How to read one, the jq queries that make it fast, and a method to find where a passing run and a failing run split.
"I tried it and it worked" is not a test for your Claude Code skills
Trying a skill by hand is a test with a human grader. It runs once, on your project, with today's model. Evals run the same check without you: a scratch project, a prompt, graders, and the score with and without your skill.
The Testing Trophy, and Where TWD Fits
Kent C. Dodds' Testing Trophy says most of your confidence comes from integration tests. On the frontend that means rendering the real app and mocking only the network. Here is how TWD covers that layer, and what it leaves to the others.
One CLI, one config file: adding browser tests to a Vite+ project
Vite+ puts dev, lint, format, type checking, commit hooks and package management behind one CLI and one config file. Here is what it took to add in-browser tests without breaking that, linting and coverage included.
Prose does not beat determinism: stop asking your AI agent to remember
My agent instructions said "ALWAYS await" three times, and the agent still forgot. What fixed it wasn't a better prompt: it was moving each rule into a type check, a linter or a structured report.

TWD: Test While Developing
Frontend tests that run in the browser you develop in. Write them yourself, or let your AI agent write, run and fix them for you. Mock APIs, check contracts against OpenAPI, and run the same suite headless in CI.