my favorite way to use Claude Code to build large features is spec based
start with a minimal spec or prompt and ask Claude to interview you using the AskUserQuestionTool
then make a new session to execute the spec
I feel this way most weeks tbh. Sometimes I start approaching a problem manually, and have to remind myself “claude can probably do this”. Recently we were debugging a memory leak in Claude Code, and I started approaching it the old fashioned way: connecting a profiler, using the app, pausing the profiler, manually looking through heap allocations. My coworker was looking at the same issue, and just asked Claude to make a heap dump, then read the dump to look for retained objects that probably shouldn’t be there; Claude 1-shotted it and put up a PR. The same thing happens most weeks.
In a way, newer coworkers and even new grads that don’t make all sorts of assumptions about what the model can and can’t do — legacy memories formed when using old models — are able to use the model most effectively. It takes significant mental work to re-adjust to what the model can do every month or two, as models continue to become better and better at coding and engineering.
The last month was my first month as an engineer that I didn’t open an IDE at all. Opus 4.5 wrote around 200 PRs, every single line. Software engineering is radically changing, and the hardest part even for early adopters and practitioners like us is to continue to re-adjust our expectations. And this is *still* just the beginning.
Whenever I see programmer salary numbers from Europe, I always have to do a double take. It's hard to fathom that we work in the same industry. With bonuses this year, many of our folks are at $400,000+, and we're not even in any AI-hype sector.
icymi we wrote a new agents book: patterns for building ai agents
it has everything you need to take your agents from prototype to production, like agent design patterns, the basics of security, etc
reply to this tweet with BOOK and we'll dm you so you can get a copy
Founder of an AI startup in SF:
“We tried to stop algorithmic interviews, and change to asking ‘bigger’ real-world problems where candidates are expected to use whatever AI tool they want to solve it int he stop.
We’re stopping this: because the only signal we got was how hands-on candidate were with AI coding tools.”
Vibe-coding is not the same as AI-Assisted engineering.
A recent Reddit post described how a FAANG team uses AI and it sparked an important conversation about semantics: "vibe coding" and professional "AI-assisted engineering". While the post was framed as an example of the former, the process it detailed - complete with technical design documents, stringent code reviews, and test-driven development - is a clear example of the latter imo.
This distinction is critical because conflating the two risks both devaluing the discipline of engineering and giving newcomers a dangerously incomplete picture of what it takes to build robust, production-ready software.
As a reminder: "vibe coding" is about fully giving in to the creative flow with an AI (high-level prompting), essentially forgetting the code exists. It involves accepting AI suggestions without deep review and focusing on rapid, iterative experimentation, making it ideal for prototypes, MVPs, learning, and what Karpathy calls "throwaway weekend projects." This approach is a powerful way for developers to build intuition and for beginners to flatten the steep learning curve of programming. It prioritizes speed and exploration over the correctness and maintainability required for professional applications.
There is a spectrum between vibe coding and doing it with a little more planning, spec-driven development, including enough context etc and what is AI-assisted engineering across the software development lifecycle.
In stark contrast to the post, the process described in the Reddit post is a methodical integration of AI into a mature software development lifecycle. This is "AI-assisted engineering," where AI acts as a powerful collaborator, not a replacement for engineering principles. In this model, developers use AI as a "force multiplier" to handle tasks like generating boilerplate code or writing initial test cases, but always within a structured framework.
Crucially, the big difference here is the human engineer remains firmly in control, responsible for the architecture, reviewing and understanding every line of AI-generated code, and ensuring the final product is secure, scalable, and maintainable. The 30% increase in development speed mentioned in the post is a result of augmenting a solid process, not abandoning it.
For engineers, labeling disciplined, AI-augmented workflows as "vibe coding" misrepresents the skill and rigor involved. For those new to the field, it creates the false and risky impression that one can simply prompt their way to a viable product without understanding the underlying code or engineering fundamentals.
If you're looking to do this right, start with a solid design, subject everything to rigorous human review, and treat AI as an incredibly powerful tool in your engineering toolkit - not as a magic wand that replaces the craft itself.
Customizable widgets with Next.js for SSR and interactivity is a killer combo:
- dnd-kit for dragging
- Zustand store with initial data
- Saved in Redis
- Preloaded using tRPC
Many are asking if they can move their Next.js projects from Vercel to Replit?
Yes!
- Go to Import then GitHub
- enter repo URL
- Agent will take care of the rest
It will set up the dev and deployment environments!
For companies moving lots of work, happy to help + discount.
Oh no big deal, that's just @cmonkey — the CEO of @FrameworkPuter — patching Omarchy to fix Intel GPU video acceleration for everyone. What an absolute legend! (Fix is shipping in the next point release!)