Let’s do awesome things together.

  • I take ideas from inception to operation.
  • I solve your product and technology problems.

A framework for creating strategy

Context and Introduction Recently, I wrote my very first technology strategy. Overall I’d say the process went pretty well. Of course writing the strategy is intimidating to begin with, but once I started I quickly realised that the much more intimidating thing is actually working to implement the strategy after it’s written. I felt and still at times feel like fleeing to the woods to live as a wolf as a result of this realisation but I’m pretty sure my life insurance has exclusions for fleeing to the woods in order to live as a wolf....

June 15, 2022 · 20 min · Alex

The Role of a Software Developer

What if the role of the software developer is not actually about writing software? What if the most important thing I can do today isn’t to write a sweet recursive function that delights and confuses the next human that reads it in equal measure? As our industry has matured, the roles of technical staff in an organisation have changed. Increasingly, companies require that technical folk interact with customers. Some people like this....

June 1, 2022 · 6 min · Alex

Introducing the QUERY HTTP Verb

Introducing QUERY The IETF has published a document detailing the QUERY verb. The Query verb neatly solves the problem of asking APIs for LOTS of data or conditional data. In other words, QUERY enables API providers to provide a means for clients to ask the server about data, where the client isn’t sure what data is available. A worked example Working in Agri-tech, I often want to find out information about animals....

November 25, 2021 · 7 min · Alex

Trialling One Day Sprints

1-day sprints are a fantastic way of turning the traditional time pressures a team might face from negative to positive. They act as a time constraint on the team and force clarity, agility and feedback into your work system in far more significant amounts than you might already have. They can act as circuit breakers for teams struggling to meet sprint goals. They can create momentum in and outside of the team and encourage teams to focus on producing the smallest impact possible for your users....

October 17, 2021 · 7 min · Alex

Implementing a team topology

Any organisation that designs a system (defined broadly) will produce a design whose structure is a copy of the organisation’s communication structure. — Melvin E. Conway Introduction Team topologies are a concept created and popularised by Manuel Pais and Matthew Skelton. They describe a way of reforming your organisation shape in such a way that improves the architecture of your software while reducing cognitive load and directing more energy and focus towards the streams of value that flow through your organisation....

February 24, 2021 · 21 min · Alex

SQL Joins with Sequelize

While working on an API for my day job last week, I needed to do a SQL Inner Join with Sequelize and Typescript in a web API. Here’s how I achieved it. Environment: Things move quickly in the JS ecosystem. Here are the library versions used in the subject API at the time of writing: "dependencies": { "@types/express": "~4.0.39", "@types/sequelize": "^4.27.21", "express": "~4.16.2", "sequelize": "4.38.0", } Context: I have an identifier in one system that I need to correlate with an identifier in a second system, but I could only do that via an intermediate identifier, also in the second system....

October 11, 2020 · 5 min · Alex

Running Deployments with Github Actions

In a previous article I wrote about Getting Started with Github Actions. In it, I talk about the basics of Actions, how they work, what the language looks like and how you can get started. If you’ve never used Actions before, I highly recommend you have a quick read of that before reading this, as I build on some of the ideas presented there. Continuous Integration (CI) versus Continues Deployment (CD) versus Continuous Delivery (unhelpfully, also CD) Put simply, continuous integration is the act of continually moving your changeset into the wider codebase, as frequently as it makes sense for your use case....

July 13, 2020 · 11 min · Alex

Getting Started with Github Actions

Continuous Delivery is a foundational skill that your organisation needs to be good at if it is to remain responsive and ‘lowercase a’ agile. A full solution for continuous delivery tends to include (but isn’t limited to): The ability to create artefacts that we can release to production, across many products, teams, branches, environments and repositories. The ability to quickly validate an artefact as a candidate for release (through applying the testing triangle - unit, integration, acceptance, smoke and so on)....

May 28, 2020 · 13 min · Alex

Spring Boot - Comparing Liquibase and Flyway

What are Spring Boot, Liquibase and Flyway? The Spring Ecosystem When you need to create a web application or an API in Java, be that RESTful, SOAP or GraphQL; whether you’re looking at synchronous HTTP, Asynchronous or Reactive, Messages on Queues or Event Sourced with Kafka, it’s hard to go past the Spring Ecosystem. If nobody ever got fired for buying IBM, you could probably say that nobody ever got fired for creating a Spring-based application....

April 23, 2020 · 9 min · Alex

Remaining Effective in a Pressure Cooker

One thing the Army is good at is teaching you how to function under immense pressure, for extended periods. Speaking briefly about my credentials in this area, I’ve spent just under five years in the Army, nine months of which were in Afghanistan as part of a NATO mission with the New Zealand Defence Force. As with everything, there are folk out there with more experience than me, who have done it harder, for longer....

March 26, 2020 · 16 min · Alex