Insights and Analytics

Who Actually Builds With LLMs: 2.5 Software Engineers for Every AI Engineer

For every dedicated AI Engineer a US company is hiring to build with large language models, it is asking roughly 2.5 generalist software engineers to do the same thing. And the two groups build in provably different stacks.

We pulled every US job posting in the Skillenai index that requires a real generative-AI skill and split it by the role on the door. The picture that came back is not one workforce building AI. It is three.

Who gets asked to build with LLMs

Get an email when we publish a new post. No account needed, unsubscribe anytime.

The specialists are outnumbered

We defined "requires a GenAI skill" strictly: the posting has to carry at least one conceptual generative-AI skill such as LLMs, RAG, prompt engineering, AI agents, fine-tuning, or embeddings. Framework names like LangChain were deliberately left out of that test so we could measure framework usage cleanly later.

Then we split the postings into three role families:

Role family US postings Require a GenAI skill Penetration
Generalist software engineer 26,478 2,572 9.7%
AI Engineer (LLM-native) 1,696 1,048 61.8%
ML Engineer / Research 4,043 1,253 31.0%

Any single AI Engineer role is far more likely to be GenAI work. Of course it is; that is the job. But the generalist software-engineer population is roughly 16 times larger, so a 9.7% penetration rate still produces more GenAI-requiring postings (2,572) than the entire LLM-native AI-Engineer demand pool (1,048). That is a 2.5 to 1 ratio. On raw titles alone, "Software Engineer" plus a GenAI skill beats "AI Engineer" plus a GenAI skill by 3.2 to 1.

The people hired specifically to build AI are outnumbered by the sheer size of the general engineering workforce being handed the same mandate.

Same job, different languages

Same job, different languages

Here is where the split becomes something you can feel. The share of each family's GenAI postings that also require a given language:

Language Generalist SWE AI Engineer ML / Research
Python 46.9% 59.7% 54.7%
TypeScript 34.0% 16.9% 1.5%
React 30.0% 7.2% 0.7%
Node.js 14.3% 5.0% 0.6%
Ruby 5.8% 0.7% 0.0%
Go 14.1% 5.9% 4.9%
Java 13.5% 4.5% 9.7%

Generalist engineers asked to build AI reach for the web stack. They are more than 4 times as likely to want React, twice as likely to want TypeScript, and Ruby shows up 8.7 times more often than it does for AI Engineers. Fewer than half even mention Python. AI Engineers, by contrast, are emphatically Python-first.

Because the open-source LLM tooling ecosystem is Python-first, a posting that asks for Ruby plus LLMs is almost by definition a bespoke, roll-your-own integration. There is no LangGraph for Rails.

The ecosystem divide

The ecosystem divide

The frameworks each family names tell the same story from the other side:

Framework Generalist SWE AI Engineer ML / Research
LangChain 5.7% 19.0% 4.4%
LangGraph 3.0% 10.4% 2.7%
LlamaIndex 1.4% 6.2% 0.4%
PyTorch 3.4% 14.5% 39.0%
TensorFlow 2.3% 9.6% 24.9%

Three signatures. Generalist engineers are low on everything, a framework-light world. AI Engineers own the orchestration layer, naming LangChain and LangGraph roughly three times more often than generalists. ML Engineers and researchers live in the model layer, PyTorch and TensorFlow, the deep-learning training stack.

Building AI without the ecosystem

Put it starkly: 91.6% of generalist-SWE GenAI postings name no orchestration framework at all, compared with 72.1% for AI Engineers. Naming no framework is common everywhere, but the generalists do it 14 points more. And the tell is not that they reach for raw provider SDKs instead: naming OpenAI as a skill appears in 3.4% of both cohorts. The generalist signal is naming nothing specific at all, just a language and an LLM concept, and no plumbing in between.

The third world: model-builders

It is worth being precise about that third family, because "AI/ML role" hides two very different jobs. Among ML-Engineer and Research postings that require no GenAI skill, the top requirements are machine learning, PyTorch, TensorFlow, deep learning, computer vision, reinforcement learning, JAX, and CUDA. These are model-builders, training vision and recommender and reinforcement-learning models, not LLM-application builders. The pool that specifically knows how to design and evaluate LLM systems is smaller than the raw "AI Engineer" headcount suggests.

The written ecosystem is Python, too

Where the written GenAI ecosystem lives

If open-source contribution and technical writing concentrate in Python, that is exactly where a web-stack engineer is least served. Across 183,717 GenAI-topic blog and news articles in our index, Python is mentioned 3.5 times more than TypeScript and 15 times more than Ruby, and Python-first frameworks out-mindshare the flagship TypeScript framework (Vercel AI SDK) by roughly 7 to 1. The engineers building LLM features in Ruby and TypeScript are working in the languages the ecosystem serves least.

Two philosophies under one roof

The pattern that stings most is a single company running both playbooks at once: a web-stack team and a Python-orchestration team, both chartered to "build AI," each with every incentive to disagree about how.

At least 23% of the companies hiring orchestration-fluent AI Engineers are simultaneously hiring generalist software engineers to build AI in the web stack (32% if you relax the language requirement). Recognizable names in that set include Adobe, Databricks, Scale AI, JPMorgan Chase, Samsara, Snowflake, Cisco, and General Motors. This is a lower bound: most specialist-hiring companies in our window have only a single AI-Engineer posting, so for the majority there simply is not enough hiring signal to see their internal division of labor. The co-occurrence is visible mainly at the larger employers that post enough to reveal both patterns.

What this means

If you are a software engineer: the demand to build AI features is landing on you, not on a specialist down the hall, and probably in the stack you already know. That is an opportunity, but the ecosystem you will lean on for examples, libraries, and answers lives in Python. Budget for the translation cost.

If you are an AI Engineer: you are scarce, and the data shows it, 62% of your role's postings are GenAI work versus under 10% for generalists. The risk is being pulled into evaluation and advisory roles while the actual build happens in a codebase and a language you do not own.

If you are hiring: decide deliberately whether AI feature work rides inside your existing product-engineering org, in its native stack, or inside a specialist team on the Python orchestration stack. Running both without an explicit architecture decision is how you end up with two teams, one mandate, and a standing disagreement about how to build.


Methodology: demand-side analysis of US job postings in the Skillenai prod-enriched-jobs index, using structured, entity-resolved skill requirements rather than body keyword matching. Cohorts were selected on conceptual GenAI skills to keep the framework comparison non-circular. Every language and framework contrast is statistically significant under a Bonferroni-corrected per-skill chi-square. This is demand-side data: it shows who employers ask to build with LLMs and in what stack, not what gets built or how well. Big Tech firms using proprietary applicant systems are under-represented. Full methodology, code, and charts.

Related posts

Get more posts like this

Subscribe to get new posts by email. No account needed, unsubscribe anytime.