Learn/Developer & Coder/AI in Your Dev Workflow
Developer & Coder

AI in Your Dev Workflow

Claude Code, GitHub Copilot, Cursor, Windsurf — how to actually use AI to build software faster.

The Landscape Has Changed Fast

Two years ago, AI in your IDE meant Copilot autocomplete. Today you have AI-native editors, agentic coding tools that can run commands and edit files, and direct model access that's good enough for architectural conversations. The tools are genuinely useful — but they're useful in specific ways, and knowing which tool fits which task saves a lot of frustration.

GitHub Copilot

Copilot is the incumbent. It lives in your editor as an extension (VS Code, JetBrains, Neovim) and offers inline completions as you type.

Where it shines: - Boilerplate that fits a clear pattern — React components, test scaffolding, CRUD routes - Filling out repetitive code you'd write the same way every time - Completing function bodies when the function signature and a docstring make the intent obvious - Suggesting the next line when you're in a well-trodden pattern

Getting the best out of it: - Write a good function name and a docstring first. Copilot reads your cursor context, and a clear name + comment dramatically improves suggestions. - Use Copilot Chat (now integrated) for explaining unfamiliar code — select a block, ask what it does. - Accept completions selectively. Copilot is confident even when it's wrong.

Where it falls short: - Cross-file reasoning. Copilot's context window is limited, and it often doesn't know about types or functions defined in other files unless they're imported. - Novel architecture. It defaults to common patterns, which is wrong when you need something unusual. - Security-sensitive code. It will suggest known-vulnerable patterns if that's what's statistically common.

Cursor and Windsurf

Cursor and Windsurf are AI-native editors built on VS Code's codebase. They go beyond inline completion — they have a chat pane that can read your entire codebase, edit multiple files at once, and understand project structure.

The key difference from Copilot: they can work with full repository context. Ask Cursor to refactor a pattern across 20 files, and it can actually do it. Ask it to add a new feature that touches the database model, the API layer, and the frontend type definitions — it can draft all three.

Cursor-specific features: - @codebase references — ask questions about your full repo - Composer mode — multi-file edits in one flow - Model selection — you can point it at Claude, GPT-4o, or others

Windsurf (by Codeium) is a close competitor with similar capabilities. The differences are mostly in UX and which underlying models they use.

When to use these over Copilot: When your task spans multiple files, when you need the model to understand your project's conventions, or when you want to have an extended back-and-forth about a design decision with full codebase context.

Claude Code

Claude Code is Anthropic's agentic coding tool, running in your terminal rather than your editor. It's a different paradigm: instead of completing what you're typing, you give it a task and it works toward completing it — reading files, writing code, running commands, checking its own output.

What makes it different: - It can run terminal commands and read the results - It has a genuine loop: plan → act → observe → adjust - It works well for tasks that require understanding a full codebase before touching it - It's designed for multi-step tasks: "add pagination to the users endpoint, write tests, and make sure existing tests still pass"

Claude Code is better for medium-to-large tasks where you want something autonomous. Copilot and Cursor are better for in-flow completion and quick edits.

Using Models Directly (ChatGPT, Claude, Gemini)

The chat interfaces are underrated for coding. They're the right tool when: - You want to talk through an architecture decision before writing code - You're debugging something genuinely puzzling and need to walk through it - You want to understand an unfamiliar library or pattern - You need to generate a self-contained module and can paste it in yourself

Paste the relevant code, describe the problem clearly, and you get a focused answer without the IDE tooling getting in the way.

What AI Coding Tools Are Actually Good At

No hedging here — these are the genuine strengths:

  • Boilerplate: Any code that fits a well-established pattern. REST endpoints, data models, test fixtures, config files.
  • Tests: Given a function, generating unit tests is something current models do well.
  • Refactoring: Extract method, rename variable, convert to async — mechanical transformations.
  • Explaining unfamiliar code: Paste a gnarly regex or a dense SQL query and ask what it does.
  • Translation: Converting code between languages or frameworks where the logic is clear.
  • Documentation: Generating docstrings, README sections, inline comments.

What AI Coding Tools Are Bad At

Be honest with yourself about these:

  • Complex architecture decisions: The model doesn't know your constraints, your team's strengths, your scale requirements. It'll give you a pattern, not a decision.
  • Understanding your full system: Even with codebase context, a model can't know your deployment environment, your business logic nuances, or the six-month-old incident that made you do it this weird way.
  • Long-horizon consistency: On a task spanning hours and many files, models drift. They'll forget conventions they established earlier.
  • Security review: Models know common vulnerabilities but miss novel ones and context-specific ones.

How to Review AI-Generated Code

Never merge AI-generated code you haven't read. Concretely:

  1. 1.Read every line. This sounds obvious. Developers skip it.
  2. 2.Check error handling. AI-generated code frequently swallows exceptions or has happy-path-only logic.
  3. 3.Check security-sensitive paths. User input handling, authentication, permissions, file paths.
  4. 4.Run the tests. If the AI wrote tests, check that they actually assert meaningful things and aren't just checking that the function returns something truthy.
  5. 5.Ask the model to critique its own output. "What are the weaknesses or edge cases in this code?" often surfaces real issues.

The goal is to use AI coding tools to move faster, not to stop thinking. The developers getting the most value are the ones who review AI output as carefully as a pull request from a capable but sometimes overconfident colleague.

Have a follow-up question about this topic?

Ask AI