Patrick Dubroy
dubroy.com
Patrick Dubroy
@dubroy.com
Programmer & researcher, co-creator of https://ohmjs.org. 🇨🇦 🇩🇪 🇪🇺

Co-author of https://wasmgroundup.com — learn Wasm by building a simple compiler in JavaScript.

Prev: CDG/HARC, Google, BumpTop
Pinned
Here it is — very happy to officially release the book that @marianoguerra.org and I have been working on for the past 2½ years.

If you bought it in early access, thanks for your support! 🙏

If you haven't bought it yet, please check it out!!
Excited to announce the official launch of our online book, WebAssembly from the Ground Up! 🎉

It's the book we wish we'd had 3 years ago.

No messing with tools and frameworks. It's a hands-on guide to the core of Wasm: the instruction set and module format.

Link below. 👇
Reposted by Patrick Dubroy
A lot of folks know me for one or two posts, and might not know I've created nine (9!) visual explanations of computer science topics, aimed at practitioners.

If you're looking for things to read this Thanksgiving, I think you'll love them.

Computer science is a lot of fun, when explained well. ❤️
November 28, 2025 at 4:34 PM
Not often that I’m reading a CS paper and think, damn, now there’s a good diagram.

These pretty good…love the ✂️s

From ”The Ubiquitous Skip List: A Survey…” dl.acm.org/doi/pdf/10.1...
November 27, 2025 at 7:25 PM
I'm working on something that benefited from a sprinkle of PBT, and this was *very* useful —

Choosing properties for property-based testing
fsharpforfunandprofit.com/posts/proper...
Choosing properties for property-based testing
Or, I want to use PBT, but I can never think of any properties to use
fsharpforfunandprofit.com
November 26, 2025 at 1:33 PM
Definitely one of the cooler language playgrounds I've seen: pinky.cool.omg.lol
November 21, 2025 at 3:46 PM
Excited to finally release the blog post that @marianoguerra.org has been working on for a while!
Per your request, please find enclosed…a new blog post!

A WebAssembly interpreter (Part 1)
wasmgroundup.com/blog/wasm-vm...

We build up a simple interpreter from scratch, in JavaScript, for a small subset of Wasm instructions (arithmetic and comparison).
A WebAssembly interpreter (Part 1)
Implementing a Wasm Interpreter to explore its design and semantics
wasmgroundup.com
November 20, 2025 at 2:02 PM
TIL: Branded types in TypeScript
github.com/pdubroy/til/...
November 19, 2025 at 7:40 PM
"Some compiler-development experiences are long slogs where you write code for months without ever having a thing that produces an actual executable that you can run."

"My First Fifteen Compilers" by Lindsey Kuper
blog.sigplan.org/2019/07/09/m...
November 18, 2025 at 12:34 PM
A new blog post —

devlog: garbage collection is useful
dubroy.com/blog/garbage...

Trying something new: quick, technical posts about things I'm working on. Let's see if it sticks.
November 14, 2025 at 4:14 PM
In basically every TypeScript codebase I touch, I end up adding a `checkNotNull` function exactly like the one from the Kotlin stdlib.

So useful! Surprisingly I haven't seen many TS resources which mention this specific pattern.
November 14, 2025 at 8:05 AM
Somewhat surprising (to me) advice in Google's C++ style guide:

"Try to avoid unsigned types (except for representing bitfields or modular arithmetic). Do not use an unsigned type merely to assert that a variable is non-negative."

Example of a possible bug: abseil.io/tips/227

(via @wingolog.org)
November 11, 2025 at 3:45 PM
A cool paper from OOPSLA '25 —

An Empirical Evaluation of Property-Based Testing in Python
dl.acm.org/doi/pdf/10.1...

Some interesting findings:
- "Each property-based test finds about 50x as many mutations as the average unit test"
- "76% of mutations were found within the first 20 inputs"
November 8, 2025 at 7:31 PM
Reposted by Patrick Dubroy
Ever thought about writing #WebAssembly by hand? 🤔

Authors Patrick @dubroy.com and @marianoguerra.org think it's crucial for learning. They join #WasmAssembly host Thomas Steiner to discuss their ebook, "WebAssembly from the Ground Up" → goo.gle/3Ln67Pp
November 4, 2025 at 9:00 PM
Did you know that Microsoft MakeCode (a Scratch-like coding environment) supports a variant of TypeScript called "Static TypeScript"?

github.com/microsoft/px...

Also described in a 2019 MPLR paper: www.microsoft.com/en-us/resear...
October 31, 2025 at 8:58 AM
Reposted by Patrick Dubroy
jumpscared by my own research paper appearing halfway down this blog post
A blog post from last year, which I never posted here —

Bytecode VMs in surprising places
dubroy.com/blog/bytecod...
October 29, 2025 at 11:47 PM
Periodic reminder (since I apparently don't talk about it enough) —

If you are interested in a hands-on way to learn #wasm, check out the book that @marianoguerra.org and I wrote together!
Excited to announce the official launch of our online book, WebAssembly from the Ground Up! 🎉

It's the book we wish we'd had 3 years ago.

No messing with tools and frameworks. It's a hands-on guide to the core of Wasm: the instruction set and module format.

Link below. 👇
October 29, 2025 at 12:29 PM
Working on a diagram for an upcoming @wasmgroundup.com blog post.
October 29, 2025 at 10:24 AM
A blog post from last year, which I never posted here —

Bytecode VMs in surprising places
dubroy.com/blog/bytecod...
October 29, 2025 at 7:19 AM
Looking forward to this tomorrow!
This week the W3C WebAssembly Community Group is holding an in-person meeting in Munich.

We (@dubroy.com and @marianoguerra.org) are planning to be there. Patrick tomorrow, and both of us on Thursday for the Research Day.

If you see us, come say hi!
October 27, 2025 at 4:44 PM
If you're interested in UI frameworks/architectures, @raphlinus.bsky.social's writings on the evolution of Xilem (Rust UI toolkit) are an incredible resource: github.com/linebender/x...

Covers details basically all the modern paradigms/toolkits: React, SwiftUI, Flutter, Compose, ImGui, etc.
October 25, 2025 at 6:26 AM
I'm kinda surprised how hooks as a concept have taken off beyond React.

It's a clever solution with some nice properties, but…also kind of weird? Hidden state, and generally kind of hard to reason about and explain.
October 24, 2025 at 6:54 PM
An interesting development in the past 10–15 years is the co-evoluation of PLs and UI toolkits:

• JSX for React (then later other toolkits)
• Swift 5.1 added a bunch features for SwiftUI: www.swiftbysundell.com/articles/the...
• Kotlin's Composable functions: medium.com/androiddevel...
The Swift 5.1 features that power SwiftUI’s API | Swift by Sundell
SwiftUI brings a new, declarative way to build UIs for Apple’s platforms, and also pushes the Swift language itself to new limits — by making heavy use of a set of key new syntax features, that are be...
www.swiftbysundell.com
October 22, 2025 at 7:13 AM
ICYMI: @marianoguerra.org and I had a fun conversation with Thomas on the WasmAssembly podcast, all about our book @wasmgroundup.com.

You can watch it here, or find it wherever fine podcasts are sold.
📢 New #WasmAssembly podcast 🎙️ episode:
#WebAssembly from the Ground Up with @dubroy.com and @marianoguerra.org. Learn how they're teaching #Wasm by building a compiler in JavaScript and why writing Wasm by hand is crucial!

🍿 www.youtube.com/watch?v=dRdD...
🎧 wasmassembly.libsyn.com/webassembly-...
WebAssembly from the Ground Up with Patrick Dubroy and Mariano Guerra
YouTube video by Chrome for Developers
www.youtube.com
October 21, 2025 at 2:19 PM
Reposted by Patrick Dubroy
📢 New #WasmAssembly podcast 🎙️ episode:
#WebAssembly from the Ground Up with @dubroy.com and @marianoguerra.org. Learn how they're teaching #Wasm by building a compiler in JavaScript and why writing Wasm by hand is crucial!

🍿 www.youtube.com/watch?v=dRdD...
🎧 wasmassembly.libsyn.com/webassembly-...
WebAssembly from the Ground Up with Patrick Dubroy and Mariano Guerra
YouTube video by Chrome for Developers
www.youtube.com
October 20, 2025 at 6:22 PM
The "Inside Flutter" page from the @flutter.dev docs is a joy: docs.flutter.dev/resources/in....

Would love to see more libraries document their philosophy/approach and "what makes us different" like this.
October 20, 2025 at 5:12 PM
Thinking about fine-grained, reactive tree transformations…but *not* targeting the DOM.

Like @solidjs.com, but for arbitrary JSON output…does this exist already??
October 20, 2025 at 1:53 PM