Build the confidence to
think like a senior engineer.
Build a real app. Use AI the right way. Learn by doing, understand the why behind each decision, and develop the judgment to make strong engineering decisions.
Built around one real app, so every lesson stays grounded in real decisions.
Most devs using AI right now are getting faster at being stuck.
You can vibe-prompt a whole app into existence in an afternoon. It demos great. Then the edge cases show up, the architecture starts wobbling, and you realize you cannot explain why the system is shaped the way it is.
Strong engineers are not the ones generating the most code. They are the ones who can reason about a system and use AI to move faster inside decisions they actually understand.
This learning experience teaches that reasoning directly. The app is the vehicle. By the end, you should not just have working code. You should have the confidence to explain every major choice you made and why it makes sense.
Every layer of a real app, taught through the why.
Build
Build a native app with React Native and Expo, with file-based routing you can explain line by line.
Along the way, you'll learn
UI & Design System
Your own custom UI kit. Dark mode, design tokens, and a professional-looking login screen.
Along the way, you'll learn
Authentication
Login state, persisted sessions, protected routes, and Supabase Auth.
Along the way, you'll learn
Database
Supabase with Postgres tables, schemas, RLS, functions, triggers, transactions, and migrations.
Along the way, you'll learn
State & Data
TanStack Query on top of a real social graph. Real-time updates and edge functions.
Along the way, you'll learn
Shipping
Builds shipped through TestFlight and the Play Store.
Along the way, you'll learn
Two ways to use AI. Only one grows your judgment.
The wrong way
Vibe-prompting
"Set up invite codes for users."
- You can't explain a single architectural choice
- You don't know which parts will scale
- You can't fix what you didn't decide
- Interviewers can tell in under 5 minutes
The right way
Precision prompts
"Create a migration for invite codes with a user id, a uuid code, and a timestamp. Enable RLS so users can only read their own code."
"Add a trigger on public.users insert to create an invite code automatically."
"Explain the invite acceptance flow: schema changes, the RPC to redeem an invite code, and which indexes we need."
- You make the design decision; AI handles the typing
- You learn the why, not just the what
- You can defend every line in your codebase
- You sound like a senior in interviews
What you build
Intro video coming soon
A simple social app with real engineering decisions underneath.
You'll build a real social app from scratch: a color-picking app with friends, likes, invite codes, and live updates. The app is simple. The decisions behind it aren't.
How do you model a friendship in a database? How do you structure auth so protected pages stay protected without checks scattered everywhere? How do you share state across the app, fetch data on the server, and push a live update to someone's friends the moment something changes? These are the questions we answer — with TypeScript, React, and AI as the tools, and your judgment as the filter.
From students
The goal isn't more code output. It's clearer reasoning.
“Jon's course completely changed how I approach software engineering. It pushed me beyond just writing code and helped me think much more like a senior developer. I came away thinking more clearly about architecture, scalability, tradeoffs, and real-world system design. I also learned how to use AI much more effectively. It gave me the confidence and engineering mindset that helped me get the job.”
Gurneer
Student
“I joined expecting to build a React Native app, but what I actually gained was a much deeper understanding of how real full-stack applications are built. The biggest lessons were around security, data flow, backend architecture, and how to use AI responsibly — to guide it, verify it, and understand every decision instead of trusting it blindly. I truly believe this program helped me get hired.”
Shanta
Student, hired at Pandium

Hi — I'm Jon.
I've spent the last two decades shipping software at startups and bigger companies. Somewhere along the way I realized the thing that actually moved my career wasn't the apps I built — it was the moments I had to explain them to someone else.
LearningTwice is built around a single belief: the people who win the next five years of software hiring are the ones who use AI to go deeper, not shallower. This curriculum is how I'd teach someone, in person, with no shortcuts.
Early access: start with the finished foundation lessons today. New lessons and modules ship as they're completed.
- Finished foundation lessons available now
- New lessons and modules included as they ship
- Example prompts for every major decision
- Private Discord server for questions and updates
- Deliverables you can show in an interview
- Lifetime access — no subscription
- 30-day money-back guarantee
30-day money-back guarantee. No questions asked.
FAQ
Common questions
Who is this for?
Developers who can already write code but want to build deeper judgment about how systems are shaped — architecture, tradeoffs, and the decisions that hold up under pressure.
What do I need to know before starting?
You should be comfortable reading and writing JavaScript. React experience helps, but the course explains every new concept as it appears.
How long does it take?
Most students finish in 4–8 weeks working a few hours a week, but you go at your own pace. Lifetime access means no deadline.
Is this a video course?
No. It's a structured written curriculum built around doing. You read, you prompt, you build, you explain. That's what builds judgment — not passive watching.
What if I don't like it?
Email within 30 days for a full refund, no questions asked.
What do I actually walk away with?
A shipped native app in the App Store and Play Store, a migration-tracked database schema with RLS you can defend, and the confidence to explain every major engineering decision you made.