Consulting

Contract work from New Zealand

I take contract work in compilers, chip design, legacy modernisation, and the kind of software that nobody else wants to touch.


What I Can Do

Chip Design for Hardware That No Longer Exists

If you have a processor that went out of production thirty years ago and your supply chain is running on whatever stock is left in a warehouse somewhere, I can take the original specification, implement it in SystemVerilog, synthesise it to open PDK silicon, and hand you a fabrication-ready design. The Voyager FDS flight computer fits in 58 gates on SKY130. The Minuteman guidance computer fits in 231. I have done five of these now, across four different foundry targets, and the toolchain is my own.

This matters to defence, aerospace, museums, and anyone maintaining systems that depend on chips nobody makes anymore. I can design it, synthesise it with Takahe, place and route it through OpenROAD, and deliver a layout you can send to a shuttle run. The whole pipeline is open source and vendor independent.

Compilers and Language Tooling

I build compilers from specifications. Military standards, language reference manuals, architecture documents. JOVIAL from MIL-STD-1589C, Fortran 77 from the ANSI standard, CUDA from the AMD ISA reference. If a spec exists I will read it, and if a spec does not exist I will find the closest thing and work from that. I also build language servers for languages that predate the concept of syntax highlighting, which is a niche that turns out to be surprisingly populated.

Legacy Modernisation

I modernised the SLATEC Common Mathematical Library, a 168,000-line Fortran 77 codebase from the US national laboratories that quietly underpins half of scientific computing. Eliminated all 8,296 GOTOs, restructured the control flow into modern Fortran 2018, and verified the results against authentic 1966 IBM FORTRAN G compilers running on emulated System/360 mainframes, because the original code targeted IBM hexadecimal floating-point and you cannot verify faithfulness to the original mathematics without testing on the original arithmetic.

I have also done this commercially, extracting business logic from spreadsheet macros that had been running critical operations for years, and resurrecting legacy codebases that had outlived the people who wrote them. If you have a codebase written in Fortran, COBOL, HLASM, PL/I, or something else from the era of punch cards and 80-column lines, and it needs to be brought forward without breaking the mathematics or the business logic, that is something I have done and can do again. I am also a core contributor to z390 and I built MPB, the package manager for mainframe languages.

GPU Software

I wrote a CUDA compiler from scratch that targets AMD, NVIDIA, and Tenstorrent hardware. If you need GPU kernels compiled without vendor lock-in, or you have custom hardware that needs a compiler backend, that is a conversation worth having.

Toolchains for Hardware Too New to Have One

The mirror image of resurrecting dead silicon is bootstrapping new silicon. When you tape out something genuinely novel, an accelerator, a custom core, an instruction set nobody has built tooling for yet, the hardware almost always arrives before the toolchain does, and your software team ends up hand-writing instruction words inside macros or editing YAML by hand because there is no assembler to lean on. I build that assembler. I wrote TTAS, the only standalone assembler for Tenstorrent's Tensix engine, working from their own instruction definitions, because assembling a single Tensix instruction otherwise meant dragging in a C++ toolchain and the entire tt-metal tree just to set eight bits of opcode.

From an instruction set reference I can give you an assembler, a matching disassembler, and a compiler backend that emits real machine code for your part, so the people writing kernels have something solid to stand on instead of encoding bitfields by hand and hoping. This is the same work as the GPU backends above, pointed at whatever you have built rather than at hardware that already ships with a vendor stack.

Obscure and Undocumented Systems

If you have a system running on something nobody else has heard of, I am probably interested. I have worked with Burroughs Extended ALGOL on Unisys ClearPath MCP, Tandem TAL and TCF, IBM mainframe assembler going back to System/360, HAL/S from the Space Shuttle programme, JOVIAL from the US Air Force, CMS-2 from the US Navy, CORAL 66 from the British military, and CHILL from the ITU. I recently wrote a string handling library for Burroughs ALGOL because the Unisys people have been writing their own trim procedures since the 1960s and it was time for that to stop.

If your system runs on a language that does not have a Wikipedia article, or the documentation is a photocopied manual from 1974 that someone scanned at an angle, or the only person who understood it retired fifteen years ago, get in touch. I will find the documentation, read it, and build whatever tooling you need, whether that is a parser, a language server, a migration path to something modern, or just someone who can tell you what the code actually does before you decide what to do with it. That is genuinely what I enjoy doing the most.


How I Work

Primary sources. If there is a specification, I read it. If there is an architecture manual, I implement from it. If the documentation is in a filing cabinet in Kansas, I send an email and wait for the renovations to finish.

I am one person. You talk to me, I do the work. I am selective about what I take on, but what I take on gets my full attention.

On the commercial work I have delivered on time and under budget, and the clients have come back with new scopes. That is the whole of my marketing.

This work is also my hobby. My day job is in finance. I build compilers and emulators and chip design tools because I find them genuinely interesting, which means I am not taking your project because I need the money. I am taking it because the problem is worth solving. That tends to produce better results for everyone involved.


Charities and Non-Profits

If you work in the charity space and need help, please reach out. I actively volunteer my expertise to a few organisations already. Museums, archives, educational institutions, healthcare charities, community religious organisations, humanitarian organisations. Depending on the ask, I may be able to help for free or at reduced cost.

Those language servers exist partly because syntax highlighting is a human right, even for languages that predate it.


Get in Touch

zanehambly@gmail.com

GitHub