BEST PATH RESEARCH
  • HOME
  • ABOUT US
  • SERVICE
  • COMPANY
  • NEWS
  • BLOG
  • CONTACT
  • English
  • 日本語

  • English
  • 日本語

2025-09-22

  • By  BPR
  • 0 comments

My Claude Code Journey: The Developer Skills I Had to Learn

Today we have a guest post by Henry Onilude who was our Summer 2025 intern.

The Internship That Changed My Perspective

The role of a developer has undergone major changes in recent years. With the rise of AI coding assistants like GitHub Copilot, editors like Cursor, and the emergence of “vibe coding” where developers guide AI through natural language rather than writing line-by-line code, we’re witnessing a radical shift in how software gets built. During my internship at Best Path Research, I experienced this transformation firsthand through collaboration with Claude Code. But I learned something unexpected: AI doesn’t make you a better developer by being right; it makes you better by challenging you to think critically about everything it produces.

Three Barriers, One Challenge

I am Henry Onilude, a First Class Computer Science graduate currently pursuing my MSc in Web and Mobile Development Technologies at Northumbria University. I’ve always been passionate about creating accessible software solutions and focused on building my ability to deliver end-to-end solutions.
When the opportunity arose to join Best Path Research Co., Ltd. in Tokyo as a Web Application Developer for a summer internship, I was able to challenge myself in ways I never anticipated. Under Edward Whittaker’s mentorship, I developed a game with a monopoly-like structure, focusing on strategic thinking in the business world. The technical stack consisted of Django, Python, SQLite, and JavaScript. While these technologies were straightforward, integrating Claude Code as a development assistant introduced complexities that fundamentally challenged my understanding of modern software development practices.
The project presented three significant challenges: the game resources were in Japanese, which I could not speak; Django was a completely new framework for me; and I had never created a game before. Despite these barriers, I leveraged my core Computer Science knowledge to understand the underlying patterns and architectures needed for the project.

When AI Overengineers Everything

My first approach involved using Claude Code to convert the Japanese game resources and set up the Django framework. The AI’s ability to generate code for game mechanics and UI was impressive, making it easier to understand different approaches to game development. However, I quickly discovered that Claude Code would often overcomplicate simple tasks, generating elaborate solutions when straightforward implementations would suffice. Without clear and precise instructions, Claude Code would do the opposite of what was requested, demonstrating that every interaction needed careful supervision to ensure it stayed on task.

First Principles Thinking

This experience taught me to apply first principles thinking to AI collaboration. Instead of asking Claude to implement complex game features, I learned to break problems down to their fundamental components. When I requested ‘implement property purchase,’ Claude generated elaborate abstraction layers. However, when I broke it down to its first principles, validating player funds, checking property availability, updating ownership, modifying player balance, and triggering game events, the generated code became focused and efficient. This approach forced me to understand the core problem before seeking AI assistance. By thinking in first principles, I could guide Claude to produce exactly what was needed, nothing more, nothing less.

Specificity Is Everything: Precision Communication

I realised that prompt engineering had become a crucial skill. The way AI models interpret information differs fundamentally from human understanding, requiring very intentional and precise communication. When requesting help with implementing game mechanics, the AI-provided code often overlooked critical edge cases specific to my business logic. Utilising my software engineering skills, I identified these gaps and developed custom validation logic to accurately handle edge cases.
The breakthrough came when I understood that effective AI collaboration demands precise technical communication and comprehensive context provision. Working with Claude Code, an advanced form of rubber duck debugging, where I explained problems clearly enough for the AI to understand, often led me to solve them myself before Claude even generated code. The difference was that this rubber duck could write implementations based on my clarifications, thereby accelerating development once I had articulated the solution correctly.
By providing detailed specifications, including existing code structures, business rules, edge cases, and expected behaviours, Claude Code began generating solutions that integrated seamlessly with the codebase. I architected the overall system design and data models myself, then used Claude Code to accelerate the implementation of specific components. This approach significantly improved productivity while maintaining code quality.

Python Testing Framework

One of the most challenging aspects of the project was ensuring the game worked flawlessly across different browsers, devices, and edge cases. Following my supervisor’s suggestion, I developed a web AI agent that evolved into a sophisticated 27-module Python testing framework. This framework showcased both my technical skills and how Claude Code could amplify my capabilities when properly directed.
I designed the testing architecture myself, implementing object-oriented patterns and creating the core testing engine structure. Instead of simple delays, I implemented intelligent wait strategies using WebDriverWait to handle AJAX-loaded content. This was critical because the game’s investment forms loaded dynamically via JavaScript, and Selenium needed to wait for and interact with these elements while ensuring cross-browser compatibility.
The most complex aspect involved implementing deterministic behaviour in an inherently random game environment. I personally designed and coded JSON strategy configuration files that defined precise AI personality parameters, including production ranges, price thresholds, investment probabilities, and risk tolerance levels.

40 Hours Saved Per Testing Cycle

This Python testing framework automated what would have required dozens of hours of manual work while ensuring consistent results across all test scenarios. While Claude Code accelerated my Python learning curve, the architectural decisions, algorithm design, debugging process, and technical implementation were all products of my own programming skills and deep understanding of the game requirements.

Never Trust, Always Verify: Defensive Programming

Security testing became a crucial part of the development process. I adopted a defensive programming mindset throughout this phase, treating every input as potentially malicious and every Claude-generated validation as potentially incomplete. While Django’s ORM properly prevented SQL injection attempts and provided basic XSS protection, defensive programming revealed business logic vulnerabilities that framework protections couldn’t catch.
For instance, I discovered that our investment system failed to validate negative amounts, allowing players to manipulate their balance through mathematical exploits. This defensive approach, which involves never trusting input and continuously validating output, proved essential when working with AI-generated code that might not anticipate malicious use cases. Based on my findings, I designed and implemented comprehensive solutions, including strict server-side validation.

The Most Valuable Skill I Learned

The experience highlighted that prompt engineering has emerged as a critical technical competency comparable to traditional programming skills. Effectively communicating with AI systems requires the ability to break down complex problems into precise specifications, provide appropriate context without overwhelming the system, and guide it toward functional solutions while avoiding irrelevant solutions. This skill set represents a new category of professional skills that will become increasingly important in software development.

Why Developers Still Matter

This internship demonstrated that AI-assisted development represents an enhancement of human capabilities rather than a replacement. Critical thinking, system design, and architectural decisions remain ultimately the developer’s responsibility. Claude Code served as a powerful tool for rapid prototyping and extensive testing, but every significant decision required my programming knowledge and technical judgment. The technology enabled individual developers to achieve what previously required entire teams, but only when paired with rigorous verification and thoughtful oversight.

Preparing for What's Coming

Based on my experience with these AI tools during my internship, I believe there will be a strong demand for human-AI collaboration, where developers focus on high-level design, critical thinking, and creative problem-solving. At the same time, AI handles routine implementation and provides rapid exploration of solution spaces. Success in this environment requires treating AI as a powerful but not always right tool that demands constant verification, clear communication, and careful project control. My experience with AI tools proved that they’re only as useful as the developer using them. They work fast but make mistakes; your knowledge and curiosity are what make the difference between code that works and code that just looks like it works.

Acknowledgments

I want to thank Edward Whittaker for this insightful and exciting internship opportunity. The valuable experience I gained through his mentorship and guidance, especially with the various resources he provided, has been transformative.
Tags:
blog_

Search

Recent News

  • AI-Assisted Penetration Testing
  • Publication of the paper “Large Language Models for Named Entity Extraction and Spelling Correction”
  • BEST PATH RESEARCH Exhibits at Intel Connection 2023
  • Navit K.K. publishes an Interview with Best Path Research in “Sohos-Style”
  • Publication of the paper “Automatic Detection and Rectification of Paper Receipts on Smartphones”

Recent Blog

  • My Claude Code Journey: The Developer Skills I Had to Learn
  • Japanese Receipt OCR and Named-entity Extraction: Low-cost Inference with Multiple Models using AWS SageMaker Serverless and Triton Inference Server
  • Privacy-preserving Image Search using Natural Language on iOS

BEST PATH RESEARCH © 2023 All Rights Reserved