Nullify
Rebuilt the frontend for Nullify's AI security platform (470 components, initial payload halved), and cut Go and Python service startup times.
Full-stack product engineeringSoftware engineer / hardware tinkerer
I’m a full-stack software engineer: five years at Canva, now the primary owner of Nullify’s rebuilt frontend. I also design and build hardware, from custom circuit boards and processors to robots and embedded systems.
In progress Four legs, many revisions Robot dog An articulated BLDC quadruped brought together through custom controller electronics, wiring, an aluminium frame, and mechanical adaptations—built on an open-source 3D-printed design. Open project →
Bench testing Custom motor controller A compact STM32-based BLDC servo controller with magnetic sensing, CAN-FD, and a custom bootloader path. Open project →
In progress E-paper smart watch A custom round smartwatch built around a 1.1-inch e-paper display, Bluetooth MCU, sensors, charging, and power management. Open project →
Built / continuously revised LED clock A large networked HUB75 clock that grew from a bleeding low-resolution prototype into a polished clock, visualiser, and animation surface. Open project →
Wireless light gun An OpenFIRE-based light gun with ESP-NOW, a dedicated wireless dongle, on-device display, and printed enclosure. Open project →
Single-key keyboard A complete keyboard with one key, built around a tiny custom round circuit board. Open project →
Brother cartridge emulator A hardware and software investigation into the proprietary cartridges used by older Brother embroidery machines. Open project →
Sand table A kinetic coffee table that moves a hidden magnet to draw slow, geometric patterns through sand. Open project →
Moon lamp A large illuminated lunar globe on a custom printed stand, because ordinary lamps were apparently solved already. Open project →
Ethereal ink frame A framed e-paper display for generated artwork: quiet, persistent, and a little uncanny. Open project → 
Flare-On Four years of reverse-engineering challenges, suspicious binaries, and physical medals.
Open project →02 / FreeCAD 8 pieces
Mechanical wallet A printed card wallet whose thumb slider fans five cards out in a staggered cascade, with a rear door for notes and coins.
Open project →03 / 2019—2024 *
/o\
/@*o\
/o**@*\
/_*_o_*_\
||
2019 — 2024 Advent of Code Several years of puzzle solving across Python, Kotlin, Go, and Nim.
Open project →04 / AI inferencePR #46 · src/sd.cpp - int dim = sdxl_params ? 128 : 64; + int dim = turbo ? 64 : 128; + if (turbo) return denoised_cond; - float delta = -999.f / (step - 1); + float delta = step > 1 ? -999.f / (step - 1) : 0.f;OnnxStream / SDXL
Contributed Stable Diffusion XL and SDXL Turbo support to a tiny inference engine that runs on a Raspberry Pi Zero 2.
Open project →05 / CUDA 1 piece
Split seed and tree computation into separate CUDA kernels, more than doubling performance and making the search practical.
Open project →06 / Blender 3 pieces
FTL ship models Printable Blender models of the Kestrel, Rebel Flagship, and Stealth Cruiser from FTL.
Open project →07 / Repair 4 pieces
Nintendo DS repair Hot-air connector replacement followed by a full screen, touch, and audio test.
Open project →08 / Assorted 19 pieces
Side quests Internet-controlled blinds, reactive TV lighting, infrared photography, clocks, kitchen assistants, and assorted bench experiments.
Open project →Rebuilt the frontend for Nullify's AI security platform (470 components, initial payload halved), and cut Go and Python service startup times.
Full-stack product engineeringRendered Magic Design previews by adapting the editor's canvas renderer, built the frontend for a RAG prototype, and redesigned Marketplace search filters.
Software engineering / AI productsBuilt an internal Google Maps feedback tool, then ported Neighbourly to KaiOS/JioPhone within a 512 MB memory ceiling and wrote the team's first porting specification.
Software engineering internships
Built ASP.NET MVC and Angular applications, then took ownership of Angular projects and their Protractor test infrastructure.
Full-stack software engineering
Led software for a 50 kg competition robot, built and tested under the traditional six-week deadline.
Lead software developerFollow the builds, browse the half-finished experiments, or open an issue when I have wired something backwards.
The rest of the workbench
19 media itemsSmaller builds, repairs, experiments, and ideas that do not need a dedicated project card to be worth showing.
This drawer includes internet-controlled blinds, reactive TV lighting, infrared photography, air-quality clocks, a mechanical segment clock, and kitchen-assistant experiments.
An internet-connected motor assembly built to automate a set of window blinds.
A workbench snapshot of the electronics, fabrication tools, and experiments in progress.
Soldering, crimping, and prototyping tools gathered for a run of small builds.
A Raspberry Pi HDMI capture setup driving reactive ambient lighting behind a television.
The reactive TV-lighting controller during wiring and soldering.
Infrared photography captured with a camera converted for full-spectrum imaging.
A second infrared study from the full-spectrum camera conversion.
An alternate infrared filter revealing a different balance of foliage and sky.
Full-spectrum camera testing with a second infrared lens and filter combination.
A further infrared composition used to compare converted-camera filters.
The ESP32 schematic for the air-quality clock and sensor interface.
The main project bench, tool storage, and active electronics workspace.
An ESP32 kitchen assistant combining animated clock faces with voice-triggered queries.
The sensor, display, and controller wiring inside the air-quality clock.
The assembled air-quality clock running on the bench.
Hyperion matching the surrounding LED strip to the television image in real time.
A mechanical segment clock advancing its motor-driven display by one minute.
The kitchen assistant cycling through its ported Dwitter animations.
A voice-triggered kitchen query demonstrated on the ESP32 assistant.