michaelhelvey.dev

Blog

My reflections on programming, what I'm working on in open source, or what I'm learning about at the moment.

May 17, 2025 · 4 min read

Programming without ego

Reflections on building things for fun

Once, when I was in highschool, I was convinced that I wanted to become a writer, a great writer of fiction. Art, you know, none of this low-brow pulp fiction full of excitement and action. I wanted to plumb the depths of the human soul with my fiction, like Dostoevsky, or Faulkner, or perhaps Stein...

Read More
April 23, 2023 · 48 min read

Writing an Async Runtime in Rust

Learning async Rust in depth by building a simple runtime from scratch

If you’ve used Rust to build anything for the web (or anything that needs to talk to something else over a network), more than likely you’ve encountered async / await syntax. You’ve probably had to install an async runtime (more than likely tokio ). Most of the time, things like tokio d...

Read More
November 29, 2022 · 6 min read

Table-Driven Development

Use table-like datastructures to express your code as data and limit error-prone logic.

Have you ever written code that looked like this? enum Foo { first = 'first', second = 'second', third = 'third' } /** * Given some string, determines what kind of "Foo" it is. */ function classifyFoo(value: string): Foo { if (value === 'foo') { return Foo.first } else if (value === 'bar'...

Read More
September 10, 2022 · 4 min read

Testing Node.js APIs with Microtest

Microtest 2.0 is a utility library for integration testing Node.js applications

Microtest was born from the desire to test my Node.js APIs the same way that they would be consumed by clients: by making real HTTP requests to a real server. I believe that tests are most effective when they most closely resemble the way the software will ultimately be used, and for an API, that ...

Read More