Gerard Gallant

Gerard Gallant

CIO at Dovico | Author of "WebAssembly in Action"

Moncton, Canada

Gerard Gallant is the CIO of Dovico Software. He also maintains their hosted infrastructure, has built out their DevOps solutions, and is the Lead Software Architect for two of Dovico's three products. When not at work, you'll still find him coding and researching as he has an insatiable drive to learn.

As a huge fan of WebAssembly, he was fortunate to have the opportunity to write a book on the subject: "WebAssembly in Action" (https://www.manning.com/books/webassembly-in-action).

Area of Expertise

  • Information & Communications Technology


  • webassembly
  • WASM
  • Web Development
  • HTML
  • HTML5
  • JavaScript
  • C#.Net
  • Docker
  • SQL Sever
  • Visual Studio
  • Microsoft Office
  • aws
  • slack

Building an Interactive Slack Bot

Slack is a popular messaging app used by over 750,000 companies including 65% of the Fortune 100 companies. Did you know you can do more than just send text messages with the odd image or emoji? It's possible to create a rich interactive UI using Slack's Block Kit UI framework. In this session we'll build a simple hot-desk booking bot with Node.js where you'll learn how to respond to events from your controls and adjust the displayed message.

WebAssembly Overview

In this session you’ll learn about WebAssembly: what is it, what problems does it solve, how it works, where you can use it, and what makes it secure. That last point about security is an important one because that’s one area that gives many people pause when hearing the words ‘native code’ or that C++ can be used. Immediately, we have flash backs of plugins and pointers.

In this session you’ll learn how to create a WebAssembly module and how to interact with it. WebAssembly modules are not limited to the browser so you’ll also learn how to make use of it outside the browser.

The State of WebAssembly

WebAssembly has been available in all major browsers, and Node.js, since 2017. Since then, additional features have been added and its use has expanded outside the browser to places like edge and serverless computing, containers, and IoT. It's even possible to leverage it from within your code! In this talk, you'll learn how WebAssembly works and about the new capabilities that have been added.

Creating a Slack bot to turn AWS services on or off

A number of AWS services charge by the hour but most services needed for development or testing are only needed during work hours. If it's only needed for 40 hours a week, why pay for the extra 128 hours? At the same time, maybe you'd rather keep the number of people in AWS to a minimum. In this talk, we'll create a Slack bot that automatically turns off AWS services at the end of the day but allows employees to turn them on or off from Slack. We'll also set up an AWS IAM user with permissions to just the EC2 instance for added security.

Uno Platform & Blazor WebAssembly: Tapping into WebAssembly

Blazor WebAssembly and the Uno Platform allow you to write C# code that just works in the browser thanks to the Mono runtime. What if you'd like to take advantage of some WebAssembly features from your code? This talk will walk you through accessing WebAssembly features like fixed-width SIMD (single instruction, multiple data) from both platforms. I'll also give a quick overview of some WebAssembly changes in .NET 8.

This is somewhat based on my article about fixed-width SIMD from C#: https://bit.ly/3E97D0G There are also changes coming to .NET 8 that I'll touch on like no longer streaming down .dll files and a form of JITing will be possible where modules are created on the fly.

Web Components using WebAssembly - Creating a Polyfill

Many web developers will choose a feature based on if it’s supported in all of the major browsers for maximum reach. What if you didn't have to wait for support from all browsers? In this session, we'll explore the idea of using WebAssembly as a polyfill for the browser(s) that don't yet have the desired feature. We'll create a Web Component that uses WebAssembly to convert an image to a different type, on the fly, if needed.

Creating a WebAssembly Docker Container

Containers didn’t replace virtual machines but they brought an advantage where they allowed for a larger number of apps to be hosted on the same hardware and with a faster startup time. Likewise, WebAssembly adds another tool to your belt allowing you to increase that density and improve startup time even more. In this session, you'll learn how to create a Docker container that calls your WebAssembly module directly and we'll compare the size difference with a standard container.


"Building an interactive Slack bot" where I walked the audience through Slack's documentation and API as we built a hot desk booking bot using the Bolt for JavaScript SDK: https://confoo.ca/en/2023/session/building-an-interactive-slack-bot

"Rapid prototyping with the help of Docker" where I showed the audience how the company I work for is using Docker to speed up development of one of our products: https://confoo.ca/en/2023/session/rapid-prototyping-with-the-help-of-docker

February 2023 Montréal, Canada


"Joining forces to free WebAssembly from the browser" where I explained the WebAssembly System Interface (WASI) and gave a couple demos of it in action both from C# code and from the a runtime at the command line: https://confoo.ca/en/yul2021/session/joining-forces-to-free-webassembly-from-the-browser

February 2021 Montréal, Canada


"WebAssembly Overview" where I explained what WebAssembly is, the problems it solves, how it works, and what makes it secure: https://confoo.ca/en/yul2020/session/webassembly-overview

February 2020 Montréal, Canada

Gerard Gallant

CIO at Dovico | Author of "WebAssembly in Action"

Moncton, Canada