AI Made Me a Faster Developer. It Also Made Me a Worse Engineer.

Why I’m reclaiming my judgment after 13 years in tech.
Last year, I felt unstoppable. Not because I became a better engineer overnight… but because I had AI sitting next to me like a superpower.
Need a React Native component? I asked AI.
Need Firebase rules? I asked AI.
Need architecture ideas? I asked AI.
Need a full feature implementation plan? AI again.
Everything was fast. The kind of fast that makes you feel like you’re winning. The kind of fast that makes you believe this is the future.
And then… something happened.
I started noticing a new pattern in my work. I was shipping faster, yes. But I was thinking less. I was copying more, but understanding less. I was solving tasks, but I was building fewer mental models.
The day I faced a real production issue — the kind you can’t “prompt your way out of”, I realized something uncomfortable: AI made me faster. But it didn’t make me sharper.
This is not an anti-AI rant.
Let me make that clear. I’m a tech leader. I’ve spent 13+ years building mobile applications and websites.
But the way we’re using AI today is slowly eroding how developers learn, how we decide, and how we take ownership.
AI can generate code, but it cannot generate responsibility.
The day I knew I had to change was during a normal production release. Something felt “off.” It wasn’t crashing, but it was wrong. The kind of wrong that becomes expensive six months later.
I opened my AI and started prompting. It gave me answers. It gave me clean, structured, convincing output. It gave me confidence.
But the truth was: I wasn’t debugging. I was guessing… with prettier formatting.
Here are the areas where I have strictly reduced AI usage to reclaim my engineering intuition.
Architecture is a Bet, Not a Folder Structure
If you ask AI for the “best architecture” for a React Native app, it will confidently recommend Clean Architecture, MVVM, or Repository patterns. It looks senior.
But architecture isn’t about where you put your files. It’s a long-term bet on:
Team maturity and size.
Release frequency and operational risk.
Future maintenance costs.
AI gives answers, but it rarely asks the questions that matter: Is this an internal MVP or a B2C app for 10 million users? Does it need to be offline-first?
My new rule: I read deep engineering write-ups and real system stories to make the decision. I use AI to scaffold the folders after the human decision is made.
Performance Debugging
Performance issues are rarely solved by “tips.” They are solved by measurement.
When a React Native app lags, AI will suggest: “Use memo, use FlatList, optimize images.” But that’s generic advice. Real performance engineering is about finding the bottleneck using Flipper or Profiling tools.
For example, a list item might look harmless:
const Item = ({ item }) => (
<View>
<Text>{item.name}</Text>
<Text>{item.description}</Text>
</View>
);But multiply this by 200 items, and you need React.memo and useCallback for the renderItem. AI can suggest the fix, but only after you’ve done the hard work of identifying the cause.
Security Rules
Security is a promise, and AI is too optimistic by default. A common AI-generated firebase rule looks like this:
match /users/{userId} {
allow read, write: if request.auth.uid == userId;
}It looks right. But in production, your biggest enemy is the edge case. Users should never be able to update fields like role, planType, or isAdmin.
The production-safe reality requires nuance:
match /users/{userId} {
allow read: if request.auth.uid == userId;
allow update: if request.auth.uid == userId
&& !( "role" in request.resource.data.diff(resource.data).changedKeys() )
&& !( "isAdmin" in request.resource.data.diff(resource.data).changedKeys() );
allow delete: if false;
}AI doesn’t lose sleep over a security loophole. I do. So I no longer use AI as the source of truth, only as a syntax validator.
Release and Risk Management
Shipping code is easy. Controlling risk is hard. Using Firebase Remote Config is still a superpower in 2026 for this reason:
const rolloutEnabled = remoteConfig.getBoolean("new_home_v2_enabled");
return rolloutEnabled ? <HomeV2 /> : <HomeV1 />;The code is a one-liner, but the engineering is the rollout strategy: How fast do we ramp to 20%? What metrics decide a rollback? AI can’t take responsibility when a rollout harms real users. Risk management is not something you should outsource to a prompt.
The Shift: I Started Reading Again
I didn’t stop using AI because I hate it; I stopped because I love engineering.
AI gives you answers quickly, but it doesn’t build foundations. Reading documentation, post-mortems, and engineering blogs builds mental models. And mental models are what save you when production hits back.
I still use AI for:
Scaffolding boilerplate.
Generating test templates.
Summarizing long documentation.
Refactoring repetitive code.
In these areas, AI is a power tool. But in areas where judgment matters, I want my brain fully present.
Final Thought
If you’re a junior dev, AI is a cheat code.
If you’re a senior dev, AI is a power tool.
But no matter your level: Don’t let prompts replace your engineering judgment. Because one day, your hardest production problem won’t need a better prompt. It will need your fundamentals, your experience, and your mindset.