The Dev Log › AI & Machine Learning
AI Coding Assistants: How I Use Them Without Losing My Edge
By Jezer Niel Blanca, Full Stack Developer ·
·
4 min read
AI assistants make me faster, but only because I treat them like a sharp junior pair programmer, not an autopilot.
AI coding assistants are now part of my daily workflow. They help me move faster, explore unfamiliar APIs, and skip boilerplate. But I've also seen how easy it is to lean on them so heavily that your own judgment starts to fade. Here's how I use them while staying the one in charge.
The Mental Model: A Fast Junior Pair
I treat an AI assistant like a very fast junior developer who has read a lot of documentation but has never seen my codebase. It's great at producing a first draft. It's not responsible for whether that draft is correct. I am.
The assistant writes the code. You own the code. Those are different jobs.
Where Assistants Shine
These are the tasks where I happily hand over the keyboard:
- Boilerplate: form requests, factories, migrations, test scaffolding
- Translation: converting a SQL query to Eloquent, or a jQuery snippet to Vue
- Explaining unfamiliar code: "walk me through what this regex does"
- Test cases: brainstorming edge cases I might have missed
- Refactoring suggestions: "how could this method be simplified?"
For example, asking for a factory state is a perfect small, verifiable task:
public function overdue(): static
{
return $this->state(fn (array $attributes) => [
'due_at' => now()->subDays(fake()->numberBetween(1, 30)),
'paid_at' => null,
]);
}
I can read that in five seconds and know whether it's right.
Where I Stay Hands-On
Some work I deliberately keep for myself:
- Architecture and data modeling. These decisions outlive any single feature.
- Security-sensitive code. Authorization, payments, and anything handling personal data.
- Debugging production issues. The assistant can suggest hypotheses, but I verify them against real logs.
- Anything I don't understand yet. If I can't explain the code, I don't merge it.
Prompting Like a Developer
Vague prompts get vague code. I give assistants the same context I'd give a new teammate:
Role: You are a senior Laravel 12 developer.
Context: This app uses Inertia v2 with Vue 3 and Pest 4.
Task: Write a Form Request for updating a project.
Constraints: title required, max 120 chars; budget optional integer >= 0.
Output: only the PHP class, following array-based rules.
Stating versions matters. Many bad suggestions come from the assistant assuming an older framework version.
Verify Everything
My rule is simple: nothing generated gets merged without passing through the same checks as my own code.
php artisan test --compact
vendor/bin/pint --dirty
npm run build
If the assistant wrote a function, I want a test that proves it works. Often I ask the assistant to write that test too, and then I read the test critically, because a test that asserts the wrong thing is worse than no test.
Watch for the Common Failure Modes
- Invented APIs. Methods that sound plausible but don't exist. Check the docs.
- Outdated patterns. Old syntax from a previous framework version.
- Silent scope creep. Extra changes you didn't ask for buried in a large diff.
- Confident wrongness. The tone of an answer says nothing about its accuracy.
Keeping My Edge Sharp
Using AI well is a skill, but so is programming without it. A few habits keep my fundamentals strong:
- I still read documentation directly, especially release notes.
- I solve small problems by hand first when I'm learning something new.
- I review generated diffs line by line instead of skimming.
- I ask "why" when I don't understand a suggestion, and I don't accept it until I do.
The Payoff
Used this way, AI assistants give me more time for the parts of the job that matter most: understanding the problem, designing a clean solution, and talking with the people who'll use it.
Curious how AI could speed up your team's workflow or power a feature in your product? Let's talk.
Tags: AI, Productivity, Workflow, Career