Reinventing web performance using webassembly

2020-12-17 - Tyler McMullen, the CTO at [Fastly](https://www.fastly.com/), didn’t study IT. He got his first programming job at age 16 while still in high school and never quite got around to going to school after that. Perhaps it is his encounter with computers and the coding world a decade or so before that had prepared him for this moment. “That is how I can be 35 with almost 20 years of experience,” he says amid chuckles.

His very first encounter with computer programming happened through the game genies of the 1990s. Around age six, someone explained to him how game genies worked, a moment that led him to realize that games were not magic; that they were like machines that someone could manipulate. That lightbulb moment was everything it took to get him into computing, starting with QBasic and then Classic ASP, Perl, and PHP.

The Edge Cloud

Tyler worked for a startup in California when he met Artur Bergman, the primary founder of Fastly. Artur’s explanation of the idea of what later became Fastly was fascinating enough to Tyler that he quit his job and joined Artur in his pursuit.

In this podcast, Tyler explains to Tobi in great detail what Fastly is all about. He says the company can have as many as 128 servers in a single data center location. Primarily, Fastly is an edge cloud, not just a CDN. It helps organizations to move their content, logic, and applications to the edge of the network.

Traditional clouds are focused on a centralized deployment model where you typically deploy your application to one place, and you could choose to deploy the application to another location. On the other hand, Fastly has a serverless approach where you need not know where your code is running: a client provides the code and application that they want to run, and Fastly deploys it everywhere.

The edge cloud is not intended to replace the central cloud. In the best scenarios, they work in tandem. The idea of leveraging the edge cloud is perfect for enterprises that need their most valuable applications, content, and logic to deploy really fast and make the most of their value. For instance, latency might be extremely valuable for one company, while it might be resiliency for another. Fastly would help these companies ensure that even if their central cloud goes down or goes away, their websites or applications continue functioning normally, albeit a little degraded.

One significant contributor to Fastly’s fast growth was search engines’ push for improved web performance for websites that wish to rank better on their search engine results pages (SERPs). Tyler says many people who work at Fastly have a background in web performance because it is a central part of what Fastly does.

Bytecode Alliance

Today Fastly looks very different from what it looked like when it began operations in 2011. Tyler says the company, which went public a year ago, now has over 500 employees.

One of the more fascinating undertakings that Tyler has been involved in at Fastly is Bytecode Alliance. Bytecode Alliance is an open-source community focused on establishing a platform where service providers and application developers can securely run untrusted code on any device, operating system, or web architecture. Tobi engages Tyler on how he got started with the project, which Intel, Mozilla, and Red Hat would later join.

The vision at Bytecode Alliance is to create a secure-by-default WebAssembly ecosystem for all platforms. So far, they’ve added a runtime only in Firefox Nightly, Mozilla’s developmental channel for new Firefox releases.

Fastly has built WebAssembly into its platform.

“So, all the browsers work by doing just-in-time compilation of WebAssembly. Our realization was that we could do ahead-of-time compilation of WebAssembly and make it even faster for our use case,” Tyler explains, “So we have, essentially, a compilation cluster that will turn web assembly into native code.”

Tyler’s Team of Fifteen

Tyler’s 15-member team at Fastly is made up of what he calls “strange, diverse” human beings. He says their work in the company entails overseeing the things that are overlooked. The team is mostly virtual and spread across the globe.

“We have people all the way from Melbourne over to Paris as well, and including one here in Berlin as well,” he says, “Some of our very first employees were remote. I think we're over 50% remote at this point. So, it's something very much built into our culture.”

Tyler says most of his team’s work is focused on longer-term goals at the company.

“Rather than focusing on what's happening right now, (we) focus on what we think is going to be happening down the line. So everything that we work on tends to be longer term.”

And most of their team is spent on experiments and incubation.

“I think one of the things that make us different from what a typical research group at a company might do, is that rather than doing a bunch of research and then handing off our findings to the rest of engineering, instead, what we do is we actually incubate teams within the group. So rather than incubating a project, we try to incubate teams instead.”

From C-based Programming Languages to Rust

Tobi and Tyler also discuss the core technologies at Fastly.

“The way we're moving now is actually like away from C and toward Rust, which I think has been a big shift. The big reason for that is that Rust is kind of the first language that we've seen, that actually combines the efficiency, the performance, the low-level nature of C with the ability to make it safe. Once you actually wrap your head around Rust, it's a pretty amazing language. I will admit though that the learning curve for it is a bit of a challenge.”

« back to Homepage