AWS Builder Center
How AWS Hackathons and Challenges Taught Me Not to Vibe Code (and What to Do Instead)

How AWS Hackathons and Challenges Taught Me Not to Vibe Code (and What to Do Instead)

Over the past year, I've shipped in five AWS hackathons and challenges. Kiro CLI let me move faster than I ever had — but vibe coding still didn't work. Sessions would spiral into hallucination loops I couldn't trace back or recover from. That's what pushed me to micromanage Kiro CLI instead of vibing with it, starting with the AWS Lambda Hackathon a year ago and every initiative since. Working this way not only let me ship a lot more — I've never had to look back.

The problem that started it

Under time pressure, vibe coding's failure modes don't get smaller, they get worse. Part of it is non-determinism — AI code generation doesn't guarantee the same prompt produces the same code twice. But the bigger problem is ambiguity: describing what you want in natural language feels great, but English leaves a wide margin for the model to fill in gaps its own way, and you don't find out how it filled them until the code is already written. Once a session spirals into a hallucination or error loop, there's no way to know why the code ended up the way it did, or how to get back to something that worked. In a 48-hour hackathon, that's the difference between shipping and not shipping — and that's before we even get to what happens on a real project, where the stakes are higher and maintainability is a whole separate conversation.

What I built instead: MMDD

MMDD — Micromanaged Driven Development — is a process I built in June 2025 to deal with exactly that. The idea is simple:
  • Plan first. Before any code gets written, you and the agent agree on a high-level description of the project and a list of units — the smallest possible next change.
  • A unit is a file, and it's also the prompt. You hand it to the agent as the instruction for what to build.
  • Every unit becomes a commit. So every piece of code traces back to the file that told the agent to write it.
  • One status file tracks everything. Planned, in progress, done — the whole project's state, legible at a glance.
It's tool-agnostic by design — I'm micromanaging the agent, not the tool, so I move between Claude Code, Kiro, and Codex without friction.

Why not just use Spec-Driven Development?

When I built MMDD in June 2025, Spec-Driven Development wasn't really a thing yet. But even once it showed up, I never found a reason to switch. The main one: I don't always have Kiro CLI on hand. When I don't, I move to Pi Coding Agents using my favorite models from Bedrock — and MMDD comes with me, because it isn't tied to any one tool's spec format.

Five hackathons since, one method, zero rewrites

Code Ripple (AWS Lambda Hackathon) — where MMDD was born. The rules were still being written as the project went, under hackathon time pressure, on a methodology that didn't have a name yet when the project started.  Watch demo video here .
PrettySure (H0: Hack the Zero Stack with Vercel v0 and AWS Databases) — a financial projection tool built from just a problem statement, no solution or stack decided going in. By the end of the hackathon weekend I'd retired my own household spreadsheet — the real test of whether something's useful, not whether it demos well.  Watch demo video here .
Chur List (Weekend Productivity Challenge) — a voice-first Alexa skill for markdown to-do lists. Every unit here had to survive being described out loud, with no screen to check the result against.  Watch demo video here .
Piano Teacher (Weekend Agent Challenge) — turns scanned sheet music into a practice plan. The interesting part isn't the music theory, it's the trigger: no chat prompt, no button, just moving a card to "Doing" on a kanban board. The same status file MMDD uses to track units became the control plane for starting one.  Watch demo video here .
LucidThread (10,000 AIdeas Challenge, semifinalist) — a personal AI system layering Spec-Driven Development for the architecture on top of MMDD for the build itself: 20 units, 40+ subunits, every decision traceable from spec to unit to commit. Watch demo video here.
Same discipline, five different constraints, five different problem domains — and the core method didn't need to change to hold up in any of them.  Watch demo video here .

Try it yourself

If you want to see it in action, there's a 12-minute video walking through building a photo gallery app from scratch — mosaic view and map view included, start to finish — using MMDD with Kiro CLI.

Everything, including the quick-start script and templates, is at  mmdd.dev .
Steal it, it's free.
Any opinions in this article are those of the individual author and may not reflect the opinions of AWS.
Enjoyed reading this content? Let the author know!

Your likes, comments, shares, and saves help creators reach more builders.

Loading recommendations

Loading article