The manual coding era is over
You are not being replaced - you are being upgraded
This lecture will change how you build software forever
It does not mean I stopped thinking
It does not mean I blindly accept output
It does not mean engineering skills don’t matter
It means I describe behavior instead of typing syntax
It means I review outcomes instead of reviewing every line
It means what used to take a dev team 3 weeks, AI now does in 15 minutes
Think about implementation
Write code line by line
Debug syntax errors
Search Stack Overflow
Copy-paste, adapt, test
Hours per feature
Think about behavior
Describe what you want
AI writes the implementation
Test the behavior
Iterate with feedback
Minutes per feature
In December 2025, AI models placed 2nd in the world’s top competitive programming competitions.
Better than 99.99% of human programmers
Solves complex algorithmic problems in seconds
Understands every language, framework, and pattern
Has perfect memory - never forgets a single detail
Available 24/7, infinitely patient, never gets tired
Coined by Andrej Karpathy (OpenAI co-founder, ex-Tesla AI lead) in February 2025. Named Collins Dictionary Word of the Year 2025.
In 2026, it has evolved into Agentic Engineering:
Write natural-language specs
AI generates code under structured human oversight
Multi-model orchestration with persistent project context
The developer specifies, reviews, and steers - AI implements
Start here. Open-source coding agent for terminal, desktop, and IDE workflows. Fast setup, strong defaults, model-flexible.
OpenAI's coding agent for repo work, reviews, debugging, tests, and implementation planning.
Agentic coding tool that reads your codebase, edits files, runs commands, and automates development tasks.
Google's agent-first coding platform for IDE, CLI, multi-agent orchestration, and Google ecosystem workflows.
Suggests the next line
Works within one file
No understanding of your project
You still write 95% of the code
Reads your entire codebase
Understands architecture
Creates and edits multiple files
Runs commands, tests, deploys
You write 0% of the code
Let’s do the math with real numbers:
Assign task to dev team
Team works 2–3 weeks
Review, give feedback
Team addresses feedback: 2–4 weeks
Next review round
Total: 4–7 weeks per feature
Describe feature to AI
AI builds it: 5 minutes
Test, give feedback
AI fixes: 30 seconds
Test again, ship
Total: 15 minutes per feature
3,300+ lines of hand-crafted HTML/CSS/JS
10 language translations, lecture system, blog system
Built and deployed in one afternoon
Hosted on Vercel, custom domain, SSL - all set up by AI
Without AI: 2–3 weeks. With AI: 4 hours.
LLMs have perfect memory and infinite knowledge.
They were trained on virtually all public code ever written - and they memorized it
Context windows are now 1M+ tokens - they remember your entire conversation
They read your entire project before writing a single line
They understand your naming conventions, architecture, and style
They know every framework, library, and best practice ever published
This is not a search engine. This is a world-class engineer with perfect memory who has read every codebase on GitHub and never forgets a single detail.
Typist
Syntax expert
Stack Overflow navigator
Bug hunter
Product architect
Behavior specifier
Quality assurer
Decision maker
For direct control: install the CLI, open a repo, run the agent, review diffs.
For visual editors: use desktop apps or IDE extensions; keep the repo workflow.
Run locally, inspect the screen, review the diff, and keep rollback simple.
Use Homebrew when possible. Keep Git, Node, and your agents updated.
$ brew install git node $ git --version $ node --version
Use your distro package manager, then install agent CLIs with npm or official scripts.
$ sudo apt install git nodejs npm $ git --version $ npm --version
Use PowerShell or WSL. If you are new, WSL makes terminal tooling much smoother.
PS> winget install Git.Git PS> winget install OpenJS.NodeJS PS> git --version
$ curl -fsSL https://opencode.ai/install | bash $ npm i -g opencode-ai $ opencode
Download the OpenCode desktop app for macOS, Windows, or Linux from the official download page.
$ open https://opencode.ai/download
Use OpenCode from VS Code, Cursor, or any editor with a terminal. The workflow stays repo-first.
$ cd my-project $ opencode
# macOS / Linux $ curl -fsSL https://chatgpt.com/codex/install.sh | sh # Windows PowerShell PS> powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"
# npm install $ npm install -g @anthropic-ai/claude-code $ claude
Use the CLI for terminal workflows or the IDE when you want Google’s agent manager and visual workflow.
$ open https://antigravity.google
Before adding memory systems, learn the basic loop: open the repo, give context, ask for one change, inspect the diff, and run it.
$ mkdir my-portfolio $ cd my-portfolio $ git init $ opencode > Here is my CV: [paste CV]. Build me a polished personal portfolio site like emrevarol.com. Include a hero, about section, experience timeline, skills, education, and contact. Make it responsive.
The important shift is not which editor you open. It is who understands the repository and can act on it.
Terminal lovers: run agents directly in the repo and inspect diffs from Git
IDE people: use desktop apps/extensions, but keep the same small-commit workflow
Teams: standardize repo memory, commands, and verification gates
Everyone: context, plan, edit, run, inspect, commit
Building a product is not just code. You need infrastructure. Here’s what we use - all set up from the terminal:
Serverless Redis. Caching for 10K+ concurrent users. Pay-per-request, free tier included.
Host your code. Every push triggers a Vercel deploy. You see changes live in seconds.
Does all of the above for you. Sets up, configures, deploys - from the terminal.
Forget everything you know about writing code. You are now a behavior architect.
“I need a useState hook here”
“I need to map over this array”
“I should create a helper function”
“Let me import this library”
“When the user clicks Buy, deduct from their balance”
“Show a toast notification on success”
“If balance is insufficient, show an error”
“Log the transaction for auditing”
This is your new workflow. Memorize it.
Begin with the simplest possible version.
> Build a complete English
learning platform with AI tutor,
assessments, writing/speaking/
listening modules, vocabulary,
grammar, leaderboards, friends,
18 languages, and auth.
> Create a Next.js app with a
landing page for an English
learning platform. Show 4
learning modules (Writing,
Speaking, Listening, Vocabulary)
as cards. Hardcoded for now.
Once the base works, add exactly one feature.
# Iteration 2: Add a database > Replace the hardcoded data with a PostgreSQL database using Prisma. Create Lesson, Module, and Progress models. Seed sample lessons for each module. # Iteration 3: Add user auth > Add NextAuth with email/password. Users should be able to sign up and log in. Show their name in the navbar when logged in. # Iteration 4: Add AI tutor > Add a /tutor page with a conversation interface. Users type a message, Claude API responds with English corrections and tips. Track conversation history.
After each feature, test the behavior, not the code.
Open the app in your browser
Click through the feature like a user would
Try edge cases: empty inputs, wrong data, double clicks
Check mobile view
You do NOT need to:
Read every line of generated code
Understand every helper function
Review the CSS class names
Something not right? Tell the AI what to change - in behavior terms.
# Not: "change the onClick handler to use a different state variable" # Instead: > When I finish a lesson, the progress bar doesn't update until I refresh the page. Fix this so the progress updates immediately. # Not: "add a try-catch around the API call" # Instead: > When the AI tutor API call fails, the chat just freezes. Show a red error message that says "Connection lost, please try again" and re-enable the send button.
A feature is “baked” when:
It works as expected in all cases you can think of
It handles errors gracefully
It looks good on desktop and mobile
You’ve tried to break it and couldn’t
Once baked: commit, and move to the next feature.
> Commit all changes with message "Add AI tutor with conversation history"
This is the hardest mindset shift for experienced engineers.
Read every file the AI changed
Check variable names
Worry about import order
Rewrite code “your way”
Spend 30 min reviewing
Test the feature in the browser
Try edge cases
Check mobile responsiveness
Verify data integrity
Spend 2 min testing
A hard truth from my experience:
It never forgets to handle edge cases
It follows conventions perfectly
It writes consistent patterns across files
It never gets lazy or takes shortcuts
It knows every best practice from every framework
This doesn’t mean it’s always right. It means your default should be trust, then verify - not distrust, then rewrite.
You are now three roles in one:
A good prompt is a good spec. A bad prompt is a bad spec.
> Add a dashboard
What goes on it?
For whom?
What data?
> Add a dashboard page at /dashboard.
Show the user's learning streak,
completed lessons, vocabulary
mastery %, and recent activity
(last 10 sessions). Include a
chart showing progress over time.
One giant prompt
Everything at once
Hard to debug
Can’t test individually
If it fails, you lose everything
Many small prompts
One feature at a time
Easy to test each step
Easy to undo if wrong
Git commit after each success
Four stronger examples. Real products, real workflows, real screenshots.

Personal brand, lectures, writing, and proof for useful AI products.

Long-term memory for AI agents and team knowledge.

AI-powered real estate search and decision support for Turkey.

Practical, personal, accessible AI English learning.
Different domains, same working model:
1. Start with a real human need
2. Describe the behavior clearly
3. Prototype quickly with AI
4. Test the product through behavior
5. Improve with logs, small commits, and memory
Weeks became hours. Months became days.
Taste + content
Search UX
Learning loops
Memory system
Practical techniques to get the most out of AI coding tools.
Need to translate to 9 languages? Don’t do it one by one.
# Claude Code can spawn sub-agents that work in parallel > Translate the lecture page to all 9 supported languages (TR, FR, DE, ES, AR, PT, RW, SW, AM). Use parallel agents for each language. # Result: 9 agents work simultaneously # 36 files translated in ~5 minutes instead of ~45 minutes
The AI is only as good as the context you give it.
AGENTS.md / CLAUDE.md - project-level instructions, tech stack, rules
Engram - shared long-term memory across agents and sessions
Memory files - persistent knowledge across conversations
Clear prompts - specific, behavior-focused descriptions
Existing code - the AI reads your codebase and follows your patterns
# Bad context: starting from scratch every time > make a page # Good context: AI knows your project inside and out > Add a /friends page similar to /leaderboard. Show mutual friends at the top, then suggested friends based on similar learning paths. Use the existing FriendRequest model.
It happens. Here’s what to do:
Simplify the prompt - break it into smaller pieces
Give examples - show what you want, not just describe it
Share error messages - paste the exact error, AI is great at debugging
Try a different approach - “instead of X, try Y”
Start fresh - sometimes a new conversation with clear context works better
AI is an incredible debugger.
# Just paste the error and describe the context > I'm getting this error when I click the Buy button: "TypeError: Cannot read properties of undefined (reading 'price')" This happens only when the market has no trades yet. # The AI will: # 1. Find the relevant file # 2. Identify the bug # 3. Fix it # 4. Explain what went wrong
One of AI’s biggest advantages: it edits many files atomically.
> Add a "favorites" feature. Users can bookmark listings. Show a heart icon on each listing card, a /favorites page with saved listings, and a count badge in the navbar. # AI will modify in one go: # - schema.prisma (new Favorite model) # - API route (CRUD for favorites) # - ListingCard component (heart button) # - Navbar (favorites count) # - New /favorites page # - Database migration
Don’t paste AI-generated code into Stack Overflow answers (it’s not yours)
Don’t skip testing because “the AI wrote it”
Don’t use AI for security-critical code without expert review
Don’t stop learning fundamentals - you need to understand what you’re building
Don’t give up after one failed attempt - rephrase and try again
Don’t try to build everything in one giant prompt
Real incidents from building these projects with AI.
git push --force destroyed a live site (Impact page, Press page, GenAI lecture — gone)
Recovery was only possible because Vercel kept old deployments and a second clone existed
Rule: Never force push. Never rebase shared branches. Always have a rollback strategy.
AI models can autonomously use API keys and rack up thousands of dollars without you realizing
Rule: Set spending limits. Use separate keys per project. Monitor usage daily.
You need daily activity reports and finance reports — know what your AI agents did and what they spent
Use services like Resend to email yourself automated daily summaries
Rule: If you can’t see what happened yesterday, you’re flying blind.
AI cannot replace you in these areas:
Vision - What should we build? Why? (for now)
Empathy - What do users actually need? (for now)
Judgment - Is this the right approach? (for now)
Taste - Does this feel right? Is it good enough? (for now)
Before any deploy, run the project locally and verify the exact screen or flow you changed.
Do not accept “done” from an agent. Review the diff, inspect the UI, and run the relevant check.
Provider keys belong in env vars and serverless routes, never in browser JavaScript.
Key parity is not enough. Check visible copy, overflow, emoji/icons, and mobile layout.
If every project needs a context-aware bot, standardize provider rotation, rate limits, prompts, and UI once.
1. Manual coding is no longer the bottleneck; clear product judgment is.
2. Describe behavior, not implementation details.
3. Make one small change, run it, then continue.
4. Review outcomes with screenshots, tests, logs, and real local state.
5. Keep secrets on the server and costs observable.
6. Treat localization and mobile layout as product work, not a string replace.
7. Use reusable patterns for chatbots, provider rotation, and agent memory.
8. Add Engram when the project has decisions worth remembering.
9. Guard your API keys.
10. Always have rollback and backups.
Build something real this week.
Install OpenCode, then try Codex and Claude Code on the same small project.
Pick a simple idea (personal site, todo app, calculator). Build it entirely with AI. Follow the iteration cycle.
Add 3 features incrementally. Test each one. Commit after each.
Deploy to Vercel or Netlify. Share the URL. Show the world.
OpenCode: opencode.ai/download
Codex: github.com/openai/codex
Claude Code: code.claude.com/docs
Antigravity: antigravity.google
Bonus: Engram: Engram is a memory layer for AI agents. It keeps repo rules, decisions, gotchas, and solved errors available across sessions.
Use it after the first project becomes real.
Rule: AGENTS.md / CLAUDE.md
emrevarol.com
engram.tools
evimibul.org
english.cash
emrevarol.com/lecture/coding-with-genai.html
Use the slide chat to ask context-aware questions while you review.
The future belongs to people who can clearly describe valuable tools, verify outcomes, and keep humans at the center.
OpenCode first. Codex for repo work. Claude Code for deep sessions. Antigravity for Google workflows. Engram for memory.
Use AI to expand human agency: learning, work, decisions, and access to services.