About Me

I'm one of those people who genuinely loves technology.

As a kid I took things to bits to see how they worked - telephones a speciality. Thankfully, with time, "see" became "understand", "fix" became "improve" and taking an active role in technological innovation became a central theme of my life. This is what I do now...

I make new things, mostly in software.

In 2015 I started investigating the various container ecosystems and found SmartOS (an Open Solaris derivative) to be a great substrate for container deployment. Since then I've been solving the practical problems with containers, security and deployment ... and now have an MVP for a container hosting service with commercially licensable source code.

It turns out that this is quite a lot of work. Who knew?

Past engagements, projects and pastimes include voxel and particle databases for Weta Digital; using OpenGL to put the weather on TV; And a kids' gameshow; Winning a hackathon; Writing prosumer software for the mac; Twice; Being CTO in a venture funded startup; Some time obsessed with video compression; Some time obsessed with load balancing; Working as a Solution Architect; Running an outsourced development project; and at some point I probably had a job.

Tell me about

What's your current skillset?

A backend technology stack and decades of experience.

Where have you worked and what on?

Experience. It's not very ... linear.

A digital footprint

Rantings, ravings and the occasional fact.

Skillset

20ft runs as a client/broker message passing system with a central event loop.

Python 3 with multiprocessing and subprocesses.

I started with Python a few years ago for it's clarity, portability and the need for rapid iterations. When used with ZeroMQ it proves surprisingly fast and resilient to various forms of network failure; security is through pre-shared asymmetric keys implemented by libnacl ("lib salt") with each user's connection being encrypted in a separate process; and subprocesses are used to provision resources from the operating system. The central loop is single threaded - preventing a whole class of errors - and asynchronous io is provided by ZeroMQ.

SmartOS is an open source container OS/Hypervisor developed and maintained by Joyent, Inc who have been using it to host their bare metal IaaS since 2010. I've been working with it for as a daily use OS and have had at least one container live since November 2015.

Zones and Linux compatible containers.

Zones are a secure kernel level virtual machine. Software running with a zone is presented with it's own 'private' view of the kernel including IP stack and filesystems, and is unaware of the existence of any other zones. Zones are constructed with a wide variety of resource controls and are observable from the global zone. They have an extremely low overhead and enjoy bare metal performance. An "lx" zone presents a kernel interface identical to 64-bit Linux and as a consequence can run Linux binaries - all the way through to an entire distribution.

I've worked with Zones almost exclusively using the 64-bit Linux variant, paying particular attention to using the low level 'zonecfg' and 'zoneadm' infrastructure and dealing with the necessary conversions from a collection of Docker layers to a zone bootable image. I'm also capable with the higher level 'vmadm' style.

ZFS.

ZFS is a truly next-generation filesystem. It successfully abstracts out concepts such as blocks and volume managers in exchange for a disk pool that can be trivially expanded while on-line. ZFS is a journaled filesystem, obsessive about end-to-end validation, reconfigurable 'on the fly' and able to create both entire filesystems and snapshots at almost zero cost.

I have used ZFS to create a hierarchical file system to emulate Docker layers, with relevant metadata stored as a properties of the filesystem itself. User volumes are also ZFS, leading to snapshot and rollback being simple and fast operations.

I'm good with IP networks... particularly due to time spent with load balancing and network video I have a broad understanding of the entire ecosystem; and an unfortunately large understanding of its failure modes.

Crossbow networking.

Crossbow is a powerful virtualised network architecture similar to a mature router OS. At layer 2 it can use all the more common techniques - tunnels, aggregations, vlans etc, and where applicable will route hardware queues and apply bandwidth restrictions. Layer 3 presents the usual variety of routing and nat techniques with two stateful per-container firewalls - one controlled from the global zone and one from inside the zone itself.

My work with crossbow has been primarily as an enabling technology for IP-per-container.

I've done significant work with algorithms. This has included the development of video compression, sparse data storage and beat detection technologies. Making code fast is very much in my toolbox.

Compiled Languages, C/C++, Objective-C and GLSL.

I've used C++ since the mid 90's and am fluent with the 'core' of the newer technologies such as the standard library, boost and auto variables. I've also used it to write plugins for Maya and to render 3d scenes. Similarly I have used GLSL to perform light on-gpu compute requirements including colour space conversions and high order interpolations.

Objective-C has until recently been a necessary tool for writing Apple software and I have worked on four green field Apple projects in the professional/prosumer space. It also presents a unique mix of static and dynamic languages.

Plus the usual: Capability with postgresql, bash and small hardware projects. I have a wider-than-usual view of the technology industry in general and experience with project and stakeholder management.

Experience

A word about this timeline: For much of my career I have worked for a company, often mine, but have done work on behalf of another. Similarly MixTape was a full time project that became part time (and led to spinoff work) and some smaller projects have been omitted completely. This timeline is thus not exactly linear and describing it as such is something of a challenge...

10.2015 -

20ft.nz - Container Infrastructure Provider.

20ft is a reaction to the current complexity of container infrastructure. As a multi-tenant infrastructure it's able to instantiate containers without first creating a VM cluster; uses SmartOS as it's underlying hypervisor, eliminating address translation problems and providing greatly enhanced security; supports physical location as a first class object and has a Python SDK to provide agility where traditional orchestration solutions create a static deployment. Early applications are for the testing, CI/CD and fintech sectors. It currently available on an invite only basis.
01.2009 -

Atomic Droplet - Independent Software Vendor.

I develop, support and publish MixTape, an elegant and 'prosumer' centric music mixing application. Initially for sale through a home grown ecommerce facility, it's now for sale through the Mac AppStore and I participate in various co-marketing arrangements. A portion of the codebase was also licensed to a third party.
03.2015 - 06.2015

SilverStripe - Senior Solution Architect

My job description was extremely broad, but my time with SilverStripe was split between: acting as a 'first touch' technical contact for new clients; working with the account management team on writing proposals; and I joined a scrum team for an entire (but short) project.
11.2014 - 02.2015

Fronde - Solution Architect

I primarily worked with a client creating an HA backend using the Microsoft stack. The project was made more interesting by a broad definition of data and an agile approach towards its use.
06.2013 - 09.2014

Metra Weather - Software Engineer (C++, GLSL)

I maintained and enhanced Weatherscape XT, a live graphic solution for media industries across several counties including the UK, Korea and Thailand. I worked mostly with geometry, frame delivery and software architecture.
01.2011 - 09.2013

Weta Digital - R&D Software Engineer (C++)

For Weta I developed a voxel database and interpolation framework with storage requirements into the billions. I am credited as an R&D engineer for TinTin and The Hobbit.
01.2008 - 10.2008

shinywhitebox - Software Developer (Objective-C, GLSL)

I developed an OpenGL capture and compresson pipeline for live compression of HD streams.
02.2007 - 12.2007

Atomic Droplet - Self-Serve Advertising Venture.

Atomic Droplet was originally formed to create an internet advertising service with a unique reverse auction model. An early 'ajax' application, the technology worked but was not commercially successful.
09.2005 - 09.2006

Virtual Katy - CTO.

Initially bought in to help with raising venture capital, my previous company was acquired (for stock) and I became the company's Chief Technical Officer. We developed software that was the undoubted leader in it's niche and we were awarded the PAR Excellence Award. The company was eventually acquired by a group in Singapore.
12.2003 - 06.2004

Kiwa International - Outsourced Development.

My company was the sole provider of technology services for the VoiceQ ADR product. We ran the project from whiteboard to delivery including hiring contract staff from overseas. The software won a Hollywood Post Alliance Special Recognition Award for Engineering Excellence and my clients were honoured as Maori Innovation Icons. Development continued on an 'as needed' basis until 2009.
05.2002 - 07.2005

Periscope - h264 video conferencing development.

I created an R&D project to investigate the use of the (then new) h.264 video compression protocol in video conferencing. Despite having the only realtime software encoder in early 2003, efforts to commercialise the technology into the education sector failed.
09.2002 - 06.2005

Periscope - network infrastructure consulting.

I performed an independent comparison of 2G mobile data networks; and maintained infrastructure for CreativeHQ and Medialab South Pacific.
10.2000 - 05.2001

Afterswish - network load balancing.

My company created some load balancing IP which was eventually acquired by Allied Telesis for deployment in Japan.
02.1994 - 10.1999

Work in the UK

My early career consisted of my first company; work with C++ and MFC; some algorithm development and a short but instructive time working for Cable and Wireless.