First published on

A new project, an old project and compound improvements

A new project, an old project and compound improvements

Weeknotes for week beginning 26th April 2021

A new project

This week started off pretty quietly, but by Thursday I had landed on my first formal project at Made Tech. There'll be more to come on that in the coming weeks I'm sure, but for now I'm getting my head into the problem space and looking forward to some interesting challenges. One bonus, the tech stack is Next.js with TypeScript so, at least initially, I can focus on the ins-and-outs of the client's needs and how to approach a different style of working, rather than having to up skill on any entirely new language or framework. The new project kept me pretty busy by the end of the week.

An old project

During my time at The Times I worked on an open source project for generating templated images (intended for use on social media) in browsers, and on the server using Node.js – CardKit. It hasn't had much activity in the past year or two, but I'm aware of people still actively using it. With that in mind I've been tidying it up, bringing the core dependencies (Webpack, React etc.) up-to-date, and getting it ready to release a v3 which should provide a stable base for any future work I choose to do on it. The main improvements I'd like to make is the way it handles text (wrapping and better formatting), and enhancing the UI so creating 'templates' doesn't necessarily require coding skill.

Compound improvements

As I said last week, I'm finishing reading A Civic Technologist's Practice Guide by Cyd Harrell, and this particular quote stuck with me this week:

Compound improvements build on each other over medium time frames (say ten years), resulting in a situation that is many times better than it was at the start, even if each individual improvement is small.

It felt really important to recognise the value of small incremental changes, rather than putting focus on big evolutionary changes. Instead, evolution is the process of making gradual changes towards a given goal (which may move as those changes are being made). In programming, tasks like regular refactoring, ensuring dependencies are kept up-to-date, and keeping individual contributions small, are all ways we can better the code we write, work more flexibly, and ultimately create a better product or experience for our customers. I think this applies to technology and engineering as much as it does to every day life.