Shaun · Open source in Rust, Go and JavaScript Small tools
that do one job well.

Full-stack technology leader with 25+ years of experience evolving alongside the software industry. A veteran architect and former R&D Director who remains deeply hands-on with emerging technologies, specializing in scalable systems, high-performing engineering cultures, and the design and orchestration of AI agents and agentic workflows to accelerate delivery and amplify team capabilities.

$ ls ~/projects
beanstalkd-rs     rust   work queue
simpleconf        go     config server
alpinejs-router   js     web router
$ 

What I'm building

  1. Rust

    beanstalkd-rs

    The same work queue. Rebuilt in Rust.

    A drop-in replacement for beanstalkd. Byte-for-byte protocol compatible, so existing clients work unmodified, with TLS, metrics and optional Raft replication built in.

    2.2×
    throughput with a binlog
    222
    differential test cases
    $ cargo install bstkd
  2. Go

    simpleconf

    One JSON document. Every service reads it.

    A configuration server for feature flags, endpoints and limits. Services read and write paths such as product.name over HTTP or TCP. Append-only file, optional Raft cluster.

    1.02M
    HTTP GET/s at 200 connections
    10 ns
    keyed read
    $ docker run -p 23456:23456 shonhen/simpleconf
  3. JavaScript

    alpinejs-router

    Routes in your HTML. Alpine renders them.

    A client-side router for Alpine.js. Declare routes with x-route templates and x-link anchors, with dynamic params, external templates and hash or HTML5 history. No dependencies besides Alpine.

    3.2 kB
    minified and gzipped
    6.25M
    static route matches a second
    $ npm install @shaun/alpinejs-router