How Revolut Cut AI Coding Costs 90% With Self-Hosted Open Models - David Abitbol, Revolut
David Abitbol, who leads AI operations at Revolut, shares what AI tools did to 2,000 engineers' coding time and lead time. The main finding is that self-hosting open-source GLM models delivered about 60-70% faster delivery at roughly a tenth of frontier-lab costs. He covers the GPU sizing, latency targets, tuning that made the same hardware 88% faster, and how an EU-regulated bank keeps the setup compliant.
AI adoption measured in lead time, not coding speed
Across a sample of 2,000 engineers at Revolut, the most useful metric is lead time: the span from the moment an engineer picks up a feature to the moment it is merged and ready to deploy. Coding time is tracked alongside it, but the two move differently. Early tools helped in predictable ways. Gemini, which was the first tool that let people work with private company data through an AI, cut lead time by about 10% and coding time by about 20%, mostly by removing the need to search Stack Overflow and read documentation. Claude Code arrived around February 2025 and, at first, had little measurable effect. Engineers were spending between $1,000 and $10,000 a month with weak returns, so Revolut launched it under strict budget limits.
Why they moved to self-hosted open-source models
The constraint was cost. Rationed tokens made engineers hold back, saving AI for hard problems or the end of a quarter. The goal became unlimited usage at a fraction of the price, which pointed to open-source models. In April, Revolut began self-hosting GLM, which the team considers especially strong for coding. The results were large: roughly 60% faster coding time and 70% faster lead time.
Coding is not the bottleneck
The larger gain in lead time shows that writing code is only part of delivery. Much of an engineer’s day goes to triage, digging through email, and handling tickets in Jira. Once tokens are no longer scarce, engineers use AI for that surrounding work too, and that is where the time comes back.
Economics and where frontier models still fit
Open source is now the default at Revolut. The billing is flat, so there are no end-of-month bill shocks. The blended cost is about 30 cents per million tokens, and the invoice is about one-tenth of what the company spent with Anthropic and OpenAI. Frontier models such as Claude Code, Codex, and Gemini remain available, but as exceptions for tasks that need them.
Sizing the hardware for 2,000 engineers
Serving about 2,000 engineers takes roughly 56 B200 GPUs for GLM. Two metrics drive the experience. The first is time to first token, where the target is under 3 seconds. Engineers start complaining once it passes 5 seconds, which the team treats as a hard limit. The second is interactivity, where about 200 tokens per second per stream is sufficient. Throughput matters less because people no longer watch the stream of thinking tokens. They run tasks in parallel and check back when each one finishes. Anyone who needs more speed can get up to 800 tokens per second after 5 p.m., when the GPUs are less busy.
Tuning: same hardware, 88% faster
Running an open model well takes deliberate tuning. Loading weights onto GPUs and running inference gives poor performance, because the result depends heavily on configuration. The chart tracks request rate against time to first token. In April, the system handled about 3 requests per second with a time to first token over 10 seconds. By August it handled over 7 requests per second with a time to first token near 1.6 seconds. The GPU count stayed at 56. The result was an 88% performance gain while demand rose 76%. The main lesson is to tune before scaling hardware.
The parameters that matter
Long context is often oversold. A model may support one million tokens, but 256K is usually what real workloads need. On Blackwell GPUs, quantization should not go above FP4, with NVFP4 the best option. Moving from FP8 down to FP4 cuts GPU footprint by roughly 40% with no meaningful loss in precision. Tensor parallelism needs care: GLM fits on TP4, but that leaves too little KV cache, so TP8 may work better depending on load. For coding workloads, the cache hit rate should be above 90%. Speculative decoding, sequential prefill, and prefill-decode disaggregation are further levers to test.
Production setup and multimodal gaps
GLM is text-only, which is a real limitation. Revolut accepts that trade-off because they would rather have the stronger model and solve image understanding separately. A local router handles this. Image tasks go to Gemini or Claude, while GLM handles the main coding work. For vision-heavy work, a Gemini Flash model performs well, and Revolut’s UI designers have made good use of it, which has shortened UI turnaround considerably. The endpoints expose an OpenAI-compatible API with the Responses API, so they work with Codex and similar tools.
Compliance for a regulated bank
There is a stigma around using Chinese open-source models, but the risk depends on where inference runs. Revolut does not use the China-hosted inference endpoint. It takes only the model weights and runs them on a US-based service, which is acceptable for data sharing. As an EU-regulated bank, Revolut falls under strict rules, so it treats these coding workflows as human-in-the-loop tools rather than autonomous agents. The main safeguard is a sandbox with approval rules for sensitive operations. For example, some commands can be allowed while others are blocked. The sandbox also guards against misuse by insiders, which is more common in large companies than people expect. Prompt injection is less of a concern given how capable current models are, but it still matters. Data should stay in jurisdictions covered by the data adequacy framework, such as the US, EU, UK, and Israel. GPU and inference providers should default to zero data retention. Finally, thorough OpenTelemetry instrumentation is essential, so the team can investigate incidents in detail and also gain analytics on usage.