JSDay2019: Get To Know Your Speaker – Matthias Dugué (M4dz)
M4dz – 15:10 A State Of WebAssembly: The Browser is now a real VM (Matthias Dugué)
M4dz is a strange animal. Through many lives, he always tried to teach others what he learnt himself. Previously a web developer (nobody’s perfect), concerned about privacy, respect of private data, and cybersecurity. He’s now Tech Evangelist at alwaysdata. He tries to inform about the present and future of digital issues. His favourite book always remains ‘Alice in Wonderland’.
1. How did you (M4dz) first become interested in web development?
I built my first Website in 1996 (you know, “Optimized for Netscape”), before Adobe acquired the Flash Technology (for whom remembering Flash). But no, I didn’t live with dinosaurs when I was young!
This first attempt was a deal with my parents: if they let me have internet access at home, then I’ll be able to build a website for my mum’s business. The deal was made, and the website too. Not a really good one (built with a WYSIWYG tool I guess), but because of the poor quality of the produced pages, I had to dig into the HTML code by itself, then I went to PHP, and so on.
From that moment, I never stopped playing with code.
2. When did you know it was more than just an interest?
My first job was totally unrelated to code. But I still continued to build websites for friends. This wasn’t really a job, just a hobby. Then I left my position, and I asked myself, “What do you know, and what do you do well?”
Code was a pretty good answer! So I started to work as a freelancer, working for small companies and institutions. I joined a digital agency a few years later, and I was the one in the team that was comfortable both in the backend and the frontend parts. It was approx. a 200 people agency, and discovering I’m one of those that can help, regardless of the project and technologies, was disturbing. I was convinced just to be a handyman.
Since then, I started to consider code as a way to make a career.
3. Why is Alice In Wonderland your favourite book?
That’s a very good, and a very complex question.
First, because of my name: you’ve got the MAD of my name trigram. But my first name nickname is also MADS in Dane. Many paths led me to the MAD thing. And, you know, “We’re all mad here. I’m mad. You’re mad.”
Above all, I love in ‘Alice’ is the perfect mix between non-sense and pure logic. Like code, finally: we craft a new world, from nothing. This world fits perfectly in our own logic, and is totally absurd on the other hand: ‘Undefined is not a function’.
4. What is your top-tip for excelling in tech?
Humility. It’s definitely the most important and the most neglected part of our job. We do awesome work on great projects, sometimes to do things as crazy as sending a robot to an asteroid, or piloting a laser in an operating room. But most of the time, this is not this kind of stuff. We’re not saving lives. We’re just crafting code.
At the very beginning of my career, I remember going to conferences, listening to awesome people, and they were all saying, “You must do this like that. Period.” And I was, “Woo, so true!.” So I came to be this kind of guy, always grunting against the existing codebase, yelling at previous coders that made these crappy things. Then one day, I did it myself: I made crappy code. Not because I wasn’t aware of it. Just because there were circumstances that forced me to do it. A context. I never yell at crappy code since that.
You know, people aren’t stupid. Nobody wants to make dirty work with pleasure (don’t judge your kinks). This is sometimes because they didn’t know a better way. Sometimes because the context constraint to do it. But, as far as I know, never because they love doing the wrong stuff.
So I started to give talks to myself, to help others to understand better ways to craft things. So yes, humility is the most important part of our job.
5. What is one of the hardest technical challenges you’ve ever encountered and how did you overcome it?
In one word: Privacy. I worked for a personal cloud project, where data can be self-hosted. It led me to the path of privacy, and how complicated it becomes to develop software that respects users’ data.
I started to work on many aspects due to privacy concerns: UX, data storage, indexing, cryptography… It was a hard but inspiring journey. This is why I give so many talks about security, cryptography, data, and more. Taking care of our users’ data and working ethically is really complex. It challenges us every day.
6. For those that may not have encountered it before, what is WebAssembly?
WebAssembly is a new language available inside and outside of the browser. It’s a low-level language, near to the machine-language like assembly, and it’s executed in the VirtualMachine of the browser.
What’s interesting is that where previous tries to build a new language in the browser failed, this one was widely adopted. The main reason is probably that it is not designed to replace JS, it’s a complementary use. It makes all the difference. Also, WASM is available in all recent browsers releases, ready for production!
7. What are the benefits of WebAssembly?
WebAssembly is extremely fast, this is its main benefit. It is designed to have performances close to native compiled-code, which is astounding, especially in a browser!
Another big feature is its secured design. WASM code is executed in the main thread but in a sandboxed environment. This way, executing malicious code inside the VM, or leaking data from the app becomes more complex to an attacker.
The third point is that WASM by itself isn’t really readable, and it’s not designed for that purpose. You have to compile your code to WASM. Compiling code means you can use whatever language you prefer to develop, for the Web! Even if you can’t access some browser primitives, and that JS stay dedicated to UI, you can share Models and Domain logics regardless of their language and run it into the browser!
8. What can people expect from your talk at JSDayIE 2019?
Probably a lot of fun, I guess!
The talk is an introduction to WASM, so we will discover how it works, how to run it in the browser, how to write a code that compiles to WASM.
There will be code, examples, and a Crypto Demo that I love to run. I usually don’t do demos on talks, because it’s always risky. As an attendee, I know that I prefer to see something and learn in a small time frame rather than looking to an embarrassed speaker that try to debug the demo on stage.
But this one is simple, and, when the Gods are with us, astounding enough! I asked the organisers for big fire effects, but they refused, don’t know why…
9. What’s next for you?
In the same time, I’m still working on developers relations at alwaysdata. As a PaaS provider, we must provide the smoothest experience to our users. And as a Tech Evangelist, I’m here to provide them with the most accurate answers to their needs. So there is new documentation coming soon to help people to work with their online content. There is also blog content upcoming on various topics, that cover new server technologies, security, frameworks, etc.
10. Where can people find and follow M4dz online?
I’m easy to find on Twitter at @m4d_z. I don’t tweet as much as I should do, but I’m here to share and discuss with many people. Keep an eye on https://blog.alwaysdata.com for my next articles. Oh, and it’s not online, but come to me and let’s chat over a beer during the event!
Check out JSDayIE19 to book your ticket now. They are selling fast!
If you’d like to learn more about other speakers, check out our blog.