Skip to content

By playing, you agree to uListen's Terms and Privacy Policy and YouTube's Terms of Service.

John KimJohn Kim

How I use Claude Code (Meta L7 Senior Staff Engineer Tips)

This is my 50 Claude Code tips from 6 months of daily use personally and at Meta as a Staff Software Engineer. I've been coding with Claude Code basically 12 hours a day really trying to understand what makes Claude Code tik.

John Kimhost
Feb 7, 202646mWatch on YouTube

Summaries, chapters, transcripts, and FAQs on this page are made by uListen, not YouTube.

CHAPTERS

Jump to publisher timestamps

Chapter summaries

  1. Why he lives in Claude Code: 50 tips, daily pairing, and code review bottlenecks

    John Kim sets the context for why he’s sharing these tips: he’s been using Claude Code daily for months and spends long stretches pair-programming with it. He frames the video as a practical guide covering foundations first (setup, commands, rules) before moving into advanced workflows.

    • •He uses Claude Code heavily (long daily sessions) and still reviews every line of generated code
    • •He considers code review the current bottleneck, not writing code
    • •The video is structured as 50 tips that he wished he knew when starting
    • •He will cover setup, keyboard shortcuts, essential commands, CLAUDE.md rules, and advanced workflows
  2. Project setup fundamentals: start Claude from the repo root and run /init early

    He demonstrates launching Claude Code from a project’s root directory to ensure correct context loading. Then he shows using /init so Claude analyzes the codebase and generates an initial CLAUDE.md inside the project’s .claude directory.

    • •Running from the root directory affects what gets zipped into initial context and token usage
    • •Opening Claude can consume tokens immediately because it prepares project context
    • •/init analyzes the codebase architecture and generates a starter CLAUDE.md
    • •Claude presents a summary of what it detected and asks to commit the generated file
  3. How CLAUDE.md and memory work: hierarchy, scope, and keeping rules lean

    John explains that CLAUDE.md rules operate hierarchically across project (“checked-in”) and user (“global”) memory. He emphasizes keeping the file concise to avoid token bloat and reduce the chance the model gets distracted by irrelevant rules.

    • •Using /memory reveals active rule sources (project vs user/global)
    • •Rules are hierarchical and Claude operates based on the currently loaded memories
    • •He prefers CLAUDE.md to stay relatively small to control token usage
    • •Too much context bloat can reduce model reliability and adherence to intent
  4. A practical CLAUDE.md template: architecture + domain context + validation loop

    Using an iOS project example, he shows the kinds of information he puts into CLAUDE.md: what the project is, the domain and patterns, and especially how to build/validate changes. He argues that a clear validation loop helps the model iterate until the work actually compiles and works.

    • •Include project purpose/requirements plus high-level technical architecture
    • •Add domain context like frameworks, patterns, and relevant file structure
    • •Document build steps and validation commands/workflows
    • •A strong validation loop helps the model self-correct when outputs don’t work
    • •He highlights validation as central to effective agentic coding workflows
  5. Keyboard shortcuts that change speed: Plan Mode vs edits, interrupting, rewind, and screenshots

    John walks through the shortcuts he uses constantly to manage flow: toggling Plan Mode, interrupting with Escape, clearing input, rewinding context, and dragging screenshots in. He frames these as core “context management” tools when working all day in the terminal UI.

    • •Shift+Tab toggles between modes; he starts most features in Plan Mode to verify assumptions
    • •Escape interrupts generation; he encourages course-correcting early rather than waiting
    • •Double Escape clears the input buffer; on empty input it opens rewind/restore options
    • •Dragging screenshots into Claude is a fast workflow, especially for UI work
    • •He notes screenshots work best when you add contextual instructions alongside them
  6. Essential slash commands: /clear, /context, compaction, /model, /resume, /mcp, and /help

    He reviews the core slash commands he considers most valuable for everyday use, with emphasis on inspecting and controlling context. He also explains how to recover sessions, switch models, and discover other commands through /help.

    • •/clear resets conversation context without opening a new instance
    • •/context shows what’s in context and token usage so you can audit bloat sources
    • •He usually lets auto-compaction summarize long sessions, using manual compaction rarely
    • •/model (models) lets you switch depending on cost/speed preferences; he often defaults to Opus
    • •/resume restores a lost session’s context
    • •/mcp lists installed MCPs; /help enumerates commands and descriptions
  7. Using Git as a safety net instead of relying on rewinds

    John describes using Git workflows alongside Claude Code to manage risk and checkpoints. While Claude has a rewind/restore capability, he finds Git clearer and prefers it as the primary safety mechanism.

    • •Claude can help with Git-related work (including summaries/test plans) when paired with templates
    • •He treats Git as the main safety net for changes
    • •He mentions Claude’s rewind feature but finds it confusing compared to Git
    • •He uses rewind as a last resort when he lacks a Git checkpoint
  8. CLAUDE.md deep dive: priority order, “never/always” rules, and updating via Claude (not manually)

    He explains how he thinks about rule priority and specificity inside CLAUDE.md, including the idea that instructions are read top-to-bottom. He recommends fixing recurring mistakes by updating rules, and prefers asking Claude to make those updates rather than editing rule files by hand.

    • •He believes CLAUDE.md should be ordered from most important to least important
    • •Rules should capture strong constraints (never do X, always do Y) and useful examples
    • •When the model fails on unique internal patterns, fix once and encode it into rules
    • •He recommends asking Claude to update the rules instead of manual edits
    • •He demonstrates the workflow of prompting Claude to update the rule file
  9. Workflow triggers and team sharing: keywords, committing rules, and when to use dangerously-skip

    John shows how keywords in rules can trigger repeatable behaviors (like build flows) and discusses committing CLAUDE.md to the codebase to help teammates—while keeping the bar high to avoid bloating everyone’s context. He also covers the risks of running with permissions skipped and using /permissions to keep guardrails.

    • •He uses trigger keywords in rules to invoke workflows like building via an MCP
    • •He describes committing CLAUDE.md (“compound engineering”) to improve teammate experience, with caution about file size and relevance
    • •He suggests evaluating whether shared rules help, often via trying them for a period and gathering feedback
    • •He demonstrates running with --dangerously-skip permissions to avoid constant approvals
    • •He warns to use skip only in throwaway environments and keep protections via /permissions for dangerous actions
  10. Daily workflow philosophy: plan first, challenge outputs, and keep context fresh

    He demonstrates how he starts work by iterating in Plan Mode and treating Claude like an engineering partner rather than accepting first outputs. He repeatedly emphasizes that “fresh, condensed context” beats long, messy sessions and that up-front planning makes later execution easier.

    • •He begins new features in Plan Mode and spends time validating direction before edits
    • •He actively questions and challenges Claude’s suggestions instead of accepting first drafts
    • •He believes once the context and execution spec are good, code generation becomes the easy part
    • •He argues bloated context from repeated trial-and-error can confuse the model
    • •He returns to the theme that context engineering is central to effective use
  11. Persisting and lazy-loading context: a “second brain” for project to-dos and switching

    John describes saving useful session output into a local store and later reloading it to bootstrap new sessions. He explains a lazy-loading approach where he only pulls in project to-dos/context when needed, helping him switch projects without carrying large external tracking systems.

    • •He prompts Claude to save completed work into local project notes/context
    • •He can later request Claude to load that stored context into a new session
    • •He keeps project to-dos inside this local index and lazy-loads them on demand
    • •This supports quick context switching without always relying on external boards/tools
    • •He notes this approach fits especially well for personal projects, but could be adapted via MCPs for other systems
  12. Verification loops beyond builds: debugging automation, browser-driven validation, and model choice

    He expands validation into broader automation: adding logs, running apps, controlling emulators, and analyzing outputs—then ties it back to model choice for difficult tasks. He reiterates that strong validation is the lever for better first-pass results and highlights using stronger models when feasible.

    • •He suggests verification loops like adding debug logs, running the app, and reading logs to debug issues
    • •He mentions performance-oriented validation concepts like running traces and analyzing timing/jank via tools
    • •For web validation, he describes navigation/testing approaches (end-to-end flows) and later connects to browser control
    • •He reiterates that validation loops are key to more automated, higher-quality iterations
    • •He encourages considering stronger models (like Opus) for complex work when possible
  13. Power-user composability: skills, commands, MCP discovery/installation, subagents, and avoiding overload

    John explains Claude Code’s “primitives” and how they compose: skills and commands as saved workflows, MCPs as integrations, and subagents as isolated contexts. He argues against instruction overload and cautions that subagents often get misused when the main session needs the full context to do good work.

    • •Skills are saved recurring workflows; he demonstrates creating one from a multi-step process
    • •Commands now overlap with skills, enabling quick invocation via a slash command
    • •He recommends not manually creating/maintaining skills/commands—ask Claude to manage them
    • •He suggests asking Claude to find and install MCPs, while staying mindful of outdated info and token bloat
    • •Subagents help parallelize work and protect the main context, but only return outputs (not full reasoning/context)
    • •He discourages “instruction overload” and argues for bringing work to a focused context instead of scattering it
  14. Advanced parallel development: multiple instances, iTerm pane juggling, notifications, and Git worktrees

    He shows how running multiple Claude Code instances enables parallel work across features and even projects, and how iTerm helps manage it quickly from the keyboard. He adds optional productivity layers like notifications, and introduces Git worktrees to avoid local editing conflicts when many instances touch the same repo.

    • •He runs multiple Claude instances simultaneously and switches between them to keep momentum
    • •He uses iTerm features (splits/tabs and keyboard navigation) to juggle sessions quickly
    • •He sometimes renames tabs/sessions (e.g., local vs remote SSH) for organization
    • •He describes enabling notifications so he can work elsewhere while a session runs
    • •Git worktrees allow parallel edits in the same project without conflicts between instances
    • •He frames this as a major reason he moved his workflow into the terminal
  15. /chrome and hooks: browser control for debugging plus automation guardrails, then a context-first wrap-up

    John demos /chrome to let Claude navigate websites via screenshots and actions when APIs aren’t available, and positions it as another composable validation tool. He then introduces hooks for pre/post execution automation and safety checks, encourages exploring shared plugins, and closes by reiterating that keeping context minimal and relevant is the core principle.

    • •/chrome opens browser control so Claude can navigate pages, click, type, and extract information
    • •He uses browser control when API access isn’t available, and notes it can be composed into larger workflows
    • •He introduces hooks that run before/after tool actions (including failure cases) and recommends asking Claude to set them up
    • •He cites examples like auto-formatting/linting and blocking destructive actions as hook use cases
    • •He describes plugins as combinations of these primitives (skills/MCPs/subagents/scripts) shared by others
    • •He closes with the message that “context is king”: keep it fresh, relevant, and no more than needed

Publisher timestamps

  1. 0:00Intro
  2. 1:04ACT 1: Foundations (Tips 1-25)
  3. 1:18Tip 1: Run from root directory
  4. 1:56Tip 2: Run /init immediately
  5. 2:54Tip 3: CLAUDE.md is hierarchical
  6. 3:27Tip 4: Keep CLAUDE.md concise
  7. 3:58Tip 5: Structure: What, Domain, Validation
  8. 5:36Keyboard Shortcuts
  9. 5:58Tip 6: Shift+Tab toggles modes
  10. 6:40Tip 7: Escape interrupts
  11. 7:43Tip 8: Double Escape clears input
  12. 7:59Tip 9: Double Escape on empty = rewind
  13. 8:29Tip 10: Screenshot and drag
  14. 8:44Tip 11: Add context to screenshots
  15. 9:09Essential Commands
  16. 9:41Tip 12: /clear resets context
  17. 10:13Tip 13: /context shows token usage
  18. 11:42Tip 14: Let auto-compaction work
  19. 12:23Tip 15: /model switches models
  20. 12:49Tip 16: /resume recovers sessions
  21. 13:21Tip 17: /mcp shows MCP status
  22. 14:19Tip 18: /help shows all commands
  23. 14:33Tip 19: Git is your safety net
  24. 15:24CLAUDE.md Deep Dive
  25. 15:52Tip 20: Add a Critical Rules section
  26. 17:08Tip 21: Ask Claude to update rules
  27. 17:46Tip 22: Use workflow triggers
  28. 18:27Tip 23: Commit CLAUDE.md to git
  29. 19:34Tip 24: dangerously-skip for throwaway envs
  30. 20:39Tip 25: Combine skip with allowlists
  31. 20:59ACT 2: Daily Workflow (Tips 26-32)
  32. 21:38Tip 26: Start features in Plan Mode
  33. 23:46Tip 27: Fresh context beats bloated
  34. 24:29Tip 28: Persist before ending sessions
  35. 25:03Tip 29: Lazy load context
  36. 26:09Tip 30: Give verification commands
  37. 27:32Tip 31: Consider Opus for complex work
  38. 28:18Tip 32: Read thinking blocks
  39. 29:01ACT 3: Power User (Tips 33-40)
  40. 29:34Tip 33: Four composability primitives
  41. 29:54Tip 34: Skills = recurring workflows
  42. 31:33Tip 35: Commands = quick shorthand
  43. 32:18Tip 36: Never create commands manually
  44. 33:02Tip 37: MCPs = external service docs
  45. 33:52Tip 38: Ask Claude to install MCPs
  46. 34:15Tip 39: Subagents = isolated context
  47. 37:10Tip 40: Avoid instruction overload
  48. 37:48ACT 4: Advanced (Tips 41-50)
  49. 38:02Tip 41: Run multiple instances
  50. 39:06Tip 42: iTerm split panes
  51. 40:33Tip 43: Enable notifications
  52. 41:10Tip 44: Git worktrees for isolation
  53. 41:40Tip 45: /chrome connects browser
  54. 43:17Tip 46: Powerful for debugging
  55. 43:28Hooks & Automation
  56. 43:41Tip 47: Hooks intercept actions
  57. 44:10Tip 48: Auto-format with PostToolUse
  58. 44:24Tip 49: Block dangerous commands
  59. 44:43Tip 50: Explore the plugin ecosystem
  60. 45:32Context is King (Outro)

Get more out of YouTube videos.

Read along on your phone, search it beside the video, or ask your favorite AI app what was said.