Tom suggests beginners try visual tools like Replit or Lovable, while people with coding experience may prefer Cursor, Windsurf, or Claude Code. Before implementing, develop a project plan with an LLM, record it in a Markdown file, and mark features that are out of scope. Build one section at a time, check that it works, run tests, and commit the changes.
How To Get The Most Out Of Vibe Coding
Speaker
Tom, a partner at Y Combinator, shares practical ways to get better results from AI coding tools, including tips from founders in YC’s Spring Batch.
Tom recommends starting each feature from a clean Git state so there is a known working version to return to. If repeated AI fixes add messy layers of code, he suggests resetting and trying again with a clean codebase. High-level integration tests that simulate a user clicking through the app can catch regressions and unrelated changes.
Tom describes using Claude Sonnet 3.7 to configure DNS and set up Heroku hosting through a command-line tool. He also used ChatGPT to create a favicon image, then asked Claude to write a script that resized it into six formats and sizes. For debugging, he recommends sharing the error message, asking for possible causes before changing code, adding logs, and trying another model if needed.
Tom recommends writing project instructions in files such as Cursor Rules, Windsurf Rules, or CLAUDE.md, and keeping API documentation locally so the agent can read it before implementation. For complex features, he suggests getting a small reference implementation working separately, then asking the agent to follow it in the main project. Small, modular files and consistent API boundaries make code easier for people and AI tools to understand.
Tom says established conventions and abundant training examples may help explain why the AI performed well with Ruby on Rails in his project; he had less confidence in its performance with Rust or Elixir. Screenshots can show UI bugs or provide design inspiration, and voice transcription can speed up instructions. He recommends refactoring once tests are in place and regularly comparing models, since their strengths can change.
Takeaways
- Write a scoped plan with the AI, then implement and review one piece at a time.
- Keep Git commits and high-level integration tests as safeguards against messy changes and regressions.
- When a fix gets stuck, step back, inspect the error, add logging, and try a clean attempt or a different model.
- Give coding agents project instructions, local documentation, and clear module boundaries.
- Test new model releases on your own tasks because their strengths and weaknesses shift over time.
Mentioned in this talk
Search inside this talk
What was claimed 11
- role atTom is partner at
Y Combinator
“I'm a partner here at YC.”
YouTube Unverified1 source· Talk
- uses
“You can probably leap straight to tools like Windsurf, Cursor, or Claude Code.”
YouTube Unverified1 source· Talk
- usesTom uses Claude Sonnet 3.7
“I had Claude Sonnet 3.7 configure my DNS servers.”
YouTube Unverified2 sources· Talk
- uses
“I also used ChatGPT to create an image for my site's favicon.”
YouTube Unverified1 source· Talk
- uses
“I chose to build my project partially in Ruby on Rails.”
YouTube Unverified1 source· Talk
- usesTom uses
Claude Code
“I'm switching a lot between Windsurf and Claude Code at the moment.”
YouTube Unverified1 source· Talk
- usesTom uses
Windsurf Editor
“I'm switching a lot between Windsurf and Claude Code at the moment.”
YouTube Unverified1 source· Talk
- metricAqua: 140 words per minute
“I can effectively input instructions at 140 words per minute.”
YouTube Unverified1 source· Talk








