跪拜 Guibai
← All articles
Frontend · JavaScript · Programmer

Business Frontend Devs Are First to Hit the Wall — and AI Is Just the Latest Reason

By ErpanOmer ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

AI coding tools that generate UI from screenshots compress the value of pure page-building to near zero. The only durable frontend skill left is defensive engineering — handling failure modes, network degradation, and resource constraints — which most business developers never practice.

Summary

The 35-year-old midlife crisis in Chinese tech hits business-oriented frontend engineers hardest because their core skill — turning design files into pages — has no moat. Five years of framework fluency and component-library mastery produce assembly-line speed, not engineering depth. When budgets tighten or AI tools generate UI from screenshots, those developers are cut first.

The dividing line between disposable and durable is fallback engineering: handling network jitter, memory leaks, race conditions, and cache poisoning in the real world. A payment polling routine that uses exponential backoff, AbortController lifecycle binding, and Cache-Control headers withstands production stress in ways framework syntax never will. That defensive posture extends to defining APIs rather than consuming them, using BFF layers or edge functions to clean up bad backend contracts before data reaches the client.

The crisis isn't age — it's homogeneity. Developers who stop at framework debates and never wade into the messy, low-level problems of memory, networking, and degraded devices have already sealed their fate by year three.

Takeaways
Business frontend work that stops at translating design mockups into code and calling APIs is assembly-line labor with no competitive moat.
AI tools that generate code directly from screenshots make pure UI-translation speed obsolete as a differentiator.
Framework proficiency and component-library memorization create a false sense of mastery that masks a total absence of engineering depth.
The gap between a junior and a senior frontend engineer is measured in fallback handling: aborting zombie requests, preventing race conditions, defending against cache poisoning, and protecting server resources under retry storms.
Exponential backoff in polling logic, native AbortController for lifecycle-bound cancellation, and Cache-Control headers are concrete techniques that separate durable code from fragile code.
Frontend engineers who only consume APIs remain replaceable; those who define and reshape bad backend contracts through BFF layers or edge functions become rule-makers.
High-end MacBook Pro development hides real-world constraints; rendering hundreds of thousands of records on a low-end Android device demands Web Workers, on-demand rendering, and Canvas degradation to stay within memory budgets.
The midlife crisis is not about age but about homogeneity: developers who plateau at framework debates after three years have already lost.
Conclusions

The argument reframes the AI threat to frontend developers not as a new danger but as an accelerant that exposes a pre-existing vulnerability: pure page-building was always low-moat work, and AI just makes that undeniable.

Defensive engineering — handling failure, degradation, and resource limits — is presented as the only durable frontend skill, yet it is precisely what most business developers never practice because their daily work never demands it.

The payment polling example is deliberately framework-agnostic, using only native platform APIs, which makes an implicit claim that framework expertise is a distraction from the real craft of writing resilient code.

The advice to become an API definer rather than an API consumer is a power move disguised as engineering advice: it shifts the frontend role from downstream order-taker to upstream architect.

Concepts & terms
Exponential backoff
A retry strategy where the wait time between successive attempts doubles each time (e.g., 1s, 2s, 4s, 8s), capped at a maximum. It protects server resources during outages by spreading retry load instead of hammering the endpoint at a fixed interval.
AbortController / AbortSignal
A native browser API that lets you cancel an in-flight fetch request or other async operation. Tying it to a component's lifecycle ensures that when a user navigates away or a component unmounts, the underlying network request is immediately terminated, preventing memory leaks and stale state updates.
BFF (Backend for Frontend)
An intermediate server layer that sits between the frontend client and downstream backend services. It aggregates, transforms, or cleans up API responses so that the client receives data shaped exactly for its needs, rather than consuming raw, multi-step, or poorly designed backend contracts directly.
Cache-Control: no-cache
An HTTP header directive that forces the browser or any intermediate cache (like a CDN) to revalidate the response with the origin server before using a cached copy. For payment status checks, this prevents serving stale 'pending' states from cache when the transaction has already settled.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗