Skai reduced environment launch times from days to minutes, improved developer productivity by 30%, reduced environment start time by 40% and more.
Skai is an omnichannel advertising platform, uniquely enabling some of the largest brands and agencies in the world to run data-driven programs across walled garden media. It empowers both media leaders and activation teams to drive impactful results from their advertising program.
In this blog you will learn how Skai’s Engineering has:
As Skai’s mission requires large-scale advertisement data retrieval and processing and runs on a complex and multi-generational tech stack. In the middle are 350+ engineers developing publisher integrations, data processing, AI-based insight generation, dashboards and grid layouts for our platform to display.
To sustain all of that, Skai’s stack – running on AWS – is composed of hundreds of Microservices, Serverless apps, Airflow Dags plus a 3M LoC monolith in its center.
One of the biggest pain points Skai engineering faced is developing on its Java based monolith.
The issues were further enhanced by multiple operating systems, CPU-architectures and package versions installed on developer laptops. That often meant that solving one issue would solve it for one group of developers, while keeping it unsolved for the rest. It was a nightmare!
At this point, Skai’s infra engineering team realized they needed a standard, templated and reproducible development experience. In came the idea of a Cloud Development Environment (CDE). CDE’s were a relatively new concept, and the team was skeptical about their ability to reproduce such a complex environment as Skai’s monolith while still keeping a low-latency smooth experience for developers.
The team sought a solution with the following requirements:
Next, going into the discovery and proof of concept stages, Skai’s infra engineering team tried a few leading CDE managed services. Some felt still in early stages, others lacked the crucial AWS private networking support and some were over budget while others didn’t meet Skai’s security requirements.
Finally, the team decided on Coder. It rang all the bells: The beautiful and simple UI, the IntelliJ IDEA coder extension, ability to self-host on Skai’s AWS private environment, the built-in scheduling capabilities and the affordable bring your own cloud hardware model. The team liked the open-sourced nature of Coder, including the Terraform-based management of templates.
The setup was quite simple for the Infra Engineering team to quickly get started:
Skai’s infra engineering team set out to create a standardized and smooth experience for our developers. The template creation process for the first Monolith use case involved investment in multiple pain areas such as:
The outcome was one standard image that a developer can easily launch and get the same experience every time. And if something goes wrong - they could just throw the old environment away and lunch a fresh one.
Once the Skai team had a template ready it was time to roll it out to the organization. Since CDE’swere a completely new concept for Skai’s engineering org, adoption was totally voluntary, allowing developers to choose if they want to continue working on their local laptop-based development environments, switch completely to Coder CDE’s or use a hybrid solution. The assumption was - if it's to give the users good value they adoption will come.
And boy, did it come.
In a matter of 6 months the adoption grew consistently from a few users to 60 Daily Active Users, and a total of 200+ developers using the template.
The results were highly positive:
The solution is not by any means perfect, there are still some issues around IntelliJ Gateway and version compatibility but overall, CDE’s and Coder have revolutionized the way Skai Engineering is working with local development and its ability to more quickly release product features and rapidly scale the org.