WebAssembly at the IoT Edge: A Motivating Example

In a previous article, I shared my excitement for WebAssembly in the context of the Internet of Things (IoT). I am particularly excited about the potential for sharing code, flexibly and securely, between the cloud and the edge. In this article, I provide a motivating example. A Traditional Approach Consider…

Why Am I Excited About WebAssembly?

WebAssembly, commonly abbreviated as Wasm, is a portable binary intermediate language that can execute on different platforms in a virtual machine. The intermediate language is compiled, either just-in-time (JIT) or ahead-of-time (AOT), to the machine code appropriate for the architecture. Many programming languages compile to WebAssembly, including C, C++, C#…

Our Transition to Renewable Energy: Motivating the Most Challenging Problems in Distributed Computing and IoT

I am hoping to attend the 19th International Workshop on High Performance Transaction Systems (HPTS) in October, 2022. I am sharing my one-page position statement and biography in the hopes that it might inspire others, even if my application is unsuccessful. If you are motivated to work on these challenges,…

Cancer: A Twenty-Year Reflection

Twenty years ago, I was diagnosed with cancer. I’m not one for marking anniversaries just to count the years, and I generally don’t celebrate myself as a cancer survivor. However, I have always been open about having cancer, and given a number of things going on in my…

Engineering Management: Three Books and Three Videos

I declined a number of opportunities to lead a team because I knew the role demanded an enormous change from that of an engineer. I still wanted to be solving technical challenges, in a state of flow, for hours a day. Equally important, I wanted to build a team with…

Masking the Problem: Representing Complex State Without Strings

A number of factors have contributed to the widespread use of strings for representing complex information in computing. HTTP, a text-based protocol, and HTML, a text-based mark-up language, became the foundations of the Internet. JSON, which is essentially a formatted string of keys and values, became ubiquitous for HTTP APIs…

Version Too

A joke is not funny if you have to explain it, but this essay is my attempt to explain a joke: a joke that appeals to my sense of humour, but a joke that also serves an important lesson in evolving software platforms. Sounds Like Two For over a decade,…

Twitter: A Love-Hate Relationship

There is no question that modern life carries burdens incompatible with the brains we have evolved … “In a species that’s designed to live in groups of fifty to seventy, living in a group of several billion is just hard on everyone.” —Andrew Solomon quoting Randolph Nesse in “A Noonday…

The State of the Art for IoT

This article expands on my talk Reactive Systems: The State of the Art for IoT from Reactive Summit 2020. The term “Internet of Things” was coined by Kevin Ashton in 1999. After a lot of hype, we are finally seeing it come to fruition, in part due to advances in…

Kubernetes Startup Probes: Getting Your Feet Under You

Kubernetes liveness and readiness probes can be used to improve the reliability of a service. If they are not used with care, however, they can do the opposite, and degrade the reliability of a service through subtle, unintended consequences. I wrote a three-part series on how to avoid "shooting…

Love

Perhaps it has always been this way…