Fueling innovative software
July 15-18, 2019
Portland, OR

Level up your web apps with WebAssembly

Robert Aboukhalil (Invitae)
1:45pm2:25pm Thursday, July 18, 2019
The Next Architecture
Location: Portland 255
Secondary topics:  Cloud Native
Average rating: ****.
(4.88, 16 ratings)

Who is this presentation for?

  • Software engineers

Level

Intermediate

Description

WebAssembly is a powerful tool for porting applications to the web and for speeding up data-intensive web apps. If you don’t know what WebAssembly is, how it works, or how to practically get started using it, now’s your chance.

Robert Aboukhalil leads a deep dive into WebAssembly, demonstrating how it can be used to speed up web tools. As a concrete case study, he’ll use fastq.bio, a web tool for analyzing DNA sequencing data in the browser. By rewriting portions of this tool into WebAssembly, he demonstrates how it’s possible to obtain a greater than 10x speedup compared to the original JavaScript implementation. Robert will also show you how to leverage WebWorkers alongside WebAssembly to maintain the UI’s responsiveness and how this enables you to more easily mount and parse files within a virtual filesystem.

He concludes by exploring how WebAssembly can be useful outside the browser—demonstrating how it’s possible to rearchitect fastq.bio so that the WebAssembly code runs in a serverless fashion instead of directly in the browser.

And because WebAssembly isn’t always the right tool, Robert also explores some rules of thumb on when to use WebAssembly and when to avoid it.

Prerequisite knowledge

  • Intermediate knowledge of JavaScript

What you'll learn

  • Understand what WebAssembly is and how it works
  • Learn to compile C/C++ code to WebAssembly and run it in the browser, use WebWorkers to run computations in the background, and run WebAssembly in a serverless setting
  • Know when to use WebAssembly and when to avoid it
Photo of Robert Aboukhalil

Robert Aboukhalil

Invitae

Robert Aboukhalil is a bioinformatics software engineer at Invitae, which means he spends his time engineering software for bioinformatics purposes. Specifically, he develops cloud applications to enable the interactive analysis and exploration of genomics data. Robert has a PhD in bioinformatics from CSHL and a bachelor’s degree in computer engineering from McGill.