Welcome

To begin at the beginning…

“Lo que diga Gary, pero quizás es lo que piensa Gary!”


About This Site

This is a place where I share my thoughts - mostly on technology, software development and architecture, but more broadly it includes whatever happens to be on my mind at the time.

AI Engineering Roadmap

How to move AI Engineering from Current State to Target State

February 22, 2026 · 5 min · 956 words · Gary Thomas

Extreme Programming Revisited

Introduction Extreme Programming has been declared dead more times than I’ve sat through presentations about “digital transformation initiatives.” Yet here we are again, breathlessly rediscovering that writing tests and integrating frequently might actually be quite sensible. Who could have predicted such a thing? I should state before I continue that I am not an XP zealot. I’ve never been fond of the term “Extreme Programming,” nor of prescriptive adoption of practices just because we’re told that’s the way. As with all things, it’s the principles, and why they matter, that lead to better outcomes. ...

September 20, 2025 · 11 min · 2327 words · Gary Thomas

Systems Thinking: Dana Meadows' Legacy for Financial Services Architecture

Exploring how the principles of systems thinking, pioneered by Dana Meadows, offer a critical framework for designing resilient and adaptable architectures in the complex world of modern finance.

September 5, 2025 · 7 min · 1312 words · Gary Thomas

Leverage Points

Leverage Points for System Architects: A Systems Thinking Approach Applying Donella Meadows’ Framework to Transform Your Architecture Practice Introduction As system architects, we’re constantly making decisions about where to focus our efforts. Should we optimise those API timeout values? Redesign the entire microservices topology? Or perhaps advocate for a fundamental shift in how the organisation thinks about system resilience? The answer lies in understanding leverage points - a concept from systems thinking that reveals where small changes can produce big results. Based on Donella Meadows’ seminal work on systems intervention, this framework helps architects identify the most effective places to intervene in complex systems. ...

September 1, 2025 · 6 min · 1219 words · Gary Thomas

Gap Analysis

Performing a Gap Analysis A Gap Analysis is a critical tool for identifying the differences between the current state of the architecture and the target state, which could include both functional and non-functional requirements. It helps identify what is missing or what needs to change to achieve the desired outcomes. The analysis should consider both immediate needs and future scalability, ensuring that strategic decisions are aligned with business objectives. Having conducted numerous gap analyses in financial services environments, I’ve learned that certain areas require particular attention in highly regulated industries. ...

August 27, 2025 · 4 min · 753 words · Gary Thomas

Building Narrative For Architecture

Why Stories Matter in Architecture For thousands of years, stories have united people across tribes, nations, and generations. They create a shared understanding — the essential ingredient for any large-scale collaboration. In architecture, storytelling is just as vital. Transformations are complex and demand broad cooperation. A clear, shared narrative doesn’t just explain the change — it inspires belief in a future state. It’s not only about diagrams or models; it’s about creating a story that aligns people and keeps them moving in the same direction. ...

August 11, 2025 · 6 min · 1075 words · Gary Thomas

Dev Team Capability & Maturity Assessment

Dev Team Capability & Maturity Assessment Instructions This survey assesses your development team’s capabilities across technical, process, and cultural dimensions based on the DORA (DevOps Research and Assessment) framework. Please answer honestly based on your current state, not aspirational goals. Rating Scale: 1 - Not Implemented: We don’t do this at all 2 - Ad Hoc: We do this inconsistently or only in some cases 3 - Developing: We do this regularly but it’s not fully mature 4 - Mature: We do this consistently with good practices 5 - Optimizing: We do this excellently and continuously improve Section A: Technical Capabilities A1. Version Control & Code Management How effectively does your team manage code and changes? 📚 References: Git Best Practices | Conventional Commits ...

June 9, 2025 · 13 min · 2705 words · Gary Thomas

Event-Driven Architecture

Event-Driven Architecture Event-Driven Architecture (EDA) is a design approach that uses events to drive the flow of data and actions within a system. Events are used to represent changes in the system, and these events are used to trigger actions in other parts of the system. Commands and Events In systems designed with Domain-Driven Design, commands and events typically correspond to actions and outcomes within specific bounded contexts. Event driven architectures often use a combination of both commands and events, the decision of whent to use each is based on the use case and the requirements of the system. ...

May 18, 2025 · 5 min · 1060 words · Gary Thomas

Machine Learning Algorithms for Beginners

Comparison of Machine Learning Algorithms Machine Learning algorithms are techniques used to build models that can make predictions or decisions based on data. Choosing the right algorithm depends on the type of data available and the nature of the problem you’re aiming to solve. Algorithm Name Algorithm Type Supervision Typical Use Cases Key Strengths Linear Regression Regression Supervised House prices, demand forecasting Simple, interpretable Logistic Regression Classification Supervised Churn prediction, spam detection Probabilistic output, efficient Decision Trees Classification/Regression Supervised Credit scoring, rule-based modelling Interpretability, works with categorical data Random Forest Classification/Regression Supervised Recommendation systems, market prediction Robust, handles overfitting well SVM Classification Supervised Image and text classification Effective in high-dimensional spaces Neural Networks Classification/Regression Supervised Speech, image, and language tasks Powerful with large and complex data K-Means Clustering Unsupervised Customer segmentation, social analysis Fast, simple clustering PCA Dimensionality Reduction Unsupervised Pre-processing, noise reduction Reduces dimensionality, improves efficiency Hierarchical Clustering Clustering Unsupervised Taxonomy, market segmentation No need to pre-define clusters Autoencoders Feature Learning Unsupervised Anomaly detection, image reconstruction Learns compact representations Q-Learning Reinforcement Learning RL Grid-based environments, simple agents Simple, foundational RL approach DQN Reinforcement Learning RL Game playing, real-time systems Combines RL with deep learning Policy Gradients Reinforcement Learning RL Robotics, continuous control Handles continuous actions Actor-Critic Reinforcement Learning RL Resource allocation, adaptive control Balanced learning via value and policy K-Nearest Neighbours Classification/Regression Supervised Price estimation, recommendations Easy to implement, intuitive Naive Bayes Classification Supervised Text classification, sentiment analysis Fast, works well with high-dimensional data Semi-Supervised Learning Hybrid Semi-Supervised Medical imaging, web classification Reduces labelling effort, improves accuracy Self-Supervised Learning Representation Learning Self-Supervised Pretraining for NLP/vision models Learns features without manual labels Ensemble Learning Meta-Model Supervised Fraud detection, competitions High accuracy, reduces overfitting Types of Machine Learning Algorithms Linear Regression Linear Regression is used to predict a continuous value based on one or more input features. It fits a straight line (or hyperplane in multiple dimensions) to model the relationship between variables. ...

May 18, 2025 · 7 min · 1468 words · Gary Thomas

Tech Debt:From Cognitive Clutter to Architectural Clarity

Technical debt and complexity stall transformation. Clear it to restore focus, speed up delivery, and drive sustainable innovation.

May 8, 2025 · 4 min · 652 words · Gary Thomas