Product manager and maintainer. Melbourne, Australia.
I spent seventeen years at Oracle working on Linux and cloud products, and I now build and ship things on my own. Most of it comes back to the same idea: hardware that depends on somebody else's cloud should still work on your own network.
That started in 2013 with a library for a connected light called Moore's Cloud, which did not outlive its Kickstarter. It picked up again in 2020, when I reimplemented LIFX's cloud-only Day & Dusk transitions to run on a LAN. Today I am the sole code owner of the LIFX integration in Home Assistant, and I maintain two of the three Python libraries it depends on.
A colour-by-numbers iPad app for adults, free on the App Store with an optional ad-free subscription. I do all of it: product, the native Swift and Metal client, the Python backend, the AI-assisted artwork pipeline, cloud infrastructure and go-to-market. Over 300 published bundles drawn from a bank of 2,355 subjects, with more than 90% of generated artwork going straight to publication.
Local network control for the full LIFX product range, in Home Assistant core. I am the sole code owner, and I maintain two of the three Python libraries the integration pins.
A typed async Python library that collapses the integration's three dependencies, protocol and effects and themes, into one. The library it replaces still targets Python 3.4. LedFx has already migrated its LIFX support across and now runs it against the optimised animation engine. The equivalent Home Assistant pull request is open and under review.
A LIFX LAN protocol and light emulator, so the above can be tested properly without owning one of every bulb LIFX has ever made.
Applies colour themes to LIFX lights, and one of the libraries the Home Assistant integration pins. Around 59 releases since 2022, published through CI with signed build attestations.
The LAN protocol library, originally written by François Wautier, who remains a co-maintainer. The version Home Assistant currently pins is one I shipped.
Separate uplight and downlight control for LIFX Ceiling in Home Assistant, which the core integration treats as a single light.
Where the LIFX work started. LIFX shipped Day & Dusk colour temperature transitions as a cloud feature, so this reimplemented them to run on your own network in a container. Everything above is downstream of getting annoyed at that.
If you use Oracle Cloud DNS to answer ACME DNS-01 challenges, you are probably running something I wrote. I ended up writing it four times, in three languages, because each ecosystem needs its own provider and nobody else had done it.
The OCI DNS provider for acme.sh, contributed in 2021 and still maintained. The most recent fix landed in July 2026.
Record management and zone listing for OCI DNS in libdns, plus the Caddy module that wraps it. Supports API-key and instance-principal authentication.
Written because every other OCI plugin for Certbot supported API-key authentication only, and I needed instance-principal and resource-principal. Currently alpha.
I wrote the original OCI provider for Lexicon in 2021. The project's own maintainers have looked after it since.
My first IoT library, written for Moore's Cloud, a Melbourne-made connected light that did not last long past its Kickstarter. I have been writing libraries for other people's lights ever since.
There are also ESPHome components for a couple of inertial sensors, a pile of Homebridge plugins that each scratched one itch, and a SignalRGB plugin for NZXT coolers that the core project made redundant about a month after I wrote it. They are all on GitHub if anyone needs them.
23 posts from 2012 to 2021, mostly Oracle Linux, containers, HomeKit and LIFX. Some of the older ones I have marked obsolete where the tools or the links moved on. Read the archive.