DEV Community

Cover image for AI Said I'm Inefficient. A Recruiter Said Not to Listen. I Ended Up On The Other Side of the Table.
xulingfeng
xulingfeng

Posted on

AI Said I'm Inefficient. A Recruiter Said Not to Listen. I Ended Up On The Other Side of the Table.

This is a story about an engineer labeled "inefficient" — the system said he wasn't good enough, management only looked at the system, and he spent two months proving who was wrong. Then he ended up on the client-side review panel.

Based on a real experience shared by a community member. If you've got a story like this — reach out. The next one could be yours.


Act 1 · The Announcement

Wednesday, 10:14 AM.

I was wrestling with a stored procedure written seven years ago. The wiki page — left by someone who'd already left — had exactly one line of documentation:

"The logic of this trigger? Read the code. I forgot."

Slack pinged. Company-wide notification:

[System Notification] AI Estimation Engine v1.0 is now live
All development tasks must be submitted through the AI Estimation module. Estimated hours will be factored into performance reviews.

The channel exploded.

Mike (Frontend): "I just tried it. 'Update login page styling' — estimated 0.5 days. Remember the one I went back and forth with the PM for three days? It thinks that's an afternoon."

Dave (Backend): "My data migration — 'Migrate database, integrate two external systems.' AI says 2 days. Right."

Alex: "Who's updating their LinkedIn? 🙋"

Twelve hands went up.

I didn't raise mine. I opened the system and entered a task:

Payment module — Fix historical data reconciliation (7-year-old stored procedure, original developer no longer with the company, incomplete documentation)

The system returned:

# AI Estimation Engine - API Response
# POST /api/v1/estimate
# Request:
{
  "task": "Fix historical data reconciliation",
  "repo": "payment-module",
  "context": "7-year-old stored procedure, no docs, dev left"
}
# Response:
{
  "estimated_days": 1.5,
  "confidence": "high",
  "model": "estimate-engine-v1",
  "training_data_coverage": "95%"
}
Enter fullscreen mode Exit fullscreen mode

I stared at the screen for five seconds. Are you kidding me?

I didn't reply in the channel. I created a private repo called estimation-log and wrote the first entry:

2026-03-12 | P-4103 | Payment module | AI: 1.5d | Actual: — | Tracking
Enter fullscreen mode Exit fullscreen mode

Act 2 · The Label

End of the month. The performance email landed.

Subject: Your Monthly Efficiency Score — Needs Attention

Your AI estimation efficiency score: 39%
Team average: 84%
⚠️ Below acceptable threshold.

I stared at that number for a long time. Lowest in the group.

When I sat down with my manager for the review, I laid out my records.

"Look at the tasks I'm getting — payment module, data migrations, legacy system integration. The codebases are from 2019. Original developers are gone. Unit test coverage is under 5%. The AI was trained on projects that look nothing like this."

My manager didn't look at my records.

"The system says you're not meeting the bar."

I said the system doesn't account for legacy complexity. He said the system is 95% accurate.

I said: "That's 95% on projects with fresh code, test coverage, and documentation. None of my work qualifies."

He said: "The company standard is what the system says. That's what we go by."

I didn't argue. I went back to my desk and added another line to estimation-log:

2026-03-26 | P-4162 | Payment module hotfix | AI: 1d | Actual: 5d | They only look at the numbers, so I'm keeping them
Enter fullscreen mode Exit fullscreen mode

After that, every time the AI estimate didn't match reality, I committed a record. It wasn't defiance — I wanted to know how often it was right, how often it was wrong, and where it broke.

Somewhere along the way, it became a habit. One night I counted — 67 entries. Over two months.


Act 3 · The Recruiter

A Friday night. 9:30 PM.

I was fixing a data migration the AI said would take "2 hours." Day three. The problem was in an ETL script written by someone who'd left six years ago. The original comment read:

# Why is this here? — I don't know. It works.
# — by Frank, 2020
Enter fullscreen mode Exit fullscreen mode

My phone buzzed. LinkedIn.

Lydia (Recruiter):
"I came across your background. A client is looking for a tech lead with legacy system migration experience. Three people independently recommended you."

I replied:

"You might have the wrong person — I was just rated the least efficient engineer on my team."

Lydia sent a screenshot. My GitHub: 13 repos, 3 merged PRs into main, an open-source project with 400+ stars.

Lydia:
"That payment module fix you pushed — two years in production, zero P0 incidents. The least efficient person at the company delivered something that stable?"

I stared at that line for thirty seconds.

She was right. The system wasn't measuring me wrong. It was measuring the wrong thing.

I closed the ETL terminal and opened estimation-log.

Top entries:

2026-05-30 | P-4817 | Compliance logging | AI: 1wk | Actual: — | Project hasn't started yet
2026-05-23 | P-4782 | Cross-team data bridge | AI: 5d | Actual: 23d | +360%
2026-05-16 | P-4749 | Payment module v2 fix | AI: 2d | Actual: 9d | AI says it's my fault
Enter fullscreen mode Exit fullscreen mode

67 entries. Over two months of data. In a repo nobody knew existed.

I typed three words back to Lydia:

"When do they want to meet?"


Act 4 · The New World

The client CEO interviewed me personally.

CEO: "We've got a batch of vendors up for Q3 review. Need someone who can tell whether their numbers are real or painted on. They all say three months delivery — you tell me which ones can and which ones can't."

Me: "I can do that."

He didn't ask about my old company. I didn't bring it up.

The offer came three days later. Salary doubled. New title: Client-Side Technical Review Lead.

First day, I opened my email. First message:

Q3 Vendor Review. Next Wednesday.
Attachment: Vendor List.

I clicked. First row — my old company. Lead: my former manager. Bid amount: $4.6M.

I didn't close the window. Opened a terminal:

# curl -s https://git.oldcompany.com/api/v3/repos/estimation/readme
#
# Returns 200.
Enter fullscreen mode Exit fullscreen mode

Public read access — left open since the day they deployed the AI. Never closed it.

I shut the terminal. Closed the email. I didn't need to bring those 67 entries with me. They'd been sitting there the whole time, waiting for someone to look.


Act 5 · The Review

The review room. A row of people. Procurement, Legal, Engineering, CEO.

My old manager stood at the podium. The slides were polished.

"We operate a next-generation AI-driven development pipeline. Estimation accuracy: 95%. Delivery stability: top 10% in the industry."

I was sitting in the third row. Almost laughed out loud.

When Q&A came, Procurement looked around the table.

"Any questions from the technical team?"

I picked up the microphone.

"I have one."

My manager recognized me. His hand paused on the clicker.

"You said 95% accuracy. Which 95%?"

He adjusted his tie. "Our internal validation data. Over 200 projects evaluated. Deviation rate under 5%."

I didn't stand up. I stayed in my chair.

"Let me rephrase. What's your AI's estimation deviation rate on compliance projects?"

Silence.

"You don't have that number. Because your AI has never estimated a compliance project. Its training data doesn't include them. But your proposal includes a compliance delivery timeline."

I opened my laptop — not the one connected to the projector. But I brought my own adapter.

The screen went up:

# Last aggregation I ran before leaving:
# 57 closed records, grouped by project type:
#
# SELECT project_type,
#        ROUND(AVG(ai_estimate), 1) AS avg_ai,
#        ROUND(AVG(actual_days), 1) AS avg_actual,
#        ROUND((AVG(actual_days) - AVG(ai_estimate)) / AVG(ai_estimate) * 100, 0) AS deviation_pct
# FROM estimation_log
# WHERE status = 'closed'
# GROUP BY project_type
# ORDER BY deviation_pct DESC;

Project Type         AI Est.      Actual        Deviation
Feature work         2 wks       2.5 wks       +25%
Tech debt fix        3 days      14 days        +366%
Cross-team work      1 wk        6 wks          +500%
Compliance/Security  no data     no data        
Enter fullscreen mode Exit fullscreen mode

"The delivery timeline in your proposal — you calculated it using AI estimation, didn't you. Which project types did you filter out before running the numbers?"

The room was quiet.

"You say your AI is accurate because you never check the projects where it isn't. But the platform you're bidding on — financial compliance, cross-team coordination, three legacy systems to integrate. None of that exists in your training data."

I closed the laptop.

"I filled in the blanks for you. You're welcome."


Act 6 · The End

My old company didn't win the bid.

Not because of what I said — because the review committee asked them to add a "Legacy System Integration" section to their proposal. They spent a week writing it. Engineering sent it back: "No concrete timelines. No risk matrix. No fallback plan."

Their AI couldn't estimate work it had never seen. It never learned how.

A message reached me later, through someone still working there:

"You took company data when you left."

I sent one sentence back — verbal, no trace:

"The data was never on my machine. Your Git public read-only branch has been open since the day you deployed the estimation engine. It's still open."


My phone lit up.

Lydia:
"Heard you brought your own adapter to the meeting."

I typed back:

"The things my old manager's slides didn't say — I filled those in too."

I flipped the phone over. Opened a Coke.


Some things aren't misestimated by AI. They were never estimated at all.

When management treats "the system gave a number" as "the system validated that number," what gets undervalued isn't just hours — it's every part of engineering the AI has never seen.


Ever been rated poorly by a system when you knew you weren't wrong? Drop it in the comments — I read every single one.


This is *"AI, Ego & Regret"** story #12. The series is linked below — follow to catch the next one.*


P.S. If you've got a story like this — buy me a coffee ☕ and tell me about it. Yours might be next.


This article was written with the assistance of AI tools.

Top comments (8)

Collapse
 
sloan profile image
Sloan the DEV Moderator

Hey, this article appears to have been generated with the assistance of ChatGPT or possibly some other AI tool.

We allow our community members to use AI assistance when writing articles as long as they abide by our guidelines. Please review the guidelines and edit your post to add a disclaimer.

Failure to follow these guidelines could result in DEV admin lowering the score of your post, making it less visible to the rest of the community. Or, if upon review we find this post to be particularly harmful, we may decide to unpublish it completely.

We hope you understand and take care to follow our guidelines going forward!

Collapse
 
xulingfeng profile image
xulingfeng

Done. Added a disclosure to the post. Thanks for the heads-up.

Collapse
 
nazar_boyko profile image
Nazar Boyko

The part that lands for me is the category error underneath the whole thing: the system measured how close its own estimate was to reality, and management read that as how good the engineer was. Those aren't the same number. An estimator trained on documented, tested, greenfield code has no signal for "undocumented 7-year-old stored procedure, original author gone", so it's not that he was slow, it's that the model was confidently estimating work it had never seen. Scoring people on a model's blind spots is a fast way to lose the people who handle your hardest code.

Collapse
 
xulingfeng profile image
xulingfeng

Yeah exactly — the estimator had no signal for the stuff that actually makes code hard. The model scored well on the work it had seen, management scored the engineer on what it hadn't. Two very different numbers.

Collapse
 
technogamerz profile image
The Lazy Girl (⁠◕⁠ᴗ⁠◕⁠✿⁠)

Looks like the story came full circle 😄. Sometimes experience teaches things that AI simply can't measure. Really enjoyed this perspective—thanks for sharing!

Collapse
 
xulingfeng profile image
xulingfeng

Appreciate that! The full circle was the best part to write — had to earn that ending before I could land it. Glad it came through 🙌

Some comments may only be visible to logged-in visitors. Sign in to view all comments.