5 minute read

Reference: two juniors vs. one senior + Claude Code

📊 Project overview: the Mailbean store-owner app

Item Figure
Total Dart files 50
Total lines of code ~16,170 LOC
Feature modules 8
External dependencies 16
Architecture Clean Architecture + Riverpod

Key features implemented

  • 🔐 Authentication/login (token-based)
  • 🏪 Store management (multi-store support)
  • ☕ Coffee machine management (online/offline status)
  • 🎮 Remote control system (WebSocket, 20+ commands)
  • 📋 Menu/recipe management
  • 💰 Sales analytics (filtering, statistics)
  • 👥 Customer management
  • ⚙️ Settings and notifications

⏱️ Development time comparison

📅 Actual timeline (based on file creation times)

    2026-01-15 12:58 PM  ▶ Project started (app_logger.dart)
    2026-01-15 01:18 PM  ▶ Core infrastructure done (dio_client.dart)
    2026-01-15 02:17 PM  ▶ Store management done (store_provider.dart)
    2026-01-16 04:18 AM  ▶ Machine management done (machine_provider.dart)
    2026-01-16 05:59 PM  ▶ All features done (customer_screen.dart)
    ────────────────────────────────────────────────────
    Total development time: about 1.5 days (actual working hours)

Scenario A: two juniors (1 Flutter + 1 server)

Phase Estimate Notes
Requirements analysis 1 week Feature definition, API design discussion
Architecture design 1–2 weeks Folder structure, state management decisions (incl. trial and error)
Initial setup 1 week Project configuration, library selection, environment
Auth/login 1–2 weeks Including learning token management and error handling
Store/machine management 2–3 weeks API integration, UI, debugging
Remote control (WebSocket) 2–3 weeks Learning WebSocket, connection management, command handling
Sales/menu/customer 2–3 weeks CRUD, filtering, pagination
UI/UX polish 1–2 weeks Responsive, loading states, error handling
Bug fixing/QA 2–3 weeks Integration testing, bug fixes
Total estimate 13–20 weeks (about 3–5 months)  

Expected bottlenecks with juniors

  • Time to understand and apply Clean Architecture
  • Riverpod state management learning curve
  • Limited experience implementing real-time WebSocket communication
  • Trial and error on API error-handling patterns
  • Technical debt accumulating with no code reviewer

Scenario B: one senior + Claude Code (✅ actual result)

Phase Actual time Notes
Requirements + architecture 30 min Structure designed on the spot in conversation with Claude
Initial setup 20 min Boilerplate generated immediately
Auth/login 1–2 hours Pattern applied at once, error handling generated automatically
Store/machine management 3–4 hours Models, repositories, UI generated in parallel
Remote control (WebSocket) 2–3 hours WebSocket pattern implemented immediately
Sales/menu/customer 3–4 hours Fast implementation by reusing similar patterns
UI/UX polish 1–2 hours Components adjusted in bulk
Bug fixes Immediate Error messages analyzed and fixed on the spot
Total time about 1.5 days measured

Benefits of working with Claude Code

  • Architectural patterns applied immediately (Clean Architecture)
  • Repetitive code generated automatically (model, repository, provider)
  • Real-time code review and improvement suggestions
  • Error message analysis and immediate fixes
  • Consistent coding style maintained

💰 Cost comparison (Korean market)

Scenario A: two juniors

Item Monthly Duration Total
Flutter junior ₩3.5M 4 months ₩14M
Server junior ₩3.5M 4 months ₩14M
Senior code review (part-time) ₩1.5M 4 months ₩6M
Total labor     ₩34M

※ Additional costs: rework, paying down technical debt, onboarding, etc.


Scenario B: one senior + Claude Code (✅ actual)

Item Cost Duration Total
Senior developer ₩6M/month 1.5 days ~₩300,000
Claude Pro ~₩30,000/month 1.5 days ~₩15,000
Total     ~₩315,000

⚠️ In reality the senior’s salary is fixed, so the time saved goes into other projects.


📈 Efficiency metrics

Metric 2 juniors Senior + Claude Multiple
Development time 13–20 weeks 1.5 days 60–90× ⬆️
Total cost ~₩34M ~₩315,000 108× ⬆️
Code quality Medium (no reviewer) High (instant feedback) -
Architectural consistency Low–medium High -
Communication cost High (2-person collaboration) Low (1 person + AI) -
Technical debt Likely to accumulate Minimized -
Odds of overtime High Low -
Learning time Part of the job Not separately needed -

🔥 Headline numbers

    ┌─────────────────────────────────────────────────┐
    │  16,170 LOC ÷ 1.5 days = 10,780 LOC/day         │
    │  50 files ÷ 1.5 days = 33 files/day             │
    │  8 feature modules ÷ 1.5 days = 5.3 modules/day │
    └─────────────────────────────────────────────────┘

🔍 Real examples from this project

Example 1: instant error resolution

    ❌ Error: "No MaterialLocalizations found"
    ⏱️ Claude's resolution time: 2 minutes
    📝 Fix: added flutter_localizations + MaterialApp configuration

    Expected junior time: 30 minutes – 2 hours (Googling, Stack Overflow)

Example 2: a change request

    📝 Request: change the "This week" button to "Last 7 days"
    ⏱️ Claude's resolution time: 30 seconds
    📝 Result: code changed + duplicate button removed + formatting tidied

    Expected junior time: 10–30 minutes (finding the code, understanding it, editing)

Example 3: a complex feature (WebSocket remote control)

    📝 Feature: remote control system supporting 20+ commands
    ⏱️ Claude's implementation time: 2–3 hours
    📝 Included: WebSocket connection, state management, error handling, UI

    Expected junior time: 1–2 weeks (learning WebSocket, trial and error, debugging)

📊 Productivity comparison data

Daily code output (LOC/day)

    Junior (incl. learning):  50–150 LOC     ████
    Senior alone:            200–400 LOC     ████████
    Senior + Claude:          10,780 LOC     ████████████████████████████████████████████ (measured)

Daily file output (files/day)

    Junior (incl. learning):  1–3           ██
    Senior alone:             3–8           ████
    Senior + Claude:          33            ██████████████████████████ (measured)

Bug rate (bugs/1000 LOC)

    Junior: 15–25
    Senior alone: 5–10
    Senior + Claude: 3–7 (effect of real-time review)

Code review wait time

    2 juniors (peer review): 4–24 hours
    Senior + Claude: 0 minutes (instant feedback)

⚖️ Pros and cons

Two-junior setup

Pros

  • 👥 Builds teamwork experience
  • 📚 Growth opportunity for juniors
  • 🔄 Peer learning
  • 💼 Secures long-term staff

Cons

  • ⏰ Long development time
  • 💸 High total cost
  • 🐛 Higher bug rate
  • 📉 Technical debt accumulates
  • 🎯 Requires a senior mentor

Senior + Claude Code setup

Pros

  • ⚡ Fast development (4–5×)
  • 💰 Low total cost (about 1/5)
  • 🎯 Consistent code quality
  • 📖 Immediate documentation
  • 🔧 Immediate debugging
  • 🌙 Minimal overtime

Cons

  • 👤 Single point of failure (dependent on one person)
  • 🤖 Increasing dependence on AI
  • 📡 Requires an internet connection
  • 🔒 Concerns about exposing sensitive code externally
  • 👶 Fewer opportunities to develop juniors

🎯 Conclusion and recommendations

Recommendation by project type

Project characteristics Recommended approach
MVP/startup Senior + Claude ✅
Need to ship fast Senior + Claude ✅
Limited budget Senior + Claude ✅
Long-term maintenance Needs junior development
Team-building purposes Juniors + senior mentor
Security-sensitive projects In-house development recommended

Key insight

“Claude Code doesn’t replace junior developers; it’s a tool that maximizes a senior developer’s productivity by 60–90×.”

  1. Time = cost: 4 months → 1.5 days. That isn’t just fast, it’s ₩34M → ₩315,000 in cost reduction.
  2. Quality maintained: AI code review keeps patterns and quality consistent (Clean Architecture applied cleanly).
  3. Burnout prevention: automating repetitive work lets the developer focus on core logic.
  4. Verified numbers: this project isn’t an estimate — the data is verified against file creation timestamps.

📎 Appendix: project tech stack

    Frontend: Flutter 3.10+
    State Management: Riverpod 2.5
    Routing: GoRouter 14.2
    HTTP Client: Dio 5.4
    WebSocket: web_socket_channel 3.0
    Local Storage: SharedPreferences
    Charts: fl_chart 0.68
    Architecture: Clean Architecture (feature-based)

This material is based on the actual Mailbean store-owner app project (16,170 LOC, 50 files).

Updated: