Duolingo — procurement as transformation
Replacing contractors with model output is a sourcing decision, not an operating system.
Duolingo cut a meaningful share of its contractor base in 2024 and reorganized content production around an AI-first pipeline. The internal communications were leaked, the financial impact was material, and the public framing positioned the change as a strategic transformation. The output of the pipeline is, by all available evidence, holding up.
The structural read is that this is a procurement decision dressed as a transformation. The org swapped one input (human contractor hours) for another input (model output plus a smaller editing team) and the variance the contractors used to absorb is now showing up somewhere else in the system. Where it shows up is not visible from the outside, which is most of what the structural concern is.
Specifically: the org reorganized around model output but did not stand up a corresponding evaluation function, a drift-detection function, or a content-safety review layer that would survive a regulator's question about how language fluency is assessed in a product used by children. The contractor cost went away. The latent liability around the content the model produces did not, and is now sitting inside a smaller team with less context than the contractors had.
This is not a case of the deployment failing. It is a case of the operating layer being a smaller decision than the procurement decision that drove it. The two should be the other way around. The procurement saving is a one-time event. The operating layer is what produces the next saving, and the one after, and it is also what catches the failure mode before the App Store, the Spanish education ministry, or a board member's parent group catches it first.
Duolingo is the case studied not because something has gone wrong, but because the structural shape of the program tells you what is likely to go wrong, and when.
When the variance moves, the operating layer is where you see it. When the operating layer is not built, the variance shows up in the customer.