I wrote a book! It’s called WebAssembly from the Ground Up — it’s an online book where you learn Wasm by writing a simpler compiler in JavaScript. You can read a free sample if it tickles your fancy. Together with my friend Mariano, I’ve been working on the book for just over two and half years. And (big surprise) it was a huge learning experience! While everything is still fresh in my mind, I wanted to capture some of the things we learned here. The clichés Let’s start with the ob...| Patrick Dubroy's blog
In 2012 I was working at Google on the Chrome team in Munich. I was writing a lot of JavaScript code and constantly having to wait for code reviews from a team in Los Angeles. On one of my trips to Mountain View, I thought: screw it, I’m going to LA to meet those bastards. I didn’t ask my manager, didn’t tell the LA team I was coming — just booked a flight, went into the office, and introduced myself. And you know what? They were incredibly welcoming. They offered me a desk, we had lu...| Patrick Dubroy's blog
In some of the communities I hang around in1, there’s a fondness for the kind of industrial research that happened at places like PARC and Bell Labs. Things like Smalltalk, Mesa/Cedar, and Plan 9 not only introduced new ideas but demonstrated them in practical, working systems. If you want to actually do research like this, how should you go about it? There are a couple of obvious strategies. One is to look for unsolved problems — say, “addressing the scale-up problem in visual programm...| Patrick Dubroy's blog
During my CS undergrad at Carleton University, I had the opportunity to do a bunch of internships.1 Looking back, I can’t help but think how lucky I was! I got to work on some great teams, learned a ton, and had a lot of fun. Corel My first real internship was on the Linux team at Corel in the summer of 2000. I was super excited about this, for a couple of reasons: I had grown up using CorelDRAW. I was super into Linux and open source at the time. (As in, I read Slashdot religiously and sta...| Patrick Dubroy's blog
For the last 13 years, I’ve done the same thing almost every Monday night. At 9pm, I head out to a small sports club on the outskirts of Munich to play 5-a-side soccer. Many players have left, and new people have joined, but there’s a core group of us who’ve stayed the same. When you’ve been doing the same thing, with the same guys, for more than 13 years, it’s easy to get a little attached to that structure. So, a few weeks ago, I was a little annoyed when only four of us showed up...| Patrick Dubroy's blog
Like many programmers, I’ve always enjoyed learning new things. But over the past year, I’ve started taking learning seriously in a way that I never did before — at least outside of a formal academic setting. Earlier in my career, learning was basically a given: almost any interesting project I could take on would involve diving into things I was unfamiliar with. But at a certain point, this stopped being true. As I gained more experience, I realized that I’d need to make a conscious ...| Patrick Dubroy's blog
Late last year, I read a few blog posts that said something like “everyone knows that bytecode interpreters are faster than tree-walking interpreters”. And then I saw the paper AST vs. Bytecode: Interpreters in the Age of Meta-Compilation” when Stefan Marr shared a draft on Twitter. I realized that although I’d written a number of tree-walking interpreters, I’d never actually built a bytecode interpreter before. So, I thought it would be a fun exercise to build two small interpreter...| Patrick Dubroy's blog
Casual programming| dubroy.com
Five coding hats| dubroy.com
Bytecode VMs in surprising places| dubroy.com
Cold-blooded software| dubroy.com
The influence of Self| dubroy.com