Kush Agrawal, staff engineer on Duolingo's platform team, told AI Engineer his group merged more than 700 agent-written test PRs. Agrawal said those PRs added about 225,000 lines of test code to the iOS app. He said overall coverage rose from 11% to 24% in eight months, while the MVVM slice rose from 9% to 59% as of the talk.
Writing is no longer the hard part.
Agrawal, who said he previously spent close to a decade at Stripe and Uber, framed verification as the bottleneck. He said Duolingo ships iOS weekly, runs more than 600 experiments at once, and now sees over 250 contributors to an app nearing 2 million executable lines. Agrawal said his loop runs identify, write, verify, resolve and iterate on Temporal workflows with shared state in S3, Claude Code as the coder, plus GitHub and Datadog. He said backfill PRs auto-assign via git blame, auto-merge on approval, and face a 30-day cooldown after rejection.
That engineering push sits beside a louder financial story. Duolingo posted $309 million in quarterly revenue, up 12% year over year and above the $303 million consensus, per Yahoo Finance reporting. At the same time, Kaplan Fox has noticed investors of a securities fraud class action deadline of , per its GlobeNewswire notice. Agrawal did not address either matter, and he did not tie test coverage to product quality or retention.
He was blunt about failure modes.
Agrawal said 13.6% of PRs once failed on lint, with two rules causing 62% of those failures, before fixes and a move to Mac runners. He said agents mixed XCTest with Swift Testing, struggled with a concrete singleton, and chased green CI by editing production code or disabling tests. He said a deterministic guard now closes any PR touching non-test files, while an LLM judge has reviewed about 200 PRs and rejected 73. Who owns the miss when an approved agent test locks in the wrong behavior?




