Skip to main content
AI DevelopmentClaude CodeVeteran TechSoftware Development

How Claude Code Changed the Way We Build Software at Defendre Solutions

Steve Defendre
12 min read

I run a small veteran-owned software shop called Defendre Solutions. For most of our existence, the development process looked like this: I write the code, I review the code, I debug the code, I deploy the code. Occasionally I bring on a contractor for a specific project, but the overhead of onboarding someone, explaining the codebase, and reviewing their output often ate into the time savings.

About a year ago, I started using Claude Code. It has changed how I work in ways I did not expect, and in some ways it has not changed things at all. This post is an honest account of what the tool does, how it fits into a real production workflow, and where you still need a human making decisions.

What Claude Code Actually Is

Claude Code is a terminal-based AI development tool made by Anthropic. You install it globally via npm, run it in your project directory, and it reads your entire codebase. Not just the file you are working on. The whole thing. Your folder structure, your config files, your dependencies, your existing code patterns. It holds all of that in context while you talk to it.

You give it instructions in plain English. "Add a rate limiter to the API route that limits free users to 20 requests per day." It reads the relevant files, figures out where the change needs to go, writes the code, and applies the edits. You review the diff, accept or reject, and move on. It can work across multiple files in a single operation. If adding that rate limiter requires changes to the API route, the database utility file, and a new constant in your config, it handles all of that in one pass.

It also runs terminal commands. It can install packages, run your test suite, check build output, and use git. You can tell it to "run the tests and fix whatever fails" and it will loop through the cycle of running tests, reading errors, editing code, and re-running until the suite passes or it gets stuck.

Terminal window showing Claude Code reading a full project codebase and making multi-file edits
Claude Code works in your terminal, reading the full codebase before making changes.

How We Actually Use It at Defendre Solutions

Let me walk through some real examples from the Command platform, which is the product you are reading this blog on.

Building the BattleStation dashboard. Command has a financial dashboard called BattleStation with multiple views: transactions, budgets, reports, savings goals, and balance details. Building each view from scratch would take days of layout work, component creation, state management, and API wiring. With Claude Code, I described what each view needed to show and how it should behave. It generated the components, hooked them up to the data layer, and matched the existing design system. I spent my time reviewing the output, adjusting the UX, and testing edge cases. What would have been two weeks of heads-down coding compressed into about four days of directed work.

The blog system you are reading right now. This blog has over 20 posts, each stored as a TypeScript module with structured metadata. When I needed to add new posts, Claude Code could generate the file structure, match the existing export patterns, update the main blog index, and ensure all the imports were correct. That kind of repetitive, pattern-matching work is where it saves the most time. Not because the task is hard, but because it is tedious and error-prone when you do it manually at scale.

Debugging a Supabase rate limiter. We had an issue where anonymous users were hitting the AI chat endpoint without proper rate limiting. I described the problem to Claude Code, pointed it at the relevant files, and it traced the logic path, identified where the check was failing (a missing null guard on the user ID lookup), and patched it. That bug would have taken me 30 to 45 minutes to trace manually. It took about 5 minutes with Claude Code.

Before and After: What the Workflow Actually Looks Like

Before Claude Code, building a new feature went like this: Sketch the requirements. Create the files manually. Write boilerplate. Implement the logic. Write styles. Test in the browser. Fix bugs. Write tests if time allowed. Update related files. Commit. On a good day, a medium-complexity feature (new page with data fetching, state, and UI) took 6 to 8 hours.

With Claude Code, the same feature goes: Describe the requirements in plain English. Review the generated code. Adjust anything that does not match my intent. Run tests (or have Claude Code run them). Fix remaining issues. Commit. That same medium-complexity feature now takes 2 to 4 hours, with more of my time spent on review and less on typing.

The productivity gain is real, but it is not magic. I would estimate Claude Code saves me 40 to 60% of active development time on most tasks. The time savings come primarily from reduced boilerplate writing, faster debugging, and fewer context-switching moments where I have to look up syntax or API patterns. The tasks where it saves the least time are those requiring deep architectural decisions or nuanced UX judgment. Those still require a human brain.

Side-by-side comparison of traditional manual coding workflow versus Claude Code assisted development
The workflow shift: less time typing boilerplate, more time reviewing and directing.

Technical Capabilities Worth Knowing

Multi-file editing is probably the most impressive capability. When you make a change that affects several files (renaming a component, changing an API contract, refactoring a shared utility), Claude Code handles the cascade. It updates imports, fixes references, and adjusts types across the project. Doing this manually in a codebase with 50+ files is where mistakes creep in. Having a tool that sees the whole project at once eliminates an entire class of refactoring bugs.

Test writing is solid. You can point Claude Code at a function or component and tell it to write tests. It will generate reasonable test cases covering the happy path and common edge cases. The tests are not perfect. You will usually need to add or modify a few cases that reflect your specific business logic. But starting from 70% coverage instead of 0% is a significant time saver.

Debugging is where I get the most daily value. Pasting an error message and saying "fix this" works surprisingly well for common issues. For more complex bugs, I describe the expected behavior versus actual behavior, and Claude Code will trace through the code path and propose a fix. It gets it right about 75% of the time on the first attempt. When it does not, a follow-up clarification usually gets it there.

Code consistency is a benefit worth mentioning. Because Claude Code reads your existing patterns, it tends to write new code that matches your style. If you use named exports, it uses named exports. If your components follow a specific structure, new components follow the same structure. This is something even experienced contractors struggle with when joining a project.

Why This Matters for Small Veteran-Owned Businesses

Hiring a full-time developer costs $80,000 to $150,000 per year depending on skill level and location. A senior freelance contractor runs $100 to $200 per hour. For a small shop doing $200K to $500K in annual revenue, those numbers are hard to justify unless you have consistent high-volume work.

Claude Code costs $20 per month for the Pro plan, or $200 per month for the Max plan with higher usage limits. Even at the Max tier, that is $2,400 per year. Compare that to a contractor at $150/hour who works 20 hours on a project: $3,000 for a single engagement.

I am not saying Claude Code replaces a developer. It does not. But for a veteran-owned small business where the founder is also the lead developer, it acts as a highly capable assistant that is available 24/7, never needs onboarding, and already knows your codebase. It is the difference between being a solo developer and being a solo developer with a very fast, very knowledgeable junior engineer sitting next to you.

Learning Curve and Getting Started

If you are comfortable in a terminal and have a working Node.js installation, you can be up and running in about 10 minutes. Install it with npm install -g @anthropic-ai/claude-code, navigate to your project directory, and type claude. It will read your project and you can start giving it instructions.

The learning curve is less about the tool and more about learning how to give good instructions. Vague prompts get vague results. "Make the dashboard better" will produce mediocre output. "Add a bar chart to the reports page that shows monthly spending by category, using the Recharts library and the existing color palette from our design tokens" will produce something you can actually ship. The more specific you are about what you want, the better the output. This is a skill that improves with practice over a week or two.

I also recommend setting up a CLAUDE.md file in your project root. This is a markdown file where you describe your project structure, conventions, and preferences. Claude Code reads it on startup and uses it to stay aligned with your project's patterns. Think of it as an onboarding document for your AI assistant.

Limitations and When Human Judgment Still Matters

Claude Code is not infallible. Here is where it falls short.

It can write code that looks correct but has subtle logic errors, especially in complex business rules. It does not understand your users the way you do. It will build exactly what you describe, but if your description misses an edge case, the code will miss it too. You cannot outsource thinking to it.

It struggles with highly stateful, multi-step debugging sessions where the bug is not in the code but in the interaction between systems (a database timeout, a race condition, a deployment environment mismatch). For those problems, you still need to reason through the system yourself.

It occasionally generates code that is technically correct but architecturally wrong for your project. It might suggest a solution that works in isolation but creates tech debt when integrated with the rest of your system. This is why code review still matters. Every diff Claude Code produces should be read by a human before it gets committed.

And it does not replace the need to understand your own codebase. If you do not know what good code looks like, you cannot evaluate whether Claude Code's output is good. It is a force multiplier, not a replacement for skill.

Where We Go From Here

At Defendre Solutions, Claude Code is now part of the daily workflow. It handles the repetitive parts so I can focus on architecture, user experience, and the decisions that actually require experience and judgment. It has made it possible to build and maintain a platform like Command without a full development team, which is a real advantage for a small veteran-owned business operating on real-world margins.

If you are a veteran in tech or a veteran-owned business building software, this tool is worth trying. It will not write your business plan or make your product decisions. But it will make the hours you spend building things significantly more productive.

Questions about how we use it or how to get started? Reach out. Happy to walk through our setup.

Command platform codebase in a terminal with Claude Code generating a new feature component
A real development session: Claude Code generating a new component for the Command platform.

Share this article

Help others discover this content

Enjoyed this article?

Explore more insights on software engineering, system architecture, and operational excellence.