Part 3: Building PhysicianTechnologist - Claude Code Acceleration
The reality of AI pair programming: 10x speed with occasional detours into complexity. How Claude Code transformed development workflow.

Dr. Chad Okay
NHS Resident Doctor & Physician-Technologist
The Claude Code Discovery: From Scepticism to Evangelism
My journey with Claude Code began with healthy scepticism. Another AI tool promising to revolutionise development? I'd tried GitHub Copilot, ChatGPT, and various IDE plugins. They were helpful, but hardly revolutionary.
Then I asked Claude Code to "create a blog post management system with draft/publish workflow" and watched it generate complete CRUD API endpoints, TypeScript interfaces, database migrations, React components with proper state management, input validation schemas, error handling, loading states, and optimistic updates.
All in about 3 minutes. And it worked. First try.
The Development Workflow That Emerged
The CLAUDE.md File: Your AI's Memory
The game-changer was discovering the CLAUDE.md pattern - a single file that becomes Claude's understanding of your project. It contains your project overview, coding standards, architecture principles, common issues and solutions. This file became the project's living documentation and Claude's context. Every session starts with Claude reading this file, instantly understanding project conventions, past decisions, and current issues.
It's like having detailed handover notes that actually get read.
The Typical Development Session
Here's how a real feature implementation went. I asked for a newsletter system that automatically sends new posts to subscribers. Claude read the CLAUDE.md file, then created a newsletter_subscribers table with proper UK spelling, added a post_notifications queue table, implemented database triggers for automatic queuing, created the API endpoint with our standard response format, added admin UI for managing subscribers, implemented rate limiting and retry logic, created unsubscribe tokens with JWT, added GDPR compliance features, and documented everything back in CLAUDE.md.
"That's... comprehensive. But I have no subscribers," I pointed out.
"The infrastructure is ready for when you do," Claude replied.
Can't argue with that logic.
The Speed Multiplication Effect
Traditional development of the newsletter feature would have taken 2-3 days. With Claude Code, it took 45 minutes. But here's the honest breakdown: initial implementation was 15 minutes, adding "proper" error handling was 10 minutes, implementing the queue system was another 10, adding admin dashboard was 10 more. Then debugging why it wasn't working took 2 hours. Realising we forgot to enable the trigger took 5 seconds. Face-palming took another minute.
The Magical Moments
The Migration System That Wrote Itself
I mentioned we needed to track schema versions. Claude implemented an entire migration system with rollback capability. When I asked if it could be simpler, Claude responded: "This is the simple version. The complex version includes automatic conflict resolution, dependency graphs, and parallel execution."
Fair enough.
The Bug That Fixed Itself
The posts weren't showing on production. Claude immediately diagnosed three issues: SSR was disabled in pages/index.tsx, date serialisation was broken in getStaticProps, and there was an author field mismatch (the database had 'name' but the code expected 'full_name'). Claude fixed bugs I didn't even know existed. It was like having a code review from someone who actually read the entire codebase.
The Refactor That Actually Improved Things
The API code was getting messy. Claude refactored 22 endpoints in one go, extracting common patterns, adding consistent error handling, implementing a middleware pipeline, maintaining backward compatibility, updating all imports, and fixing 4 unrelated bugs found during refactoring.
This is the refactoring you dream about but never have time for.
The Frustrating Realities
The Over-Abstraction Trap
I wanted a simple email function. What Claude built was an enterprise-grade EmailService class with dependency injection, retry logic, transaction support, and logging decorators. Sometimes you just want to send an email, not architect a messaging platform.
The Context Window Shuffle
Working with large files became a dance. Claude couldn't see the entire file, so I'd copy lines 500-700, then lines 300-500 for context, then the type definitions. It was like trying to explain a movie plot to someone who can only watch 30 seconds at a time.
The Inconsistency Surprises
Monday's Claude wrote clean, simple, functional code. Wednesday's Claude created enterprise-grade abstractions for the same problem. It's like pair programming with someone who has multiple personalities, each with different opinions about software architecture.
The Acceleration Techniques That Worked
Prompt Engineering for Consistency
Bad prompts like "Add search functionality" led to chaos. Good prompts specified everything: "Add search functionality following our existing patterns - use our standard APIResponse format, add to pages/api/ not app directory, use withAdminAuth middleware for protected routes, include Zod validation, follow UK spelling conventions."
The more specific, the better the result.
The TODO List Pattern
Claude Code's TodoWrite tool became essential for maintaining context across long sessions. It wasn't just organisation - it helped Claude remember what we were building and why.
The MCP Integration
Direct database access through MCP Supabase changed everything. Instead of guessing about data structure, Claude could query the actual database, check what's published, verify schema, and test queries directly. No more "I think the field is called..."
The 3 AM Debugging Session That Changed Everything
It was 3 AM. The production site was showing a white screen. The error: "Cannot read property 'split' of undefined".
Traditional debugging would have taken hours. With Claude, it took 2 minutes. Claude immediately identified the issue: "Based on the error and the codebase, this is likely in the author name parsing. In three files, you're calling author.full_name.split(' ') but the database field is 'name', not 'full_name'."
Fixed in 2 minutes. This moment crystallised the value: Claude Code doesn't just write code - it understands your entire system.
The Productivity Metrics
I wrote about 2,000 lines of code. Claude wrote about 18,000. We kept about 12,000. Originally planned 5 features, actually built 23, actually needed 8, but glad I have 15.
Database schema design was 80% faster. API implementation was 90% faster. UI components were 70% faster. Debugging was 60% faster. Documentation actually got written, which is 100% more than usual.
The Workflow Anti-Patterns to Avoid
Don't blindly accept every suggestion - Claude sometimes creates solutions for problems that don't exist. Don't switch between tasks constantly - it confuses Claude. Finish one feature before starting another. And know when to stop - Claude will keep improving code forever if you let it.
Reflections on AI-Accelerated Development
Claude Code excels at boilerplate generation, pattern recognition, error detection, documentation, and refactoring. You'll never write another CRUD endpoint manually. It maintains consistency across codebases and spots bugs while adding features.
What still needs human judgment? Architecture decisions about when to stop abstracting. Feature prioritisation - what actually needs building. Performance optimisation - Claude loves unnecessary complexity. User experience - AI doesn't understand human frustration. Business logic - the "why" behind the "what."
The Unexpected Benefit: Learning
Claude Code became my mentor. Every generated solution taught me something: new TypeScript patterns I hadn't seen, PostgreSQL features I didn't know existed, React hooks I'd never used, security considerations I'd overlooked.
The Development Speed Paradox
I built features 10x faster, but the project took the same time. Why? Because I built 10x more features. The acceleration didn't reduce development time - it expanded scope. Every saved hour became an opportunity for "just one more feature."
It's like giving a shopaholic a faster credit card.
Next in Part 4: The deployment saga, writing the first blog posts, the reality of maintaining an over-engineered blog, and the roadmap for simplification. Plus, what I'd do differently if starting over today.
Navigate This Series
← Previous: Part 2: Architecture Decisions and Database Design
→ Next: Part 4: Deployment, First Posts, and Future Vision
The Complete Series:
- •Part 1: Discovery and Initial Learning
- •Part 2: Architecture Decisions and Database Design
- •Part 3: Claude Code Acceleration and Development (You are here)
- •Part 4: Deployment, First Posts, and Future Vision
Share this article

Dr. Chad Okay
I am a London‑based NHS Resident Doctor with 8+ years' experience in primary care, emergency and intensive care medicine. I'm developing an AI‑native wearable to tackle metabolic disease. I combine bedside insight with end‑to‑end tech skills, from sensor integration to data visualisation, to deliver practical tools that extend healthy years.