zigxll: building Excel XLL add-ins in Zig

The Excel C SDK dates from the early 1990s. Memory management is manual, the type system is painful, and there’s almost no tooling. Despite all of this, it remains the only way to build add-ins that run truly in-process with Excel, supporting multi-threaded recalculation and the full breadth of what the host application can do. If you want the best possible performance, you need an XLL. But it’s a foot gun....

March 10, 2026 · Alex Reid

xllify is here!

Excel is the original rapid application development tool. People do unholy things to get the job done with no code, or perhaps with just a smattering of VBA. These solutions can be brilliant in the moment but, long term, tend to end up brittle and hard to extend. Over the years there have been many approaches for extending Excel beyond formula soup and VBA. There is the excellent Excel-DNA, PyXLL, Microsoft’s own Office....

February 20, 2026 · Alex Reid

From prompt to Excel custom function in 30 seconds

xllify is a platform I’ve released for creating custom Excel functions by describing what you need or pasting some existing formulas or VBA. The resulting functions get packaged into a ready-to-deploy Office Add-in for all versions of Excel, as well as an optional-extra native XLL build for Windows. Right now you can write your prompt for your functions in a browser or Excel add-in to iterate, debug and even manually code....

February 17, 2026 · Alex Reid

NATS as a web application backend

I have used NATS on various projects over the years. It provides a high performance transport layer than can be used to connect applications and services. If you haven’t already heard of it, this video is a fantastic primer. NATS supports websocket connections. nats.ws runs in browsers. This means we can directly use NATS as the backend for browser-based applications that need to display realtime streams of data. Why is this interesting?...

May 14, 2023 · Alex Reid

DynamoDB pagination with page numbers in URLs

Back when we all used SQL databases, it was common to paginate through large result sets by appending LIMIT offset, rows per page to a SELECT query. Depending on the schema, data volume and database engine, this was inefficient to varying degrees. On smaller result sets and with the right indexes, it was… posssibly OK. On larger result sets, the high page numbers would get progressively slower. Databases like DynamoDB prevent this inefficiency by handling pagination differently....

October 27, 2021 · Alex Reid

Squeezing ClickHouse into Cloud Run

Here is one of my bad ideas that was nevertheless fun to think through. I am not suggesting you actually do this for anything serious. Really, I’m not. Serverless data technologies already exist. The idea I really like ClickHouse. Compared to the expanse of complex software in the big data space, it’s refreshing to run a single process. Although not without its foibles, it’s very fast and versatile. Running it on Cloud Run is likely a bad idea....

January 23, 2020 · Alex Reid

Driving an OLED display with a Raspberry Pi and AWS IoT

This project started when my son asked me for a replica train departures board for Christmas. I thought this was a great idea and this looks to be a really neat implementation, but I wanted us to have a go at building one ourselves. I promised that if we failed miserably I’d buy him one! After getting some off-the-shelf code up and running, I wanted to rethink the software. The resulting code is available on GitHub....

December 19, 2019 · Alex Reid

There's no shame in code that is simply good enough

Back in my early teens when I started developing what could loosely be called software, I didn’t know what I was doing. If it compiled, ran and produced mostly the expected results, then the job was done. As a new programmer, I was immensely productive. Of course, problems came when it was time to fix bugs or extend the software. It was often easier to just start again than to try and understand the rat’s nest of poorly structured and unintelligible code....

November 21, 2014 · Alex Reid