Skip to content
How I AIHow I AI

From journalist to app developer using Claude Code

Daniel Roth, editor in chief at LinkedIn, went from business writer to iOS app developer, without ever learning how to code. Using Claude Code, Daniel built and shipped multiple production-ready iOS apps to the App Store, including Commutely, a personalized train-tracking app for New York commuters. *What you’ll learn:* 1. How to set up a dual-agent Claude Code system (builder + reviewer) 2. Why being a “picky customer” is the right mindset for non-technical builders 3. How Daniel prioritizes features using AI-ranked impact vs. build time 4. Why saving everything as Markdown files creates long-term context 5. The importance of branch-based development—even when AI writes the code 6. How Daniel ships to the App Store without formal engineering experience 7. His end-of-day “What did I drop the ball on?” Copilot workflow *Brought to you by:* WorkOS—Make your app enterprise-ready today: https://workos.com?utm_source=lennys_howiai&utm_medium=podcast&utm_campaign=q22025 Vanta—Automate compliance and simplify security: https://www.vanta.com/howiai *In this episode, we cover:* (00:00) Introduction to Daniel Roth (02:46) Daniel’s AI development workflow overview (05:56) Using Claude to prioritize feature ideas (08:58) Building vs. marketing (09:47) Creating a retention plan for his app (10:38) Introducing Bob the Builder and Ray the Reviewer (13:50) How Bob and Ray work together to build features (14:37) Why Daniel focuses on learning the process (16:34) The importance of using branches for development (17:39) Managing AI agents like managing a team (21:12) Navigating the App Store (23:06) Being a “picky customer” rather than a PM (25:00) Testing in Xcode and shipping to the App Store (28:14) Quick recap (30:00) Creating terminal aliases with Claude (31:38) Demo of his Commutely app (32:10) Using Copilot to manage work responsibilities (35:05) How Daniel talks to AI without personifying it *Detailed workflow walkthroughs from this episode:* • How I AI: Daniel Roth’s Dueling Agent Workflow for Building iOS Apps: https://www.chatprd.ai/how-i-ai/daniel-roth-dueling-agent-workflow-for-building-ios-apps • Build iOS Apps with a Dueling AI Agent Workflow: https://www.chatprd.ai/how-i-ai/workflows/build-ios-apps-with-a-dueling-ai-agent-workflow • How to Use Claude for AI-Powered Feature Prioritization: https://www.chatprd.ai/how-i-ai/workflows/how-to-use-claude-for-ai-powered-feature-prioritization • How to Use a Simple Copilot Prompt to Never Drop the Ball Again: https://www.chatprd.ai/how-i-ai/workflows/how-to-use-a-simple-copilot-prompt-to-never-drop-the-ball-again *Tools referenced:* • Claude: https://claude.ai/ • Claude Code: https://claude.ai/code • Cursor: https://cursor.sh/ • Xcode: https://developer.apple.com/xcode/ • Canva: https://www.canva.com/ • Microsoft Copilot: https://copilot.microsoft.com/ • Terminal: https://support.apple.com/guide/terminal/welcome/mac • Obsidian: https://obsidian.md/ *Other reference:* • Commutely (iOS app): https://apps.apple.com/us/app/commutely/id6755789873 *Where to find Daniel Roth:* LinkedIn: https://www.linkedin.com/in/danielroth1/ Newsletter: https://www.linkedin.com/newsletters/forward-deployed-editor-7378272989982683137/ *Where to find Claire Vo:* ChatPRD: https://www.chatprd.ai/ Website: https://clairevo.com/ LinkedIn: https://www.linkedin.com/in/clairevo/ X: https://x.com/clairevo _Production and marketing by https://penname.co/._ _For inquiries about sponsoring the podcast, email jordan@penname.co._

Claire VohostDaniel Rothguest
Mar 16, 202638mWatch on YouTube ↗

CHAPTERS

  1. 0:00 – 1:37

    Meet Daniel Roth: non-technical editor running “dueling” Claude agents

    Claire introduces Daniel Roth (LinkedIn editor) and his unusual approach to building iOS apps despite a non-engineering background. Daniel previews his setup: multiple Claude Code instances with distinct roles that review each other’s work.

    • Daniel’s background is in writing/editing, not software engineering
    • He names and role-assigns Claude agents (builder vs reviewer)
    • Goal: produce production-grade code with checks and balances
    • Sets the stage for a live walkthrough of his workflow
  2. 1:37 – 2:38

    Sponsor: WorkOS and why enterprise features matter for AI apps

    Claire explains the security and IT scrutiny AI apps face when they need access to internal systems. WorkOS is presented as a “Stripe for enterprise features,” offering drop-in authentication, access controls, and audit logs.

    • AI tools require deep access to company systems to be useful
    • Enterprise buyers demand security, compliance, and auditability
    • Building enterprise auth/controls from scratch is expensive and slow
    • WorkOS provides APIs to make apps enterprise-ready faster
  3. 2:38 – 6:09

    From journalism disruption to generative AI: Daniel’s motivation to build

    Daniel connects the rise of blogging platforms to today’s AI coding moment: barriers drop and more people can publish or build. He describes how generative AI flipped him from “influencing what gets built” to building himself, becoming a weekend obsession.

    • Early career lesson: blogging democratized publishing and changed journalism
    • Generative AI similarly democratizes software building
    • AI lets him execute ideas without recruiting engineers/PMs
    • Building becomes a hobby-level obsession (weekends, events, etc.)
  4. 6:09 – 6:35

    Tool evolution: starting with Cursor, then switching to Claude Code

    Daniel shares how he began with a Cursor course, but later realized he didn’t need heavy IDE features because he wasn’t manually editing files. Claude Code became the key unlock—he mostly needs to describe intent and iterate.

    • Learned initial workflow via a free Cursor course
    • Stopped caring about file navigation and manual edits
    • Claude Code fit better for intent-driven development
    • Focus: directing the system rather than writing code line-by-line
  5. 6:35 – 9:04

    Feature idea intake and prioritization using a persistent Claude project chat

    Daniel maintains a dedicated Claude Project for his app Commutely, including a running feature idea tracker. He feeds user/community suggestions into a prompt that ranks ideas by estimated build time and impact on happiness/growth.

    • Commutely: an app to avoid missing NYC trains (personalized software)
    • Maintains a single “feature ideas + tracker” chat for ongoing intake
    • Prompt produces estimates: build time, back-and-forth hours, impact scores
    • He picks features based on available weekend time (e.g., 1–2 hours)
  6. 9:04 – 9:47

    Reality check: building is fun, marketing and discovery are the hard part

    Daniel notes that shipping features is only half the game; discovery and marketing are a separate skill set. Claire adds that many builders avoid marketing, but success requires pushing past the discomfort.

    • He built a feature (scheduled updates) but few users found it
    • Discovery/marketing becomes the next challenge after building
    • Daniel reframes himself as learning PMM alongside building
    • Claire: “climb Cringe Mountain” to unlock distribution
  7. 9:47 – 10:17

    Retention plan + documentation habit: Markdown logs to fight context loss

    Daniel uses Claude to draft a retention plan and insists everything be saved into Markdown files inside the project. This logging both compensates for model forgetfulness and helps him resume work after weekday gaps.

    • Retention plan created with Claude, stored as .md in a docs folder
    • Rule: “Log everything” to preserve decisions and progress
    • Helps with Claude’s limited context window and Daniel’s weekend cadence
    • Creates continuity across sessions and reduces relearning
  8. 10:17 – 13:55

    Bob the Builder and Ray the Reviewer: prompts, roles, and ‘say no’ discipline

    Daniel demonstrates how he runs two Claude Code terminals: Bob builds, Ray reviews. Bob must plan first, build modularly, and constantly consult Ray; Ray acts like a security-obsessed senior engineer and is instructed to reject bad ideas rather than rubber-stamp.

    • Two dedicated terminals: one for building, one for reviewing
    • Bob’s rules: plan-first, modular code, document, frequent check-ins
    • Ray’s rules: security/architecture integrity, milestone code review
    • Explicitly trains Ray to disagree because models over-affirm by default
  9. 13:55 – 19:02

    Live workflow demo: plan → copy/paste to review → feedback → build on a branch

    They walk through the concrete handoff: Bob reads the retention plan file, generates an implementation plan, and Daniel pastes it into Ray for critique. After Ray flags edge cases and greenlights, Daniel sends feedback back to Bob to proceed—always in a git branch to reduce risk.

    • Bob reads the MD retention plan and produces a detailed implementation plan
    • Manual copy/paste creates ‘learning friction’ and visibility into review
    • Branch-first development is mandatory after painful main-branch mistakes
    • Claire highlights persona-to-persona handoff as a strong, team-like workflow
  10. 19:02 – 21:27

    Managing agents like a team: constraints, sub-agents, and platform limitations

    Daniel explains that AI needs management, especially when it forgets platform constraints (e.g., iOS Live Activity limitations). He allows Bob to spawn sub-agents with strict rules, while Ray remains a single gatekeeper—mirroring how principal engineers function in real orgs.

    • AI often forgets iOS constraints (e.g., background API limitations)
    • Managing AI feels like managing a smart but inconsistent intern
    • Bob can spawn sub-Bobs; sub-Bobs cannot spawn further
    • Ray cannot spawn—single security/architecture authority
  11. 21:27 – 23:07

    From PRD to App Store: Xcode testing, shipping cadence, and App Store pain

    Daniel describes the final steps: compile and test in Xcode, validate on simulator and real phone, then ship to TestFlight and the App Store—often weekly. He emphasizes App Store navigation as the biggest remaining friction, sparking ideas for AI tools that help submissions and screenshots.

    • Typical flow: build → Xcode compile → simulator test → phone test → TestFlight → App Store
    • He aims for weekly App Store updates
    • App Store submission rules/process are surprisingly hard to navigate
    • Idea: build tools for App Store assets (e.g., screenshot-to-store layout)
  12. 23:07 – 28:21

    The ‘picky customer’ mindset: Daniel’s real role in vibe coding

    Daniel rejects the idea that he’s a PM or architect; instead, he sees himself as a ‘picky customer’ who sets taste, voice, and UX decisions. Claire reframes it as elevated QA—bringing personality and product voice into the experience rather than just checking correctness.

    • He doesn’t identify as PM/architect; prioritization is hard for him
    • His value is taste: UX decisions, copy, tone, “voice” of the app
    • Example: making status messages funnier and more personable
    • Vibe coding role: decide what you deeply care about, then direct the build
  13. 28:21 – 30:00

    Quick recap of the full system: roadmap chat → PRD → Bob plan → Ray review → ship

    Claire summarizes Daniel’s repeatable pipeline: keep a standing roadmap chat, select a weekend feature, create a PRD, have Bob plan, have Ray review, then build and ship. The recap underscores that this is feasible even without a software engineering career if you manage process well.

    • Standing prioritization chat ranks ideas via a simple scoring rubric
    • Weekend routine: pick a feature and formalize it into a PRD
    • Bob plans, Ray critiques, Bob builds, Daniel tests and ships
    • Workflow is designed to be repeatable by technical and non-technical builders
  14. 30:00 – 32:39

    Terminal productivity: using Claude to create aliases (metro command) + Commutely demo

    Claire prompts Daniel to fix a recurring annoyance by asking Claude Code to create a terminal alias for a metro command. Daniel then demos Commutely in the simulator, showing scheduled weekday notifications and lock screen Live Activity train timing.

    • Claude can automate developer ergonomics (terminal aliases) quickly
    • Daniel tries to avoid ‘please/thank you’ to reduce personification
    • Demo: scheduled weekday alerts for commute times
    • Live Activity display: countdown to next train on lock screen
  15. 32:39 – 35:05

    Non-coding AI at work: Copilot ‘what did I drop the ball on?’ nightly review

    Daniel shifts to his day job managing a large team, where Copilot helps him manage context switching by scanning Outlook/Teams/files. His key prompt asks what he missed, with anonymization, functioning as an evening “nudge” to close loops before ending the day.

    • Runs a 400-person team; constant context switching
    • Copilot scans email, Teams, and documents for missed follow-ups
    • Key prompt: “What did I drop the ball on?” plus “anonymize names”
    • Claire highlights the value of evening wrap-up vs morning digest
  16. 35:05 – 38:05

    How Daniel talks to AI without personifying it: clarity, reminders, best intentions

    Daniel explains his prompting stance: direct instructions, minimal politeness, and frequent reminders to revisit prior decisions—similar to parenting. He applies an ‘assume best intentions’ mindset from tech culture to both family and AI interactions.

    • Prefers straightforward directives over politeness/personification
    • Often instructs: “We’ve gone over this—search memory for prior work”
    • Uses parenting-style repetition and guardrails
    • Operates on ‘assume best intentions’ to keep interactions productive

Get more out of YouTube videos.

High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.