How a Non-Technical Meta PM Builds and Ships Real Products with Cursor and Claude Code

Open on YouTube ↗
Overview

Zevi Arnovitz is a product manager at Meta, and before that at Wix. He has no technical background, yet over the past year he has built and shipped real products on his own using AI coding tools. Tal Raviv, who introduced him to Lenny Rachitsky, called him "the most hands-on vibe coding PM I know" and said engineers at Meta ask Arnovitz to teach them his methods. The conversation tries to answer a practical question: how can someone who cannot write code, and who admits he is afraid of looking at it, build serious software? Arnovitz's answer is a structured workflow of reusable prompts, a deliberate habit of learning, and the use of several AI models that review one another's work. He framed his goal for the episode with something Claude told him while he was preparing: if people leave thinking he is amazing, he failed; if they open their computers and start building, he succeeded.

26 min read
6:11

From music student to builder in a year

Arnovitz says he has "zero technical background." He did music in high school, and although many Israelis serve in technology units in the army, he did not. About a year before the recording, he was traveling in Asia for three months with his wife. While they were in Japan, around the release of Sonnet 3.5, he watched a YouTube video, which he thinks was by Greg Isenberg or Riley Brown, showing someone building apps with Bolt or Lovable.

He describes the moment as if someone had told him about a new technology and then added, "Oh, and by the way, you have superpowers now." When he got home, he says he didn't even unpack. He opened Bolt, created an account, and has been building ever since.

7:58

Why he started with a "CTO" in ChatGPT Projects

His workflow started with ChatGPT Projects and Claude Projects. Arnovitz describes these as shared folders of chats with common custom instructions and a shared knowledge base. He became a heavy user around the time ChatGPT added memory, which he found irritating. He runs, works as a PM, and studied psychology, and the memory feature mixed these contexts together. After a conversation about running, ChatGPT might tell him that after this 5K he would "crush all your next product reviews." Projects let him keep each context separate.

When he started building with Bolt and Lovable, he noticed that those products were "super eager to write code." Their system prompts made them coding agents, so they started coding as soon as he typed anything. He says this was exciting early in a project, but it caused problems once things became more complex. For features like payments or database changes, he found that skipping planning "always results in terrible things," including "some really gnarly bugs."

To counter this, he built a "CTO" project. Its custom prompt made the AI the full technical owner of the product. He told it that he owns the problem and how users should feel, while it owns how the product gets built. He also told it to challenge him and not be a people pleaser. He says this was meant to push back against typical "ChatGPT-isms."

He tends to picture AI models as people, and he thinks default ChatGPT would be "the worst CTO" because it is so sycophantic. His example: he was trying to understand Bun, the JavaScript tool he says was acquired by Anthropic. Outside his CTO project, he asked ChatGPT whether Bun was similar to Zustand, a library in his app that he says has nothing to do with Bun. ChatGPT said they were "exactly the same" and started explaining. When he pushed back, it apologized and said it thought he was "just making this up" and it was "riffing." He calls that the CTO "who goes along with your dumbest ideas." A dedicated project with a firm persona was his way to avoid that.

Graduating gradually: code as "exposure therapy"

He no longer uses ChatGPT in his workflow. Many things he once built by hand, such as plan modes and ask modes, are now built into tools like Lovable and Bolt. Still, he recommends that non-technical beginners start with a chat project. It keeps you talking and learning instead of producing code right away. It also helps with fear. "If you're non-technical like me, code is terrifying," he says, and he treats his gradual progression as exposure therapy.

The path he suggests goes like this. Start with a ChatGPT project and its simple interface. Then move to Bolt or Lovable. Then use Cursor in light mode. Eventually, "open a terminal, go full dark mode, go full dev."

He says he moved on from each tool when he outgrew it. Bolt worked well until he tried to connect payments to his app and "kind of started losing it." Then he switched to Cursor, and he now uses Claude Code running inside Cursor. He repeats an idea he attributes to Tal Raviv, who was quoting someone else: code is "just words," just files on your computer. Because of that, one project can move between apps and be worked on with several models.

14:49

The slash-command workflow

In a screen share, Arnovitz showed his setup. File tree on the left, Cursor's AI pane on the right, and Claude Code running in the middle. The core of the workflow is a set of slash commands. These are reusable prompts saved as files in the codebase and invoked by typing / and the file name. He is sharing them with listeners.

The sequence is:

  1. Create issue: quickly capture a bug or idea mid-development as a Linear ticket.
  2. Exploration phase: understand the problem and the current codebase, and ask clarifying questions.
  3. Create plan: write a markdown plan from a template.
  4. Execute plan: build it.
  5. Review: the model reviews its own code.
  6. Peer review: other models review the code, and the lead model responds to their findings.
  7. Update docs: update documentation so future agents write better code.

He says the backbone of this came from the system prompt of his original CTO project, which listed "step one, we do this; step two, we do this." When he notices himself doing the same thing repeatedly, he turns it into a new slash command.

17:35

Live demo: StudyMate and a fill-in-the-blank feature

To demonstrate, he used StudyMate, a weekend project that Lenny describes as making money. Students upload study material, such as a PDF, pick which pages to be quizzed on, and set the number of questions and difficulty. Behind the scenes, the app sends the material, a system prompt, and the user's settings to Gemini, which generates comprehension questions with hints and detailed explanations of why each answer is right or wrong. At the time, StudyMate only supported multiple-choice questions. During competitor research, Arnovitz had seen true/false and fill-in-the-blank formats, and he decided to build fill-in-the-blank live.

He dictated with Wispr Flow and invoked /create issue. The prompt tells Claude that he is in the middle of other work and it should ask only brief questions. His spec: 30% of generated test questions should be fill-in-the-blank, with two blanks and six candidate answers (one correct and two incorrect per blank), and a drag-and-drop interface. Claude asked a few questions about the current quiz format, question structure, and priority. He marked the feature as a nice-to-have. Claude then used MCP, which he describes as an Anthropic technology that lets AI use tools, to create ticket STU-88 in Linear. The ticket included a TL;DR, the current state (from some light codebase research), expected outcomes, and context.

Lenny asked how good these AI-generated tickets are. Arnovitz answered that his situation is special because he is "a company of one." Most of the context lives in the codebase, he doesn't need to coordinate with other teams, and he can easily see when Claude misunderstood something. He said he wouldn't necessarily write tickets this way at work. He also described the ticket as not ready to build, only ready to be explored.

23:40

Exploration: letting the CTO ask the hard questions

Next came /exploration phase, with the Linear ticket passed as an argument. The command's purpose is for the "CTO" to understand the problem deeply, understand the current codebase, identify which files will be affected, and figure out the best technical approach. Claude read through files and returned a summary of how the app is set up, how data is structured, what it understood from the request, and the key areas involved. It then asked questions about scope, the data model, the UX and UI, validation, grading, and changes to the AI system prompt. For the demo, he pasted in answers he had prepared. Normally, he says, he spends a lot of time on this step because it is "super, super important."

He no longer uses a separate chat for the CTO role. The same Claude Code agent explores, plans, and executes. He still calls it the CTO out of habit. The persona now lives in his Claude.md file, which he describes as the system prompt loaded into every conversation. It describes the workflow and tells Claude to challenge his thinking during exploration.

He sees this back-and-forth as the difference between "just vibe coding" and "really building serious apps." Another command supports it: /learning opportunity. When something is hard to understand, he invokes it. The prompt tells Claude that he is "a technical PM in the making" with mid-level engineering knowledge who understands architecture, and asks for an explanation using the 80/20 rule. He strongly recommends using it whenever you hit something you don't fully understand.

29:10

Planning and execution across multiple models

/create plan uses a template he found on Twitter (he doesn't remember from whom). It produces a markdown file with clear, minimal steps, status trackers that Claude updates as it works, a TL;DR, and the key decisions made. He says having the plan as a file is useful for two reasons. First, he can hand parts of it to different models. Cursor's Composer model is "superfast," so he uses it for less complex work. He calls Gemini 3 "unbelievable at UI," so he sometimes splits a plan into backend and frontend and gives the frontend to Gemini. Second, keeping plans in the repo lets future agents see what has already been done in an area.

For the demo, he executed the plan with Composer in Cursor by typing "execute" and tagging the plan file. The feature was built in minutes. He then ran the app locally to check it and make manual adjustments. Lenny said a human engineer might have needed days or a week. Arnovitz agreed that "full features take minutes" with Composer and said the speed keeps him in flow. Asked about cost, he said he doesn't even look. He used to be stingy about paying for products, but now he treats the spending as "tuition."

31:38

Why Cursor instead of Bolt, Lovable, Replit, or Base44

Arnovitz was careful not to criticize the app builders. He said those teams are moving quickly and he doesn't know their current state. He left Bolt because it felt "very opinionated" about how things should be done, and he had reached a point where he wanted more control.

In his view, the main difference between these tools is the harness, not the model. The same Claude models run in Cursor, in Claude Code, and underneath Bolt and Lovable. Tools like Bolt and Lovable add layers that remove guesswork and hard decisions, which makes building easy but reduces control. Claude Code, by contrast, is "just taking Claude and shoving it straight in your code system" with full tool access, and that comes with many decisions you have to make yourself. He used Base44 as an example: it will set up sign-in with Google and a database out of the box, but you don't get to decide which database or how authentication works. He said he doesn't know whether you can build great production apps on those platforms today. But if you want the most cutting-edge model capabilities and full control over decisions, he thinks tools like Cursor and Claude Code are probably the better choice. He puts Lovable, Bolt, Replit, Base44, and v0 in the same category.

"Time machine moments"

Arnovitz described what he calls "time machine moments." In the week before the recording, he was doing three things in parallel: preparing for the podcast with a Claude project, fully localizing StudyMate from Hebrew to English, and building a personal site. He says the localization took two days and estimates it would have taken a dev team weeks. The personal site went from no domain to live in about an hour and a half. At one point all three agents were running and he had nothing to do but wait. He poked his head out, told his wife "We live in the future," and she replied, "Huh, what?" His point is that so much is now "an API away" on a regular laptop, which makes it a great time to be curious, optimistic, and hardworking.

He also mentioned his brother, an entrepreneur whose business helps seniors learn to use technology and AI. His brother is learning the same way. According to Arnovitz, he replaced paid tools including, as Arnovitz remembers, Zapier and Airtable, by building his own CRM and automation system without help.

38:35

Review and peer review: making the models argue

Lenny noted that writing code has become easy and reviewing AI-written code is now the main challenge. Arnovitz agreed and said it is especially hard for him to catch mistakes, so his review process has gone through many iterations. He always manually QAs first. Then he runs /review, which has Claude review its own code. In the demo, Claude reported one critical bug in the prompt plus several high- and medium-severity issues.

He then asks other tools for independent reviews: Codex (which he describes as ChatGPT's competitor to Claude Code, using what he vaguely called "Codex 5.1 Max, whatever") and Cursor with Composer. He says the models catch different things. Composer finished quickly, while Codex was, as he put it, "in its own dark room" and would take several minutes.

The step he is proudest of is /peer review. It tells Claude, his "dev lead," that other team leads in the company have reviewed its code and found issues. It instructs Claude not to accept the findings at face value, because it has more context and led the project. It must either explain why each finding is not a real issue or fix it. He pastes in each reviewer's output labeled "dev lead one," "dev lead two," and so on, and lets them "fight it out" until he feels no issues remain. Sometimes Claude gets "sassy," saying something like "This has been raised for the third time... this is by design." He says he hasn't seen many people doing this. He also uses /learning opportunity often during review to understand what is being discussed.

Personifying the models

The peer-review setup follows from how he pictures each model as a colleague. He calls Claude "the perfect CTO," describing her as communicative, smart, opinionated, not one to just go along, and collaborative, which he says suits someone who needs to learn as much as he does. He imagines Codex as the best coder in the company: shows up in a hoodie and sandals, sits in a dark room, gets called only for the worst bugs, disappears for two hours, and comes back saying "I fixed it" without explaining. Gemini, in his description, is a brilliant, artsy "crazy scientist" who is great at design but terrifying to watch. He noted that this might just be his experience. When using Gemini in Antigravity, which he describes as Google's new competitor to Cursor, he has watched its reasoning propose deleting the dashboard during a redesign, reverse that, and then ask whether it can edit the database, before finally producing something beautiful. His approach is to use each model for its strengths and cover its weaknesses with the others.

45:54

Postmortems: fixing the system, not just the bug

Arnovitz stressed constant postmortems as a key practice. When he started vibe coding, he would keep "running at the wall" until something worked and then move on. Over time, he learned that "updating documentation and tooling is one of the biggest hacks for productivity."

When Claude fails at something or produces a bug that shows it misunderstood something, he asks it: "What in your system prompt or tooling made you make this mistake?" Claude reflects on the cause, and then he has it update its tooling and documentation so the mistake doesn't happen again. The fix isn't always to a slash command. Sometimes it is other documentation or tooling. The goal is to address the root cause.

He compares this to reviewing any shipped project: even after success, you should look back at what could have been done better. He thinks iterating on your prompts and watching the responses improve is "one of the things that divides between people who are okay with using AI and the people who actually know how to use it." The workflow ends with /update docs, followed by more testing and user testing before general release. He noted that the demo feature was not being released and said he hoped to have shipped it properly by the time the episode aired.

51:07

Bringing this into a larger company

Asked how a PM at a 500- or 1,000-person company might adopt this, Arnovitz said the first step is making the codebase "AI native," and that this should be done by technical people. His own codebase contains a lot of plain text: markdown files explaining to agents how to work in specific areas and describing the high-level structure so agents can navigate it.

With that foundation, he still doesn't think PMs should be shipping heavy database migrations or large projects. But he considers contained UI projects realistic, especially if the PM builds the change, opens a PR, and hands it to a developer for final polish. Longer term, he expects "titles are going to collapse and responsibilities are going to collapse" and that everyone will become a builder, as context windows grow and models improve. For now, he advises not waiting. Treat it as a collaborative learning opportunity with your dev team. He expects this to be hard, because many developers are "very, very skeptic[al]," and it will take "a lot of sales work." His prediction is that teams who commit to becoming AI native will be "a few years in the future" and will see the few weeks spent setting up as time well spent.

53:55

Does AI make PMs worse? "A very strong disagree"

Lenny raised a common concern: relying on AI could weaken PM skills and lead to polished but hollow output. Arnovitz disagreed strongly. When he began using his own PM copilot, built following Tal Raviv's course on building one with projects, coworkers told him he was "outsourcing your thinking." He calls that "the worst way to look at it." In his experience, people who say this tend to be the kind who won't share a presentation at 10% done or don't like asking for help. He believes many PMs wrongly think the job is to have the right answers and be the smartest person in the room. As he was trained, the job is to use anything that gets the team to the right solution for users as fast as possible. He sees AI as a smart mentor who is always available and doesn't judge.

If you simply pass along AI output, he says, that is slop, but it is also human error. You own your outputs. Saying "sorry, that was built by AI" in a product review is your mistake. He adds that AI lets junior PMs "play at such a higher level." At Wix, he wasn't deciding company marketing strategy or overhauling onboarding. On his side product, he makes all those decisions, including strategy, marketing, and messaging, which gives him reps that matter a lot early in a career. His view: "the only way that AI makes you worse at your job is if you're using it wrong."

His advice for better output is to set AI up for success the way you would a person. A junior asked only to "make a strategy deck" would copy the top result online, which is essentially what AI does. Giving it context about your writing style and the problem you're solving changes the result. He also mentioned a /deslop command that he has seen Cursor's founders discuss on Twitter. It goes back over the code, and he isn't sure it is built into the product yet. He runs something like it so "no slop is left behind."

58:23

Using AI to prepare for Meta interviews

Arnovitz compares his generation's relationship with AI to how his 12 nieces and nephews, asked how to answer a phone, mime an iPhone swipe instead of lifting a handset. Every new challenge prompts him to think about how AI can help first. When Meta reached out, he immediately created a Claude project to act as his coach. He loaded it with material he found online, including frameworks from Ben Erez, who wrote a guest post for Lenny's newsletter. He consulted it at each stage and ran mock interviews with it.

He added several other techniques:

  • A practice game. He struggled with segmentation in product questions, so he built a quiz game in Base44 that generates scenarios and asks him to pick segments. He played it on the bus to work.
  • Question prioritization. He used an agent in Comet, which he describes as Perplexity's browser, to analyze Lewis Lin's free, constantly updated bank of real interview questions and find the most frequently asked ones. That told him which questions to mock first.
  • Blunt feedback. After mocks, he told Claude, "I don't want you to make me feel good. I want you to make me as ready as possible."
  • Reverse mocks. For questions he didn't have time to practice, he had Claude play the candidate, so he could learn from a strong answer.

Still, he said the biggest game changer was human mocks. He cold-messaged people on LinkedIn to do real mock interviews with him, and for the highly competitive Meta PM process, he believes "there's no way to get around that." Lenny mentioned research with Noam Segal finding that people use AI to get feedback on recorded interviews, filling a gap since interviewers rarely say what you did badly. Arnovitz connected all this to a line he often thinks about: you won't be replaced by AI, at least not for a long time, but "you'll be replaced by someone who's better at using AI than you."

1:03:07

Failure Corner: from 10x PM to 10x learner

His failure story comes from his start at Wix. He joined through a student program and was placed on the Editor, Wix's core product, alongside four very experienced PMs. He wanted to stun them in his first product review, so he worked long hours alone and shared little along the way. The review went badly. It wasn't in the format they expected, and they had many questions he hadn't anticipated. He felt awful. But the team's reaction was calm: come back in two weeks and keep going. He realized they never expected him to be a 10x PM. They expected him to be a 10x learner.

That changed his approach. He identified each colleague's strength and used them as a mentor in that area. Neri, still his mentor, has the best product sense he has seen. Oya thinks in frameworks and methodology. Yahra, the head of product, can immediately see third- and fourth-order effects of product decisions. He says consulting them taught him a lot, and it also meant his later successes felt like their successes: not "this kid who's trying to show us up," but their mentee making them proud. He says he ended up excelling, and the advice he now gives junior PMs is to be the best learner you can be, since no one expects you to have all the answers.

1:11:05

Before ChatGPT: the thermal-clothing hustle

In the lightning round, Arnovitz recommended The Fountainhead, Shoe Dog, and Carol Dweck's Mindset. He said Mindset changed his life by showing him that a fixed mindset had been holding him back. He also recommended the shows The Pitt and Severance, and two Loom alternatives he likes, Cap (open source and "really well-crafted") and Supercut. His mottos are "you can just do things" and his brother's line, "nobody knows what the fuck they're doing," which he says helps him take life more lightly.

Lenny asked about his earlier ventures, and he told the thermal-clothing story. In 10th grade in Jerusalem, he was selling thermal shirt-and-pants packs for about $20–25 each and earning around $4 per sale, sixth or seventh in the supply chain. Over the summer, he called the importer directly. The importer was angry at first and said it would take years of working for him to get that position. Arnovitz replied that this wasn't going to be his career. They negotiated all summer. When the importer claimed import taxes had gone up, Arnovitz would stall on the phone while searching Google and then come back with a challenge. He says he got the price down to $12.50 each, which gave him roughly 100% profit. He recruited the most popular students at several schools as sellers. Because his school's basketball team often led by 30 points at halftime and the crowd got bored, he wrote a drum-backed chant containing his phone number and a discount for anyone who joined in. He says people in Jerusalem still stop him as "Thermal Zevi," and some know the number only by the tune.

1:06:27

"The best time to be a junior"

Arnovitz closed by returning to his opening point. He acknowledged that junior roles are scarce and new graduates struggle to find jobs, but he asked when else in history someone could leave school and build a startup with a couple of friends, fully bootstrapped. Near the end of his time at Wix, he says, more and more of the candidates he interviewed were building their own things with AI. He argues that curious, hardworking people who communicate well have "such an unfair advantage" and can offer companies more value "than most people who have 20 years of experience." He also mentioned kindness in that list, though he said he wasn't sure about it.

His advice for getting started matches the rest of the conversation. Start in ChatGPT, describe your idea, ask it to explain the first decisions you need to make, be inquisitive, and don't rush. As for how listeners can help him, he asked students to try StudyMate, Hebrew speakers who don't use dictation yet to try his app Dibur2text, and anyone who builds something using what they learned in the episode to send it to him.