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
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
Bjarne Stroustrup: "Subscripts and sizes should be signed" open-std.org/jtc1/sc22/wg...
November 12, 2025 at 5:35 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
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
Working on a diagram for an upcoming @wasmgroundup.com blog post.
October 29, 2025 at 10:24 AM
(Needed a thread here where I can post new examples!)

Dodrio (by Nick Fitzgerald) is an experimental virtual DOM library for Rust and Wasm. It uses bump allocation for the VDOM nodes and uses a stack machine language to represent change lists: github.com/fitzgen/dodrio
October 29, 2025 at 7:25 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
To be clear, I'm only talking about those 4 functions.

Take useContext, why do you say this doesn't involve hidden state?

And how is Provider/useContext not dynamic scoping? (Just using the standard trick to emulate dynamic scoping in a lexically-scoped lang, set and restore a long-lived var.)
October 26, 2025 at 7:58 AM
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
Hmmm, this paper from this year's OOPSLA looks interesting…

React-tRace: A Semantics for Understanding React Hooks
dl.acm.org/doi/pdf/10.1...
October 24, 2025 at 7:53 PM
Under the CLOUD Act, isn't the physical location of the servers irrelevant if it's a US company?

www.forbes.com/sites/emmawo...
October 23, 2025 at 11:03 AM
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
🤔
October 16, 2025 at 6:21 PM
DanielRosenwasser gets increasingly agitated
October 15, 2025 at 7:29 AM
This place is not a place of honor…
October 15, 2025 at 7:23 AM
TIL: [JS] Explicit resource management
github.com/pdubroy/til/...

Don't miss the getter trick! It's super helpful and not well-documented.
October 9, 2025 at 12:22 PM
Causal Separation Diagrams (CSDs) from "Inductive Diagrams for Causal Reasoning" by Castello et al (2024)

dl.acm.org/doi/pdf/10.1...
October 8, 2025 at 7:01 AM
I like this —

A case for learning GPU programming with a compute-first mindset: themaister.net/blog/2025/10...
October 7, 2025 at 2:37 PM
Been a big fan of mise for a while now, but now I discovered that it can replace make? *swoon*

mise.jdx.dev/tasks/task-c...
October 6, 2025 at 5:24 PM
TIL: WebAssembly library initialization patterns
→https://github.com/pdubroy/til/blob/main/js/2025-10-05-WebAssembly-library-initialization-patterns.md
October 5, 2025 at 2:51 PM
Man, I still really like a lot of the ideas behind @cuelang.org. (But I need to find a good excuse to use it properly to see how it fares in practice.)
October 1, 2025 at 12:42 PM
oooh, this looks super useful.
October 1, 2025 at 8:01 AM
But also
September 30, 2025 at 7:21 AM