
From journalist to app developer using Claude Code
Claire Vo (host), Daniel Roth (guest)
In this episode of How I AI, featuring Claire Vo and Daniel Roth, From journalist to app developer using Claude Code explores a journalist ships iOS apps using dueling Claude Code agents Daniel Roth describes his transition from journalism to building and shipping iOS apps by leveraging generative AI as a practical engineering partner.
A journalist ships iOS apps using dueling Claude Code agents
Daniel Roth describes his transition from journalism to building and shipping iOS apps by leveraging generative AI as a practical engineering partner.
He maintains a living feature-idea backlog in a Claude Project that scores requests by build effort, customer happiness, and growth impact to choose weekend-sized tasks.
His core workflow uses two Claude Code personas—“Bob the Builder” to plan and implement and “Ray the Reviewer” to perform security/architecture reviews—plus Daniel as the tie-breaker product decision-maker.
He emphasizes disciplined development habits (planning first, modular code, branches, documentation in Markdown, testing in Xcode) to avoid common AI-coded pitfalls.
Beyond building, he highlights real-world friction points like App Store submission complexity and the ongoing need for discovery/marketing and retention work.
Key Takeaways
Treat AI coding like a team workflow, not a single chat.
Daniel splits responsibilities between a builder agent (implementation) and a reviewer agent (security/architecture), then acts as the decision-maker when they disagree—mirroring real engineering org dynamics.
Get the full analysis with uListen AI
Keep a continuously updated, scored backlog to make weekend building effective.
He logs incoming community ideas into a standing Claude chat that estimates build time and impact (customer happiness and growth), letting him quickly pick a task that matches available time.
Get the full analysis with uListen AI
Write everything down to solve the context-window problem (for you and the model).
He saves plans, decisions, and strategies as Markdown files so Claude can re-load context and so he can resume work after weekday gaps without re-deriving intent.
Get the full analysis with uListen AI
Force planning before coding to reduce AI-generated spaghetti.
Bob is instructed to plan first and build in modules, reflecting Daniel’s lesson that early “just code it” attempts quickly become unwieldy and hard to maintain.
Get the full analysis with uListen AI
Add deliberate friction if you’re learning, not just shipping.
Instead of hiding review behind an internal “security agent” step, he manually copy/pastes plans into Ray so he can see objections and learn what’s risky or flawed.
Get the full analysis with uListen AI
Use branches religiously—AI makes changes fast, but merges can still hurt.
After painful experiences shipping to main and dealing with imperfect merges, he requires all work to happen on branches and treats merging as a real engineering step, not a formality.
Get the full analysis with uListen AI
Shipping is more than code: App Store and marketing become the real bottlenecks.
He found App Store navigation and submission requirements surprisingly hard, and he notes that discovery/retention planning is a separate skill set from feature building.
Get the full analysis with uListen AI
Notable Quotes
“Managing AI is almost like managing a really smart but hungover intern.”
— Daniel Roth
“Everything’s genius… You have to say no to things.”
— Daniel Roth
“All I am is a really picky customer.”
— Daniel Roth
“You can vibe code code. You cannot vibe code gross margins.”
— Claire Vo
“The hardest part of building my two apps has been the App Store.”
— Daniel Roth
Questions Answered in This Episode
What exact scoring rubric do you use for “customer happiness” vs “growth impact,” and how often do you re-rank the backlog as you learn more?
Daniel Roth describes his transition from journalism to building and shipping iOS apps by leveraging generative AI as a practical engineering partner.
Get the full analysis with uListen AI
Can you share the full Bob and Ray system prompts (and any guardrails) that most improved code quality and prevented risky changes?
He maintains a living feature-idea backlog in a Claude Project that scores requests by build effort, customer happiness, and growth impact to choose weekend-sized tasks.
Get the full analysis with uListen AI
What are the most common security or architecture issues Ray flags in iOS apps like Commutely (e.g., API keys, background refresh constraints, data storage)?
His core workflow uses two Claude Code personas—“Bob the Builder” to plan and implement and “Ray the Reviewer” to perform security/architecture reviews—plus Daniel as the tie-breaker product decision-maker.
Get the full analysis with uListen AI
You mentioned Claude forgets iOS Live Activity limitations—what specific “known constraints” document do you keep, and how do you force the agent to consult it before proposing solutions?
He emphasizes disciplined development habits (planning first, modular code, branches, documentation in Markdown, testing in Xcode) to avoid common AI-coded pitfalls.
Get the full analysis with uListen AI
What App Store submission steps caused the most churn (privacy labels, entitlements, screenshots, review rejections), and what repeatable checklist did you build to prevent them?
Beyond building, he highlights real-world friction points like App Store submission complexity and the ongoing need for discovery/marketing and retention work.
Get the full analysis with uListen AI
Transcript Preview
So you have actually named your Claudes, and then you give them instructions to listen to each other.
Yes. They have to talk to each other. One is called, the builder app is called Bob, Bob the Builder, and he's got instructions to stop constantly, and you have to run everything by Ray, who's the review agent. Ray's job is senior software engineer who is obsessed with security. He reviews code at milestones, guards security architecture. And then the third agent is me. I am the person who breaks the tie that often happens between Bob wanting to do something and Ray saying you can't do it.
And you are doing all of this as someone who has not spent their career as a software engineer.
For a while, I thought I'm like a mediocre PM, and then I was like, no, maybe I'm more like an architect, and now I realize, like, an architect actually knows real details. A PM is, like, super rigid, and keeps the entire app in their head, and they're able to really prioritize well. I'm a bad prioritizer. All I am is a really picky customer. So I think that is, like, the role of the vibe coder is what do I care about deeply? I'm, like, walking through this house, and I'm telling the architect, "Nope, I want this room blue. I know you don't think it's a good idea. I'm telling you this is what I want."
[upbeat music] Welcome back to How I AI. I'm Claire Vo, product leader and AI obsessive, here on a mission to help you build better with these new tools. Today, I have Dan Roth, who's the editor of LinkedIn, and started his career as a business writer and editor, but has somehow become a software engineer vibe coding iOS apps all the way to the App Store. He's gonna show us his dueling Claude Code setup that lets Bob and Ray build high-quality production-grade software. Let's get to it. This episode is brought to you by WorkOS. AI has already changed how we work. Tools are helping teams write better code, analyze customer data, and even handle support tickets automatically. But there's a catch. These tools only work well when they have deep access to company systems. Your copilot needs to see your entire code base. Your chatbot needs to search across internal docs. And for enterprise buyers, that raises serious security concerns. That's why these apps face intense IT scrutiny from day one. To pass, they need secure authentication, access controls, audit logs, the whole suite of enterprise features. Building all that from scratch, it's a massive lift. That's where WorkOS comes in. WorkOS gives you drop-in APIs for enterprise features so your app can become enterprise-ready and scale upmarket faster. Think of it like Stripe for enterprise features. OpenAI, Perplexity, and Cursor are already using WorkOS to move faster and meet enterprise demands. Join them and hundreds of other industry leaders at workos.com. Start building today. Dan, welcome to How I AI. What I like about having people like me maybe that have a couple years of experience under their belt is we've seen technology shift over time, and we've seen markets shift over time, and we've seen our own career shift over time, and what I love about your story is you've seen a shift like this in an industry that you've been in, and you've seen how disruptive and scary it can feel, and now you're seeing this again, and you're really leaning into it. So tell us how you came from your background, which is non-technical, into now we're gonna see some power Claude Code tips and iOS apps kind of vibe coded all the way to the App Store.
Install uListen to search the full transcript and get AI-powered insights
Get Full TranscriptGet more from every podcast
AI summaries, searchable transcripts, and fact-checking. Free forever.
Add to Chrome