Prezi is the interactive, cloud-based presentation platform that helps you connect more powerfully with your audience.
Technical articles and stack decisions from Prezi
How Prezi replaced a homegrown Log Management System with Grafana Loki
Prezi has quite a sophisticated engineering culture where solutions are built that do the job. Some solutions that have been built in the past stood out and aged well. In other areas, some solutions…
How Prezi Serves Customer Traffic
Prezi has a global audience that depends on the fast and reliable accessibility of its content. In this article, we look into the way Prezi serves content from a network perspective. See this article…
The Value Of Experimentation In Software Development
For the most part, I think that software engineers, developers, programmers, coders — call ’em whatever you like — all tend to share an important trait — curiosity. Yes, even the jaded cynics with a…
Read This Before Building Your First Zoom App
I take it, if you’re reading this, you’ve made the decision or at the very least are toying with the idea of building a Zoom app. That’s great news for many Zoom users like myself who rely on the…
Shifting to the Right Place: My Transition Back from EM to Engineer
After a good ~2.5 years, I’m going back from being an engineering manager to being an engineer, and will continue in one of my teams as an engineer. This post is about why I reached this decision…
Keep the databases top-notch
Databases are often the most critical parts of applications. Prezi is no exception to this. We store and read persistent data from many different databases while serving requests from our users…
10 Things We Learnt While Building A Top-Performing Zoom App
A singular goal. To release as quickly as humanly possible. Laser-sharp focus. Make the most of Zoom’s new Layers API. A daring vision. To give Zoom users better meetings. The Prezi way. All of…
EM In A Year
Imposter syndrome is a hell of a thing. There was no logic that could convince me that I was stepping into a role I belonged in. Even though I’d done 5 rounds of interviews in which a majority of my…
Prezi Engineering’s 2022 In A Nutshell
We came, we saw, we conquered, said the Romans. But this is not Ancient Rome, it’s Prezi engineering and this is 2022. The world has changed and evolved, and as such, our conclusions got a lot more…
How to avoid global outage — Seamlessly migrating DaemonSet labels
As Site Reliability Engineering Team, we continuously strive to improve the systems we operate. One way to do so is to stay up-to-date with upstream components. One of the components that needed some…
Testing, Testing, 1–2–3, Is This Thing On?
Software testing. You know, that thing somewhere between fingers crossed, flying on a wing and a pray’r and a user poking angrily at the screen while your app crashes in every incomprehensible way…
Scala at Prezi: Introduction of ZIO
We have been using Scala to write highly performant and typesafe backend services since 2015. We built a Prezi-specific Scala Tech Stack using Akka and Future. We use Swagger to define every…
If You Had 90 Days To Make A Dent In The Universe, What Would You Do?
We had a pandemic. Well, we still do, but I choose to be an optimist, and I would also like this article to age well. We saw economic uncertainty and recovery. We saw political scenes change…
The Mother Of All Web App Features
The task was simple and singular. Provide value to the customer and do it fast. If I have learnt anything in over 10 years of software development is that fast, valuable and easy to deliver often…
Technical Debt, a.k.a. “Not-quite-right-code” at Prezi
My Master’s thesis this summer was all about technical debt — researching its background, its prevalence at Prezi, and developing tooling to get a handle on the problem. In this short article, I…
prox part 4 — simplified redesign
In Part 1 I described how the advanced type level programming techniques can be used to describe the execution of system processes. It was both a good playground to experiment with these and the…
Effortless mass change management with Hammurabi
If you ever had to develop microservices, you already know some of the challenges around it. If it’s done right, the development can speed up, the cognitive complexity of the services can be…
In search of speed — debugging Elasticsearch performance
How Prezi Engineering tested different solutions to improve our Elasticsearch performance, and reduce errors in our cluster.
Prometheus at Prezi: replacing 10 years of anti-patterns
What happens when you combine 10 years of architectural organic build-up and a lack of common best practices around monitoring? Bad on-call shifts, more outages, longer outages and a lack of…
prox part 3 — effect abstraction and ZIO
The first post introduced the prox library and demonstrated the advanced type level programming techniques it uses. Then in the second part of this series, we experimented with replacing the…
prox part 2 — akka streams with cats effect
In the previous post, we have seen how prox applies advanced type level programming techniques to express executing external system processes. The input and output of these processes can be…
prox part 1 — type level programming in Scala
I started writing prox at the end of 2017 for two reasons. First, I never liked any of the existing solutions for running external processes and capture their input/output streams. And I just…
Evolution of Data Ingestion and Product Instrumentation at Prezi
Everybody says and knows that using data to build your product is a necessity. That’s easier said than done. We at Prezi have gone through several iterations in getting the right data and learned…
A Kubernetes crime story
A technical investigation story about a Kubernetes pod/worker networking bug.
Prometheus Unchained
This is a war story about a leaky abstraction and it takes us on a journey through several layers of technology: we’ll start with Grafana and Prometheus, touch Django, Gunicorn, Python and — spoiler…
How Prezi switched data centers on the fly
The pit crew can change the tires on a racecar in 12–14 seconds[1]. That’s insanely fast compared to the 29 minutes, bruised fingers, and oil stained pants that it took me to do the same thing with…
Racing against race conditions
Some hours ago, we discovered a bug related to our Facebook/LinkedIn signup integration. It meant that in a very particular and unlikely set of circumstances, some people may have found themselves in…
Plans Are Useless, Automation Is Essential
In an ideal world, I wouldn’t have to care about infrastructure automation or configuration management. As long as I know what everything does, how everything works, and I have total control over all…
Performance Monitoring With Speedprobe
In the DevOps community, we all share common enemies: the insidious complexities of building and operating applications, the all-too reasonable, yet high expectation that users have for that…
Prezi Got Pwned: A Tale of Responsible Disclosure
Disclaimer: For purposes of reference, Prezi runs a Bug Bounty Program that invites attacks like the one detailed below. 1) Readable Details of a new Budapest craft beer bar Links to articles about…
Heartbleed Defeated
Huge issues are rarely the result of one tiny mistake. But when that little error happens to occur within the context of a widely used crypto library, the impact can be catastrophic. I’m writing, of…