More than 25 years of experience in web development, through multiple languages, platforms and libraries.
Extensive experience with frontend and backend development, including HTML, CSS, React, JavaScript, TypeScript, NodeJS, Golang, PHP, Postgres, MySQL and others.
Web3 development, including smart contracts, dApps, and more. Web3 integration with existing smart contracts. Auditing and testing of existing smart contract projects. Tokenisation of Real World Assets and implementation of NFTs.
Development of blockchain projects in Solidity, DAML, and Hedera Hashgraph.
Highly skilled technical writer with a focus on web development aimed at newer developers. As well as writing for documetation of projects and processes in a commercial sense also run a successful Medium account for many years on a variety of mostly development-related topics, with regular readers and tens of thousands of views.
Active networking and professional profile building has not been a strong preference for me. I prefer to build than to post. However, my LinkedIn profile is a good summary of previous work history and experience. It shows a range of projects and experience, and is a good summary of what I have done. It also includes the specific skills and technologies I have used in a commercial sense.
For more direct or portable information, you can view my resume in PDF format in the link below.
Profile includes a collection of repositories and projects. Many of these are proof of concept or tech tests, or investigatinos of new libraries or languages. There are projects in JavaScript, Golang, Rust, and Elixir, covering many years of active development.
I have been writing on Medium since 2016, and have published nearly 70 articles on a range of topics, including web development, blockchain technology, and software engineering. There is a focus on more opinionated best-practices and JavaScript development. This is primarily because of the impact of JavaScript in web, especially to a less experienced audience. However, I have additionally written on database normalisation and design, and similiarly "backend" oriented topics.
A command-line tool to generate the component boilerplate for React components.
Promotional and documentation website features a hand-drawn svg character with detailed rigging and animation that will be extended over time.
Solidity smart contracts represent the board state and enforce game mechanics. Resources are handled using the IEP-1155 multi-token spec. The application is scaffolded and extensively tested using Foundry.
The overall design is based on mathematical Graph Theory, making each settlement location a "node" and each hexagon side an "edge". Frontend is currently under active development, and is a simple React application to view board state.
Written in Golang for performance and concurrency. The database is a hybrid between Postgres for standard relational data and TigerBeetle, a high performance transaction mechanism with built in double-entry storage and logged balances. It is deliberately missing key systems, such as a "hot wallet" and integration with RFQ providers for swaps. There are also no rules around fees.
Frontend is a simple NextJS application intended to demonstrate the functionality of the backend.
Commercial production cryptocurrency trading platform. My primary contribution was the development of the base platform for V3, an upgrade to add Tailwind, TypeScript, and NextJS support. This is achieved with a unique design system integrated into a custom component library, accompanied by comprehensive StoryBook component documentation and more than 4,000 unit and integration tests.
Yield App went into liquidation in July 2024 and its source code is not open. I have created a demo version for review. Note that this will show a number of console errors.
Blockchain-based water trading system for publicly traded water schemes. I was responsible for the development of the vast majority of the code, backend and frontend, and also a comprehensive rewrite of all Solidity smart contracts. Also implemented a unique backend architecture creating an Event Sourcing for Ethereum pattern.
It's come to my attention recently that Map, Set and set in particular are often seen as just Array and Object with… fancy. Let's dig more into them and see why they're more than that.
As frontend developers we often thing of security as a somebody-else problem. It's true that the bigger issues are tackled in the backend, but as frontend developer there are specific concerns that we need to be aware of.
I've been working with NextJS for a few years now, and the more I've used it, and in more contexts, the clearer it has become that NextJS has a major issue.
And why you should too. Tailwind has quickly become the dominant way to style UIs. But with success comes the inevitable backlash. Tailwind seems to be getting some pushback lately, so I thought I'd tackle it directly.
Developers don't much like “process”, and Agile has become a bit of an industry punching bag. Here's why memes shouldn't be your guide to good software practise.
Well this is awkward. Just as I was finishing and publishing a video on why to use React Hook Form instead of React, React 19 comes out with a massive revamp of form handling. Let's break it down.