|
||||||||||||||||||||||||||||||||||||||||||
DEVELOPER STORIES
Early last year, the personal task manager Things rolled out an update that completely rebuilt its back end using server-side Swift, and the response was exactly what cofounder Werner Jainek was hoping for:
Crickets.
“Maybe a few people noticed it was faster,” says Jainek from the Stuttgart offices of Cultured Code, the company behind Things. “But otherwise, the impact on users was really nothing.”
Nothing was the best possible outcome for a pioneering journey — one that‘s made the average compute cost for Things three times cheaper, while quadrupling average response speed.
Available on: iPhone, iPad, Mac, Apple Watch, Apple Vision Pro
Team size: 11
Based in: Germany
Awards: Apple Design Award (2009, 2017), App Store Editor’s Choice
As one of the very first apps available at the App Store’s 2008 launch, the two-time Apple Design Award winner Things has quite a history — enough that, around 2020, the Cultured Code team began noticing that their sync engine was in need of a tune-up.
“The tech stack had become inefficient, expensive, and not up to modern standards,” says Vojtěch Rylko, who runs Cultured Code’s back end development and operations. “Plus, the platform it ran on was kind of a black box; we kept having to build workarounds.” The team worried that the aging back end threatened their decade-old standing as a rock-solid utility. “That was the reputation we stood to lose,” says Jainek, “so it was clear we had to act. There was really no place for hesitation.”
The engine-rebuild project was on. Jainek says Cultured Code remained open-minded about the entire tech stack, revisiting everything from programming language to infrastructure. And as the back end part of the investigation went on, he began to notice something unexpected: Server-side Swift kept bubbling up as a favorite option. “We were already familiar with it from client-side development, of course,” he says. “There were a lot of pros: performance, memory efficiency, modernity. But the question remained: Was it mature enough? Would it be stable in production?”
Rylko says that at the time, server-side Swift felt very new. “We’d discuss it with friends and colleagues at conferences, and they seemed a little surprised it was even possible,” he says. “It felt very adventurous at the time.”
Werner Jainek, Cultured Code CEO and cofounder
Nevertheless, the team dove in. In all, it took Rylko and his team about three years to rewrite the cloud-sync capability to Swift, set up the infrastructure, and finish testing — an especially crucial step. “From the outset, our requirement was a smooth user experience when we switched the cloud,” says Rylko.
That’s how the team landed on a two-pronged approach: They would test the new Swift-based back end with live content from users — without impacting their experience. “We built the new cloud, and then ran it side-by-side with the old one,” says Rylko. “While the old cloud processed all the live traffic, we also forwarded that same traffic to the new system and executed it there in parallel, so we could observe what was happening in real time. Did the database handle all the queries? Did we have performance issues? We learned how to operate this new infrastructure under the real load.”
By the end of the process, Cultured Code had amassed more than a full year of production experience with the new cloud.
There were additional benefits to this approach, including the ability to migrate most of their immutable data in advance. “That made it so we just needed three hours of planned downtime during the final migration instead of four days,” says Jainek.
And when it came time to flip the switch for real, the team gathered in Stuttgart to mark the occasion together. “But by then there was no nervousness,” says Jainek, “because we knew we’d done the work.”
Originally published June 9, 2025
|
||||||||||||||||||||||||||||||||||||||||||