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

Who is this presentation for?

Software engineers

Level

Intermediate

Prerequisite knowledge

Intermediate JavaScript knowledge

What you'll learn

By the end of the talk, attendees will: - Have a good high-level understanding of what WebAssembly is and how it works - Know how to compile C/C++ libraries to WebAssembly and run them in the browser - Know how to leverage WebWorkers with WebAssembly - Perhaps most importantly, have a good sense for when to use WebAssembly, and when to avoid it

Description

This talk is a deep dive into WebAssembly and how it can help you level up your applications.

We’ll start the talk by introducing WebAssembly, how it works, and how to get started using it. Next, to concretely demonstrate how WebAssembly can be used to speed up web tools, we’ll consider the application fastq.bio, an interactive front-end-only web tool we previously developed in JavaScript to help biologists QC their DNA sequencing data. By compiling an existing QC tool from C to WebAssembly and optimizing the original C code, we obtain >10X speedup compared to our original JavaScript implementation!

We’ll also cover how we can leverage WebWorkers alongside WebAssembly to maintain the UI’s responsiveness, and how this enables us to more easily mount and parse files provided by the user within a virtual file system.

Finally, we’ll conclude by discussing rules of thumb on when to use WebAssembly, and when to avoid it.

Photo of Robert Aboukhalil

Robert Aboukhalil

Invitae

Robert is a Bioinformatics Software Engineer, which means that 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 Ph.D. in Bioinformatics from CSHL and a Bachelor in Computer Engineering from McGill.

Leave a Comment or Question

Help us make this conference the best it can be for you. Have questions you'd like this speaker to address? Suggestions for issues that deserve extra attention? Feedback that you'd like to share with the speaker and other attendees?

Join the conversation here (requires login)