RSSAmplifier

Blog

Home on Nick McCleery

Recent content in Home on Nick McCleery

nickmccleery-github-io.pages.devRSS feed ↗15 posts

Latest posts

Building a suspension kinematics tool | Part II

Introduction This post is the second in a series on building a tool to simulate the kinematics of a racing car’s suspension. The first post walked through the earliest stages of building a tool of this kind. It covered a couple of ways to go about solving this kind of problem, introduced the concept of geometric constraints, explained the requirement for an iterative solve and the utility of…

Building a suspension kinematics tool | Part I

I would have written you a shorter letter… This is part one of what will be, by necessity, a series. I planned to cover this as a single post, but the scope of both the software and the associated waffle is not insignificant, so I'm going to break it up into chunks. Background A couple of years ago, I stumbled across SolveSpace , a free, parametric CAD system with one feature that’s…

The Two Cultures and the Engineering Revolution

Origins of observations on a cultural divide Over the past ten or twelve years, I’ve had the privilege of working on a varied and often incredibly interesting set of problems. The products I’ve helped push forward, however far my efforts actually got us, range from exotic internal combustion engines to data-hungry, data-spewing financial analytics systems † . Whatever the product or…

How to program an Arduino from WSL2

TL;DR Windows: Install usbipd: https://github.com/dorssel/usbipd-win Connect Arduino List USB devices via PowerShell (admin) terminal: usbipd list Share (bind) target USB device: usbipd bind --busid X-Y Connect (attach) target USB device: usbipd attach --busid X-Y --wsl Linux: Run sudo chmod a+rw /dev/ttyACM0 , or whatever your device is. Run sudo usermod -a -G dialout $USER to add your user to…

Tools

1: Draw.io diagram/drawing template generator Generates a Draw.io template that broadly follows the BS EN ISO 5457:1999 standard for technical product documentation. To generate a template, fill in the form below and click the “Generate Template” button. Note that the template is generated in the Draw.io XML format, with all non-text elements locked. Company: Drawing Title: Author:…

A robust mechanism for Kanban board column indexing

Notes This post was updated on 2025-03-31 to reflect changes made to the package in January 2025. These changes brought the package in line with the original approach used for the Anneal project, and addressed an issue with the compute_intermediate_index function that was introduced when packaging the utility for external consumption. TL;DR We used strings to track the positions of cards in a…

Building a palatable 3D viewer | Part II

Anneal CAD viewer: perspective projection of coilover STEP file. Overview In the previous post , I talked through the motivation for us building a 3D viewer, then introduced the basics of our old Three.js setup. This worked through cameras and projections, view frustums, controls, and a few other things—but stopped short of giving the viewer a more polished feel.

Anneal autopsy

Preface I’ve been trying to put this together for the past few weeks, but it’s incredibly difficult to condense such a wide-ranging experience into a coherent piece of writing, especially one that might actually be of interest or utility to anyone else. I’ve done my best to outline what actually happened, give my view on contributing factors and lessons learned, then put forward…

CV

You can view a general CV here , or use the embedded version below:

Differentiable programming in engineering

Motivation This post is just intended to serve as a longer form version of my thoughts on differentiable programming in engineering. It’s effectively a follow-up to a lot of back and forth on this Twitter thread , where a whole bunch of us were discussing differentiable programming in engineering. The folks involved were: Stellarator engineer, @Andercot , Zoo/KittyCAD CEO, @jessfraz ,…

Budgetary myopia and the hand-me-down laptop

Splitting atoms or roasting beans “Every business is a software business.” This is a line from Winning with Software where the author’s trying to emphasize software’s critical importance to almost every business out there today. This importance holds up irrelevant of the business’s core function. It doesn’t even matter whether anyone in your organisation has…

Building a palatable 3D viewer | Part I

Anneal CAD viewer: perspective projection of coilover STEP file. https://www.getanneal.com Motivation: design reviews suck The need to tackle this came from wanting to visualise 3D CAD data in a web browser, all as part of Anneal ’s design review tooling.

Wait, did I need a lobbying budget all along?

I’m not naive… right? My accent doesn’t give it away too readily, but I grew up on the edge of a fairly hostile estate in north Belfast—one of the bits you used to hear about on the news—at the tail end of the Troubles. I was still in primary school when the Good Friday Agreement was signed, but do retain pretty vivid memories of personnel carriers on the streets, British Army…

Bashing it out

Background The branching strategy we use at Anneal is something I’ve arrived at after a few years of iteration across projects. It follows a similar pattern to GitLab Flow , but isn’t quite the same. Like GitLab Flow, we have both environment and feature branches, and things are merge based—so rebasing isn’t something that’s an overly routine part of the workflow. However,…

About

Professional Interests I have a particular interest in helping develop software for science and engineering, but generally enjoy working on things that are hard and that bridge disciplines. Prior experience ranges from Formula One cars to quantitative financial analytics systems. The work that I find most exciting tends to fall into a few categories: Scientific computing—data analysis, simulation…