Michael Nahkies

About me

I am a software developer from New Zealand, currently residing in London, United Kingdom. I work full time at Zoa as a staff software engineer across our platform group, driving towards an electrified future.

Before Zoa, I was at Bulb working on a variety of products such as smart (meter) usage charts, elective half-hourly settlement, carbon calculator, EV tariffs, and EPC insights.

Prior to this I had been working as a development team lead at Verizon Connect (formerly Telogis), responsible for their Hours of Service / Electronic Logging Device offering.

I'm a Linux enthusiast, starting with Ubuntu CD's in the post, painstakingly downloading Debian ISO's over dial-up, and now favouring Fedora for its similarity to server distributions I tend to interact with.

Find Me

Notable (Opensource) Projects

OpenAPI Code Generator

A CLI tool that aims to generate high quality typescript client SDK's, and API server scaffolding (routing, validation, serialization) from OpenAPI 3 specifications.

It's particularly good at generating validation and routing boilerplate for Koa based backend services. For client SDKs it does a great job at generating Fetch or Axios based approaches. Either zod (recommended), or hapi/joi can be used for runtime validation.

Currently, OpenAPI 3.0, OpenAPI 3.1, and TypeSpec are supported an input specifications.

Shoe String Server

A collection of scripts for running a bunch of services in docker on a budget. Handles TLS termination using HAProxy, and supports internal services available over Wireguard VPN as well as public services. Metrics are collected using Prometheus / surfaced in Grafana. This website is served using it.

One day I'll probably move my personal hosting across to kubernetes, but until then I find this works great.

ng-qrcode

A simple angular library to make it super easy to render qrcode codes in your angular applications.

node-scim

At a very early stage of development, but intended to be a pluggable and flexible SCIM client implementation.