The implementation plan had passed 3,000 lines. Claude Code was asking me to make architecture decisions and I was struggling to understand the options. Eventually, I stopped the process. I have 6+ years of professional Android development experience. This time, I was working on a PDF editing engine with Next.js, React and TypeScript for HonestPDF which is my brother’s PDF tools website. He had already built an editor through vibe coding and I had been trying to improve it. Even small changes were becoming painful. The code was scattered, so understanding it well enough to guide the agents was difficult. They could spend hours on a change and burn a lot of tokens. Once, I left Claude Code running overnight on an improvement. Around 12 hours later, I checked again and the agents were still working. When they finally finished, the code had become more complicated and some cases were broken again. I decided to build a separate engine from scratch. Then I gave myself a huge goal: quickly recreate the existing editor’s features with cleaner code and a scalable architecture. I was also comparing features with editors like Adobe and SmallPDF. I wanted a really good engine immediately. When we reached the architecture discussions, I got overwhelmed. I don’t remember the exact questions now, but many were about edge cases and fallback mechanisms. Claude’s explanations were difficult for me to follow and the plan kept growing. I expected myself to handle system design. I was an experienced developer, so struggling with these decisions felt embarrassing. I took that confusion as evidence that I wasn’t good enough and that I couldn’t build products quickly even with AI helping me. My confidence dropped badly. I was judging my overall engineering ability through a project in a stack I was still learning, with a scope I had made too large. Eventually, I abandoned the new structure and started again with a much smaller task: text detection. I was willing to accept an ugly first implementation if it worked and I could understand it. I wanted a codebase small enough to control, then I would build on it in small steps. I added rules to CLAUDE.md: No speculative abstractions. No features outside the current task. Prefer boring, simple implementations. Preserve working behavior. Keep specs and plans short and easy for humans to understand. I continued with spec-driven development and TDD. I also required type checking, linting and unit tests after a series of changes. Each task had a smaller scope, so I had less to understand and verify at once. Building the foundation this way felt much more under my control. With the old editor, I was trying to direct agents through a codebase I couldn’t follow. With the new engine, I understood the structure as it grew. The delivery still had problems. After packaging it, I noticed some features from the existing editor were missing. I finished those before the handoff, and we put the new engine into production. After that, the share of 5-star ratings submitted for the Edit PDF tool increased. That was when I felt that my software skills still mattered. I had used Claude Code throughout both approaches, but my decisions about scope and how we built the engine had changed. Seeing people respond better to the editor helped me recognise my contribution. When Claude writes much of the code, how do you judge your own engineering contribution? Has that changed how confident you feel about your skills? submitted by /u/oguzhan431
Originally posted by u/oguzhan431 on r/ClaudeCode
