Skip to content

Why Do Only Developers Have to Be Full-Stack? (The Truth)

I was scrolling through job listings and noticed something frustrating. Every developer role wanted “full-stack” experience. Frontend, backend, databases, cloud, DevOps, security, mobile - sometimes all in one posting.

But then I looked at QA roles. “Specialist in automated testing.” Infrastructure roles? “Kubernetes expert.” Security? “Cloud security specialist.”

Why the asymmetry? Why are developers expected to be Swiss Army knives while other roles get to specialize?

I dug into this question, and the answer isn’t just “unfair expectations” - it’s a deliberate business decision.

The Asymmetric Pressure

Here’s what I’ve observed in the job market:

Developer Role Expectations:
┌─────────────────────────────────────────────────────┐
│ Frontend (React, Vue, Angular) │
│ Backend (Node, Python, Java, Go) │
│ Database (PostgreSQL, MongoDB, Redis) │
│ Cloud (AWS, GCP, Azure) │
│ DevOps (CI/CD, Docker, Kubernetes) │
│ Testing (Unit, Integration, E2E) │
│ Security (OWASP, Auth, Encryption) │
│ Mobile (React Native, Flutter) │
└─────────────────────────────────────────────────────┘
= "Full-Stack Developer" (one salary)
Specialist Role Expectations:
┌───────────────────┐ ┌───────────────────┐ ┌───────────────────┐
│ QA/Tester │ │ Infrastructure │ │ Security Engineer │
│ - Test frameworks │ │ - Cloud platforms │ │ - Security audits │
│ - Automation │ │ - Containers │ │ - Compliance │
│ - One domain │ │ - Infrastructure │ │ - One domain │
└───────────────────┘ └───────────────────┘ └───────────────────┘
= "Specialist" (can focus deep)

This bothered me. I tried to understand why.

The Real Reason: Follow the Money

I came across a Reddit discussion that laid it out bluntly. The top comment with 300+ upvotes said:

“Cost cutting disguised as ‘being agile’”

That hit hard. Let me break down what’s actually happening.

Reason 1: Direct Value Creation

Developers create the product. The product makes money. Therefore, maximize developer output per dollar.

Value Chain:
Developer ──► Product ──► Revenue
└── Direct line to money
Tester ──► Quality ──► Cost Reduction (indirect)
└── Seen as overhead
Infra ──► Stability ──► Cost Center
└── Also overhead

Business logic says: “If devs can do testing and deployment too, we don’t need separate roles.”

Reason 2: The Math of Headcount

One senior full-stack developer: $150K/year

vs.

One frontend dev ($120K) + one backend dev ($130K) + one DevOps engineer ($140K) = $390K/year

Same work, 2.6x the cost. CFOs noticed.

Reason 3: The “Artificial” Stack Division

Here’s an uncomfortable truth someone pointed out:

“The division between front and back end is artificial anyway.”

Early web developers did everything. The frontend/backend split emerged when applications got complex. Now tools have caught up - frameworks abstract complexity, cloud platforms simplify infrastructure, testing tools are more accessible.

The barrier to “doing it all” lowered. Companies took advantage.

But Wait - Other Roles Face Pressure Too

I initially thought testers and infrastructure engineers had it easier. I was wrong.

The “Shift-Left” Trap for Testers

Testers aren’t being allowed to specialize. They’re being eliminated.

Traditional Model:
Dev ──► Code ──► Tester ──► Bug Reports ──► Dev fixes
"Shift-Left" Model:
Dev ──► Code + Test + Fix (all in one)
Tester ──► ???

The narrative: “If devs write tests, we don’t need dedicated testers.”

The reality: Testing quality drops because devs prioritize shipping over thoroughness.

The DevOps Transformation for Infra Engineers

Infrastructure engineers didn’t escape either. They got rebranded:

Evolution:
System Admin ──► DevOps Engineer ──► Platform Engineer ──► ???
│ │ │
Hardware focus CI/CD + Cloud Internal Platform
(specialist) (broader) (even broader)

Now platform engineers are expected to know development, not just infrastructure. The pressure is real - just different.

Why This Matters for Your Career

Understanding this dynamic changed how I approach job hunting and negotiations.

Spot the Red Flags

Reasonable full-stack:

“You can build features end-to-end, we’ll support your learning in weaker areas.”

Exploitative full-stack:

“You must be expert in React, Node, Python, AWS, Kubernetes, Terraform, and mobile development - solo.”

Negotiate Accordingly

If a role expects three roles’ worth of work:

  1. Ask for salary at the 75th percentile (not median)
  2. Clarify what “full-stack” means in practice
  3. Understand on-call expectations
  4. Ask about team composition (solo full-stack vs. supported)

The Specialization vs. Generalization Trade-off

I used to think I needed to know everything. Now I realize:

T-Shaped Developer (Healthy):
┌─────────────────┐
│ Broad Surface │ (Can work across stack)
│ ─── │
│ Deep Expert │ (Specialized in one area)
│ │ │
└───────┴─────────┘
Kitchen Sink Developer (Unhealthy):
┌─────────────────┐
│ Broad Surface │
│ │
│ │
│ (No depth) │
└─────────────────┘

Companies benefit from T-shaped developers. They exploit kitchen sink developers.

Common Mistakes I Made

Mistake 1: Applying only when I met 100% of requirements.

Reality: Those requirements are wishlists. If you’re strong in one area and can learn others, apply.

Mistake 2: Accepting “full-stack” without asking what it means.

Reality: One company’s full-stack is “React + Node.” Another’s is “Everything from CSS to Kubernetes.” Clarify upfront.

Mistake 3: Thinking specialists are obsolete.

Reality: Specialists are more valuable than ever - at companies that value quality over cost-cutting. Big tech still hires specialists.

Mistake 4: Confusing “can do” with “expert in.”

Reality: Being full-stack means you can deliver across the stack, not that you’re equally expert everywhere. Know when to ask for help.

What I Do Now

Interview screening questions:

  • “What does full-stack mean for this role specifically?”
  • “How is the team structured?”
  • “Who handles deployment and infrastructure?”
  • “What’s the ratio of frontend to backend work?”
  • “Is there a dedicated QA team?”

Salary negotiation:

  • If role = frontend + backend + DevOps + testing, that’s 3 roles
  • Research salary data for each component
  • Target compensation above single-role median

Career decisions:

  • Accept full-stack roles that grow my skills
  • Avoid full-stack roles that exploit my desperation
  • Maintain a specialization while broadening capabilities

The Bottom Line

The full-stack expectation isn’t fair. But from a business perspective, it’s rational. Developers sit on the value creation line. Companies optimize for maximum product output per salary dollar.

This doesn’t mean you have to accept exploitation:

  1. Distinguish reasonable from exploitative. Growing your skills vs. doing three jobs for one salary.

  2. Negotiate compensation that matches scope.

  3. Maintain boundaries. Being full-stack doesn’t mean being on-call for everything.

  4. Know your worth. If they want a unicorn, they should pay for one.

  5. Remember: other roles face their own pressures. Testers deal with “shift-left” elimination. Infra engineers face DevOps expansion. No role is immune to “do more with less.”

The tech industry will continue pushing developers toward generalization. That’s not inherently bad - broad skills open doors. What’s bad is when “full-stack” becomes code for “we laid off three specialists and need you to replace them.”

Set boundaries. Clarify expectations. Negotiate fairly. And never confuse “full-stack” with “expert at everything.”


Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments