Assembling Me
I build compilers, WebAssembly runtimes, programming languages, and developer tools. I write about optimization, WebAssembly GC, fuzzing, code generation, runtime design, and the problems I find while building them.
What I’m building
One set of tools, from source code to system calls
These are separate projects, but they meet at the same boundary. Dewdrop produces WebAssembly GC. Starshine works on WebAssembly modules. Wago runs them. Facet gives guests access to host services. Stage Left explores isolated processes. as-harness tests code across replaceable WebAssembly hosts.
Runtime
Wago
Compiles WebAssembly to native code and runs it from Go, the CLI, or standalone executables.
Language
Dewdrop
Compiles the Dew programming language directly to WebAssembly GC.
Optimizer
Starshine
Parses, validates, transforms, fuzzes, and optimizes WebAssembly modules.
System interface
Facet
Defines system calls for Memory32, Memory64, multi-memory, and WebAssembly GC data.
Process model
stage_left
Explores actor-style processes, links, signals, and typed messages for Core WebAssembly.
Testing
as-harness
Runs AssemblyScript tests through deterministic, replaceable WebAssembly hosts.
I use this site as an engineering record. Project pages describe the current design. Older articles remain dated snapshots, with update notes when the project has changed in an important way.