Testing
This blog explores how to best use GitHub Copilot to swiftly refactor existing test automation
Sustainability
Sam Altman says AI will cost as little as electricity—but what’s the real environmental impact of billions of queries a day? In this post I dig into the numbers from the blog post "The Gentle Singularity" and compare them to previous studies of the power and water use of AI systems.
Artificial Intelligence
This episode charts my attempt to build Mini-Me, a CLI sidekick that was supposed to learn my quirks and write like me, but instead turned into a shadowy pastiche of my style. AI tools can generate features at light speed, yet without unwavering product ownership discipline, scope creep turns your elegant vision into feature bloat. The experience crystallised into a practical checklist for AI project governance - because just as every orchestra needs a score, every cinematic universe needs a storyline, otherwise what should be a legendary saga of epic proportion becomes just a messy saga of its own making, worthy of nothing more than a post-credit scene.
Data Engineering
Distributed systems often struggle with data consistency. In this post, I explore how the Transactional Outbox pattern helped us solve this challenge in a client project, and how it compares to CDC and Event Sourcing.
Sustainability
The Scott Logic sustainability team has recently been updating the open-source Technology Carbon Standard website to better reflect evolving challenges of carbon accounting in the tech sector.
Testing
While on my most recent project I had the unique experience of working closely with many testers and test minded individuals. This allowed me to learn some much-needed lessons about how to best implement automation testing with accessibility in mind, a sometimes-overlooked area of test automation.
Delivery
When you're embarking on a legacy modernisation initiative, it’s crucial to gain a holistic understanding of the project, and you need to be able to devote sufficient time to this and involve all the right people. In this blog post, I explore this further, describing the expert input you need to draw on, the role of leadership in this context, and the kind of up-front planning that’s required.
Delivery
Increasingly, I’m seeing that government procurement is not giving suppliers the chance to demonstrate their ability to deliver meaningful social value. In this blog, I explore what government procurement sets out to achieve, what is actually happening, and how things could be improved if the government simply heeded its own guidance.
Tech
For junior developers just starting with CSS, the vast array of available length units can feel overwhelming. This post offers a clear breakdown of the main categories - absolute units; relative units, which adapt better to different screen sizes and accessibility settings; viewport units and niche units.
Tech
When I wanted to learn a new programming language and a new programming paradigm, I decided to cut my teeth on a practical problem.
Testing
AI is reshaping the testing landscape, but it can’t replace the value of human judgement. In this post, I explore how experience, intuition and healthy scepticism remain essential to building better software.
Testing
Automating Playwright visual test maintenance with GitHub Actions simplifies updating baseline screenshots across platforms. By running tests on both Windows and Linux via a workflow, developers avoid manual setup and ensure consistent UI validation, even when third-party libraries like CO2.js change underlying data.
Tech
Learn how to build a custom, user-friendly search language using ANTLR and Elasticsearch. We'll cover grammar design, query parsing, and indexing techniques to turn plain user input into powerful search results.
Delivery
Messaging-based communication tools such as Slack and Microsoft Teams are commonplace in development teams, often being the main platform for textual communication. “Channels” are a key concept in these tools for organising communication. How these are organised and used makes a big difference to their effectiveness and in turn the overall effectiveness of the team communication. In this post, I’ll share my thoughts on what makes a good approach, and provide some example channels based on what I’ve seen work well in projects of various natures and sizes.
Testing
Switching testing teams in the middle of a live project can feel like changing pilots mid-flight — risky if you’re unprepared, smooth if you’ve planned it right. In this post, we’ll look at how to hand over testing between vendors without letting quality or deadlines slip.
Tech
In this post, I describe how your business can assess whether a system is ready for modernisation and, if so, how to set your project up for success. I then explain why, in most cases, you’ll probably want to take an incremental approach rather than replacing the old system in one fell swoop. I end by providing an example of one of the ways your business can do this – by using Event-Driven Architecture.
Tech
In the course of building a new system for a client over the past year, we evaluated and selected a couple of commercial software products to use as components of that system. In this post, I’ll share some observations and thoughts which may be of interest or help you with your next selection.
Artificial Intelligence
Poor AI implementation can reduce motivation and identity—hindering business performance and employee wellbeing. Here’s why your AI strategy needs a human touch.
Delivery
When it comes to legacy modernisation projects, there’s a kind of rework – let’s call it ‘cultural rework’ – that organisations often seem to accept as an inevitable part of their investment. In this blog post, I look at some of the main cultural, team and human challenges that arise on legacy modernisation projects, and how they can be tackled.
Tech
I have recently come off my first client project, which I was part of for 9 months, and so I wanted to reflect on everything that I learnt during that time.