A month of hackathons: Building with spec‑driven development

For the past month, I’ve been unusually quiet on social media and my personal blog — for good reason. I’ve spent most of my time participating in two hackathons, Kiroween and Codegeist, with three projects submitted in total.

Ever since 2021, I’ve never to miss a Codegeist, and is not gonna change this year either. This year, I built two projects — Decision Flow and 1:1 Manager — both inspired by challenges I face as an engineering manager. Building tools that could genuinely help in my day‑to‑day work felt rewarding, and joining a hackathon gave me just the right environment to make that happen.

All the demo video is at the bottom of this post.

Working with Kiro

The third project, Jedi MCP, was for Kiroween. What made this one exciting was the access to AI‑assisted development tools — For free (Yes to frugal engineering :D). Really thank to these hackathons, it gave me an opportunity to dive into agentic development.

Using these tools felt different from traditional coding. While there’s still a learning curve, the speed of iteration was impressive. I discovered more about Spec‑Driven Development (SDD) — what’s working and what’s not which helped me move faster and with better structure for future development. With this setup, I could build a complete working product within a weekend (less than 10 hours if getting it right), which still amazes me when I look back.

Learning through rebuilding

Of course, none of this came without struggle. For most of my projects, I had to rebuild them twice or even three times. Not because the tools failed, but because I learned that starting over was often faster than untangling early mistakes. The turnaround time was still fast though — on each final attempt, I usually spent under 8 hours reaching a usable output.

Progress was directly correlated to how well I could articulate my thoughts

That kind of speed isn’t just about prompts; it’s about clarity. I noticed that progress was directly correlated to how well I could articulate my thoughts — from technical details to architectural decisions. When my specs were clear, AI assistance felt like a superpower. When they weren’t, frustration followed quickly. Looking through my .kiro directory and commit history later really showed that difference in how structured thinking translated into cleaner, more coherent code.

Feel free to go through those projects in my github. They are public 🙂

From “Vibe coding” to real application

Over the past month with the advancement of LLM model, we’ve all seen countless “one‑shot prompt to full app” demos from AI influencers. They look impressive, but they hardly reflect real‑world engineering work — especially when you have defined tech stacks and existing systems to maintain. I’ve realized that this “vibe coding” style hits a ceiling quickly.

Spec‑Driven Development, on the other hand, feels more sustainable. It demands more attention and discipline at the start — breaking down requirements, designing architecture, and planning the sequence of build tasks — but it enables you to build more complex applications that actually integrate well into real workflows. It’s not a new idea, but experiencing it firsthand with modern tools like Kiro gave me a fresh appreciation for how powerful it can be.

Looking Ahead

This past month reminded me how fast things are evolving for developers. Our bottleneck is no longer typing code, it’s defining what we want built. Being deliberate in design and communication matters more than ever.

Hackathons gave me space to experiment with that mindset. Now that these projects are complete, I’m taking a step back to document what I’ve learned — not just about tools or frameworks, but about how we, as developers, can adapt our habits to get the best out of AI.

My team and organization uses VS Code and Github Copilot for our day to day. Stay tune to see how I transfer those knowledge into VS Code ecosystem.

In the next post, I’ll expand more on why learning Spec‑Driven Development is becoming increasingly important, especially as we move toward multi‑agent and context‑aware coding environments.

Demos

Confluence decision flow

Confluence 1:1 manager

Jedi MCP