AI Writes the Code Now. What Is Left for Software Engineers?
A few weeks ago, the SF Standard ran a headline that stopped me mid-scroll: "AI Writes the Code Now. What's Left for Software Engineers?" It is the kind of question that makes you stare at your terminal a little differently.
Sam Altman confirmed what many of us suspected — that "AI washing" is now a real phenomenon in layoffs. Companies are using AI as cover for cuts that have more to do with cost restructuring than genuine automation. But the numbers are still sobering. In 2026 alone, there have been 132 tech layoffs affecting over 51,330 people. Jack Dorsey cut 40% of Block's workforce. Salesforce replaced entire customer support divisions with AI agents. The anxiety is real, and it is not irrational.
But here is the part that rarely makes the headlines: a Gartner report found that only about 20% of organizations have actually cut jobs because of AI. Even more telling, Gartner predicts that half of those roles will be rehired by 2027 — just under new titles, with different expectations. The work is not disappearing. It is transforming.
I have been building software for over fifteen years. I have seen waves come and go — cloud computing was going to eliminate ops teams, no-code was going to eliminate developers, blockchain was going to eliminate banks. None of those predictions came true in the way people expected. But this wave feels different, not because AI is replacing engineers, but because it is genuinely changing what engineering means.
So let us talk honestly about what AI can do, what it cannot do, and what this means for your career.
What AI Can Actually Do Today
Let me give credit where it is due. Modern AI coding assistants are genuinely impressive at a specific class of tasks, and pretending otherwise does not help anyone.
Here is what AI handles well right now:
- Writing boilerplate code — CRUD endpoints, data models, API clients, configuration files
- Generating test cases — especially unit tests for well-defined functions with clear inputs and outputs
- Translating between programming languages — converting a Python script to TypeScript, porting Java to Kotlin
- Refactoring existing code — renaming variables, extracting functions, simplifying nested conditionals
- Writing documentation — generating JSDoc comments, README sections, API docs from existing code
- Explaining unfamiliar codebases — summarizing what a file or module does when you are onboarding
I use AI coding tools every day, and they have legitimately changed my workflow. Tasks that used to take an hour — scaffolding a new service, writing migration scripts, creating test fixtures — now take minutes. The productivity gain is real. I am not going to pretend otherwise to make a point.
But here is the thing: the tasks AI excels at are the ones that experienced engineers were already doing on autopilot. The boilerplate, the repetitive patterns, the stuff you could write in your sleep. AI did not take the hard part of our jobs. It took the boring part.
What AI Still Cannot Do
For all the progress, there is a long list of things that AI struggles with — and most of them are the things that actually make or break a project.
Understanding Business Context
AI does not know that your e-commerce platform processes $2M in transactions on Black Friday and that a 500ms latency spike costs real money. It does not know that your CEO just announced a pivot to enterprise, which means your self-serve onboarding flow is about to become irrelevant. It does not know that the legal team flagged GDPR concerns about the new analytics feature. Context is everything in software, and AI has none of it.
Making Architectural Decisions
Should you use a monolith or microservices? Event sourcing or CRUD? PostgreSQL or DynamoDB? These decisions depend on team size, expected scale, organizational structure, budget constraints, existing infrastructure, and a dozen other factors that AI cannot weigh. AI can describe the tradeoffs. It cannot make the call.
Debugging Production Incidents Under Pressure
It is 2 AM. The payment service is returning 500s. Revenue is hemorrhaging. Slack is blowing up. The CEO is in the channel asking for an ETA. You need to simultaneously read logs, form hypotheses, check recent deploys, coordinate with the on-call DBA, communicate status updates, and make high-stakes decisions with incomplete information. This is a deeply human skill — part technical, part emotional, part political. AI is not even close to handling this.
Navigating Organizational Complexity
Half of engineering is not engineering at all. It is figuring out which team owns that service, convincing a skeptical VP that a refactor is worth the investment, negotiating API contracts with a partner team that has different priorities, or managing the politics of a reorg. No LLM is going to attend that meeting for you.
Handling Truly Ambiguous Requirements
When a product manager says "make it faster," what do they mean? Faster page load? Faster API response? Faster time-to-market for new features? The ability to ask the right clarifying questions — and to know when a requirement is underspecified — is a skill that separates senior engineers from junior ones. AI takes requirements at face value. Good engineers interrogate them.
The Skills That Matter More Than Ever
If AI is handling more of the "writing code" part of the job, then the value of a software engineer increasingly lies in everything around the code. Here are the skills I would invest in.
1. System Design and Architecture Thinking
The ability to design systems that are scalable, maintainable, and aligned with business goals is more valuable than ever. AI can generate components, but someone needs to decide how those components fit together, how data flows between them, and how the system behaves under failure conditions.
If you cannot whiteboard a system that handles 10x your current load, explain the tradeoffs between consistency and availability, or design a migration path from your current architecture to the target state — those are the gaps to fill.
2. Problem Decomposition
Here is a truth that took me years to internalize: the hardest part of software engineering is not writing the solution. It is defining the problem. The ability to take a vague business objective — "we need better retention" — and decompose it into concrete, buildable chunks is the single most valuable skill an engineer can have.
AI needs clear, well-scoped prompts to be effective. The engineer who can break a complex problem into precise subproblems is the one who will get the most out of AI tools. Ironically, the better you are at decomposition, the more AI amplifies your output.
3. Debugging and Root Cause Analysis
Debugging is fundamentally about building a mental model of a system and then systematically narrowing down where reality diverges from your model. It requires intuition built over years of experience, the patience to follow a thread through layers of abstraction, and the discipline to verify hypotheses rather than jumping to conclusions.
AI can help with debugging — suggesting possible causes, explaining error messages, searching for similar issues. But the actual investigative process, especially for novel bugs in complex distributed systems, remains deeply human.
4. Communication and Stakeholder Management
The best engineers I have worked with are not just technically brilliant. They can explain a complex technical decision to a non-technical executive in three sentences. They can write an RFC that gets buy-in from five different teams. They can present a realistic timeline without either sandbagging or overcommitting.
As AI handles more implementation work, the ability to communicate — about what to build, why, and how — becomes the primary differentiator between a good engineer and a great one.
5. Security Mindset
AI-generated code introduces new classes of security risks. Models can produce code with subtle vulnerabilities — SQL injection vectors, insecure defaults, improper input validation — that look correct at first glance. Engineers with a security-first mindset, who instinctively ask "how could this be exploited?" are more essential than ever.
Beyond code-level security, the rise of AI agents with tool access creates entirely new attack surfaces. Prompt injection, data exfiltration through tool calls, privilege escalation — these are emerging threat vectors that need human expertise to address.
6. AI Orchestration
This is the new meta-skill: knowing when and how to use AI effectively. Which tasks should you delegate to AI? When should you write code yourself because the AI will produce something subtly wrong? How do you structure prompts for maximum effectiveness? How do you review AI-generated code efficiently?
The engineers who treat AI as a tool — understanding its strengths, limitations, and failure modes — will outperform both those who refuse to use it and those who blindly trust it.
The New Developer Workflow
The daily rhythm of software development is changing in ways both subtle and profound. Here is what I see happening in practice.
Before AI: You receive a ticket. You read the requirements. You sketch a design. You open your editor. You write code, line by line. You write tests. You debug. You submit a PR. You address review comments. You merge.
With AI: You receive a ticket. You read the requirements. You sketch a design. You describe the implementation to an AI agent. You review what it produces. You refine, redirect, and course-correct. You verify the output against your mental model. You ensure test coverage is meaningful, not just green. You submit a PR with a clear narrative of why, not just what.
The shift is from "coder" to "technical director." You are still deeply technical — you need to understand every line of code in that PR. But your primary output is no longer the code itself. It is the decisions about what code should exist, how it should work, and whether what was generated actually meets the bar.
This is not a demotion. If anything, it is a promotion. You are operating at a higher level of abstraction, focusing on the parts of the job that require judgment, taste, and experience.
But it does require a mindset shift. Engineers who derive their identity from typing speed or lines of code written per day will struggle. Engineers who derive their identity from the quality of the systems they ship will thrive.
Career Strategies for the AI Age
If you are thinking about your career in the context of AI, here is my honest advice.
Go Deep, Not Wide
Generalists who can "do a bit of everything" are exactly the profile most at risk from AI. AI is also a generalist — and it works 24/7 without burnout. Instead, go deep. Become the person who understands distributed consensus protocols, or real-time video processing, or financial compliance systems. Deep specialization is hard to replicate and compounds over time.
Build Domain Expertise
The most AI-resistant engineers are the ones who understand their domain deeply. An engineer who understands healthcare billing, securities trading, or logistics optimization is not just writing code — they are translating complex domain knowledge into software. AI cannot replace domain expertise because it does not have the lived experience of working in that domain.
Contribute to the AI Tools Themselves
One of the best career moves right now is to get involved in building the AI infrastructure layer. The tools, frameworks, and platforms that power AI applications are being built by engineers — and there is enormous demand for people who understand both traditional software engineering and AI systems.
Focus on Problems AI Cannot Solve
Human relationships, novel architectures for unprecedented problems, cross-system integration that spans organizational boundaries, ethical decision-making under uncertainty — these are the domains where human engineers will continue to lead. Orient your career toward the complex, the ambiguous, and the interpersonal.
The Jobs That Are Growing
While some roles are contracting, others are expanding rapidly. Here is where the growth is.
AI Infrastructure Engineering — Building the platforms that serve, scale, and monitor AI models in production. This includes GPU cluster management, model serving optimization, and inference pipeline design.
ML Ops and AI Platform Engineering — The DevOps of AI. Managing training pipelines, model versioning, feature stores, and deployment automation. Every company deploying AI at scale needs this function.
Agent Engineering — What started as "prompt engineering" has evolved into designing, building, and maintaining autonomous AI agents. This is a full engineering discipline now — requiring expertise in tool design, memory architecture, safety guardrails, and evaluation frameworks.
Security Engineering — AI introduces novel attack surfaces: prompt injection, training data poisoning, model extraction, adversarial inputs. Security engineers who understand these AI-specific threats are in extremely high demand.
Platform Engineering — Internal developer platforms that provide golden paths, self-service infrastructure, and standardized tooling. As AI generates more code, the need for robust platforms to run that code reliably only increases.
The common thread: these roles all require deep technical expertise combined with systems thinking. They are not about writing individual functions — they are about building and maintaining the infrastructure that makes modern software possible.
The Path Forward
I will not sugarcoat it: the software engineering profession is going through a genuine transformation, and not everyone will navigate it smoothly. The engineers who built their careers on being the fastest typist in the room, or who coasted on the ability to write basic CRUD apps, are facing real headwinds.
But here is what gives me optimism: the best engineers have always adapted. When we moved from assembly to high-level languages, the good engineers did not mourn the loss of register allocation. They embraced the new abstractions and built bigger, more ambitious systems. When we moved from bare metal to the cloud, the good engineers did not cling to their server racks. They learned distributed systems and built things that were previously impossible.
AI is the next abstraction layer. It does not make engineering less important. It makes it possible to tackle problems that were previously too expensive, too complex, or too time-consuming to attempt. The scope of what a single engineer can accomplish is expanding dramatically — and that is exciting, not threatening.
The engineers who will thrive are the ones who see AI not as a replacement but as a lever. They will use it to move faster, think bigger, and focus their human energy on the parts of the job that actually require a human — the judgment calls, the creative leaps, the messy human communication that turns a good idea into a shipped product.
Craftsmanship does not disappear when the tools improve. It evolves. The carpenter who feared the power saw is long forgotten. The one who mastered it built things that hand tools never could.
The code is changing. The craft endures.