Andrew Harmel-Law is a Tech Principal at Thoughtworks as well as an author and online trainer for O’Reilly, Andrew specialises in Java / JVM technologies, agile delivery, build tools and automation, and domain driven design.
Experienced across the software development lifecycle and in many sectors what motivates him is the efficient delivery of large-scale software solutions, fulfilling complex user needs. He understands that people, architecture, process and tooling all have key roles to play in achieving this. Andrew has a passion for open source software and its communities. He has been involved with OSS to a greater or lesser extent since his career began; as a user, contributor, expert group member, or paid advocate - most famously as one of the Jenkins JobDSL originators.
Andrew enjoys sharing his experience as much as possible. This sharing is not only seen in his formal consulting engagements, but also informally through mentoring, books, online training, blog posts, conferences (speaking and organising), and open-sourcing his code. His next book “Facilitating Software Architecture” is making its way onto the internet, a chapter at a time. (Check it out)
Things I made
Over the years I’ve been a little profligate with my internet prescence. Here’s a handy overview, with some deep links into the semi-interesting bits.
If I was to sum up everything that I have collected here it would “a series of attempts at unflattening”. That is to say I’m trying to reconsider how I, and others, construct knowledge, and challenge when I think things could be different.
Beginning with my first conference talk at Devoxx UK in 2014, right up to my current blog series on the experience of development and organisations I’ve been trying to understand why things are they way they are; to bring different perspectives; and ask challenging questions.
Sometimes this involves pointing out what I think we’ve forgotten. Other times it’s to suggest parallels and contrasts with other disciplines. Other times still I’m just trying to figure stuff out and wanted to share my progress.
There are three sections to all this, based on the medium of my musings: Training, Speaking / Panels, Open Source, and Blogging. You can also find me on Twitter and LinkedIn.
If you’re looking for my algebra blog which used to live here, it’s not gone far.
I was fortunate to be asked to write a course for the O’Reilly online training Platform. The result is the following:
- a three-hour, hands-on extravaganza is titled Domain-Driven Design: First Steps and runs every 2 months or so.
- another three-hour chat-fest titled Architecture Decision Making by Example. This also runs every 2 months or so.
Speaking / Panels
I’ve been lucky enough to talk at a bunch of UK and international conferences. My main contributions have been as follows:
The Architecture Advice Process with Andrew Harmel-Law (I was a guest on Neal Ford’s O’Reilly Software Architecture Hour on the 23rd July, 2023)
The Changing Nature of Architecture (I was a guest’s on Jabe Bloom’s “Platform Thinking” podcast on the 29th June, 2023)
Collective Architecture - Live RPG Experience (My first workshop. DDD Europe 2023, with Diana Montalion)
Architecture over Architects (Co-presented with Diana Montalion at Codecamp Bucharest, 2023)
(Architectural) Decision Making Gathering (Co-convened this 2023 VirtualDDD Open Space and co-keynoted with Diana Montalion with our talk: “Architecture over Architects”)
The DDD Europe “Everybody” Keynote (DDD Europe 2022, with Gayathri Thiyagarajan, Diana Montalion, Mike Rozinsky and Dan Young)
A Commune in the Ivory Tower?: A new approach to architecture decisions (Talk, LeadDev London, 2022. Reprised at Booster Conf Bergen, Devoxx London, and SDD London (all in 2023))
The Four Key Metrics, Unleashed! (Talk, Javazone Oslo 2021. Reprised at Devoxx UK 2022, XConf Europe 2022, and IT Days Cluj 2022)
The Varieties of development experience (Talk, Devoxx UK, 2021. Site requires registration, but it’s free, and the Devoxx folks built it. I was also lucky enough to reprise this at Lean/Agile Exchange)
What I talk about when I talk about Domain-Driven Design (Talk, Devoxx UK, 2021. Site requires registration, but it’s free, and the Devoxx folks built it.) (I also shared this at InfoShare GDansk).
Domain-Driven Design: The Bare Essentials + Microservices (aka “The Heart of Domain-Driven Design”) (JavaZone Norway, JFokus Sweden, and O’Reilly DDD Super-Stream. 2020-1)
Fostering autonomous teams with proper leadership culture (Panel) (Virtual DDD 2021)
Patterns and People (Lightning talk, DDD Europe, 2021)
Creating a Playbook for DDD for the inside of your team with Julie Lerman (Panel) (Virtual DDD 2020)
Combatting the Near Enemies of Domain Driven Design - at Scale (DDD Europe in Amsterdam, Virtual DDD, O’Reilly Architecture Conference in Berlin, DDD eXchange in London, and SDD London, all with with Gayathri Thiyagarajan)
Organisation Refactoring and Culture Hacking - Lessons from Software (Voxxed Days in Banff, Devoxx London and Belgium, and JFokus Stockholm, 2018-19)
Distributed Architecture and Design: A Scientific Approach (JavaZone 2017 with Kevin Rudland)
Harnessing Domain-Driven Design for Distributed Systems (Devoxx UK 2016 with Gayathri Thiyagarajan)
Bootstrapping a Scala Mindset (Scala eXchange London 2014)
5 Whys: Counter-Intuitive Solutions to (all too Common) Problems (Devoxx UK 2014)
“Scaling the practice of architecture, conversationally”. My proposal for a way to achieve decenralised decision-making in software teams / organisations
“Domain-driven design needn’t be hard. Here’s how to start”. Thoughts on first steps on the path to deploying DDD.
Thoughts on the anthropology of software (power and freedom) (Set of thoughts inspired by Graeber and Wengrow’s “The Dawn of Everything: A new History of Humanity”)
Semi-formed ideas on the Architectural Advice Process and systemic/cross-team decision making… (Riffing on challenges arising from the thread below.)
Anarchistic Architecture (The thread which eventually became my martinfowler.com blog post “Scaling the practice of acrhitecture, coversationally”)
Patterns of Anarchy (A set of notable quotes from the 1966 collection of the same title, alongside some musings on what it might mean for organisation design)
Guerrilla DDD (A quick intro to the elements in the “Supple Design” chapter of Eric Evan’s “Domain Driven Design”, and how to use them without permission from anyone)
Org Design Reading List
Simple steps to adopt DDD
At my previous employer, I and a co-conspirator set up the Capgemini engineering blog.
Some of my posts include, “How we work” (co-authored with Malcom Young), “Why microservices are right for us”, “Microservices - a reality check(point)”, “When it’s clever to admit that you’re not feeling clever”, and “Last year an unconference changed my life”.
I also wrote the response from the Capgemini UK Engineering team to the James Damore Anti-Diversity Manifesto.
Hidden behind this landing page is the math blog I wrote as I worked my way through Gelfand’s “Algebra”.
Learning new Programming Languages
As with algebra so with programming languages. I blogged as I learned Scala, and Ruby, and managed fitful attempts as I picked up Go.
I also flirted with a Medium blog for a while. The two best posts are “Warhammer fantasy career planning” and “Yet another post on work-life balance”
I started (and found my feet) blogging on one of the original platforms - blogger - where the title of my blog is the best thing about it.
I never get as much time as I’d like to work on open source, but I’ve been lucky to have been around for some cool moments.
I was there at the founding of the Jenkins JobDSL (which is still in Jenkins core and - I’m told - partially inspired the Jenkinsfile we have today).
I also started the archaius-spring-adapter, created the open source Capgemini Grade Ladder, and contributed some documentation improvements for the Pony language.
Sadly my most-starred repo is 100% based on the work of others - an ascii-doc-ification of Simon Wardley’s Wardley Mapping blog posts.