Who Am I ?
I am Paul Hammant, a DevOps and Continuous Delivery expert. Until recently I was Senior Director of Engineering, Chief Science Officer, for a fintec startup and oversaw all software development. That hedge fund administrator had development teams in New York, Boston, Ireland, and Bulgaria. Teams made applications and services with different technologies, different release cadences, but all were agile and rested on DevOPS & Continuous Delivery best practices.
Before that, I used to work at ThoughtWorks (Martin Fowler's consultancy), and spent nearly all of 12.5 years there on client engagements (investment banking, financial services, an airline, retail, startups). Client roles ranged from developer, tech lead and Director of Engineering.
Before ThoughtWorks, I was Head of Development at a UK 'mobile-commerce' startup (before mobile data was cheap), and in the early 90's I was a freelancer on green-screen systems development in the insurance field.
I am in my late-40’s, have mostly been a software development consultant since 1989, am an Agile advocate, and am passionate about open source development.
Dependency Injection Pioneer
I was rabid about Inversion of Control (IoC) long before I arrived in ThoughtWorks, or indeed before it was popular anywhere. I am also one of the pioneers of the related topic Dependency Injection and guilty of defining some numerical sub-types for IoC, before ThoughtWorks’ chief scientist, Martin Fowler, wrote his widely-read article renaming what I was talking about to Dependency Injection (DI)
Back then in 2002, I was busy working on the first constructor injection DI container with Aslak Hellesøy (more famous for Cucumber these days): PicoContainer, in Java.
Selenium, is the defacto-standard functional web-app testing technology. I’m co-creator of Selenium 1.0 (2004). The bit I did was Selenium-RC's browser process spawning side, to allow your choice of driving language (Java initially, but Python, Ruby and C# soon after). That used Comet I/O between the browser and the test runner, although it wasn't called that until later. These days Selenium 2 (WebDriver) is a huge force, with cloud testing grids, and just about every web-development team uses it. I was until 2016, in the Selenium management committee, and I am still a committer for the project.
Here is ThoughtWorks' 10-year old birthday congratulations for Selenium from 2014, written by me.
Flag Carrier For Trunk Based Development
I talk about “Trunk Based Development” (TBD) a lot. Enough so that you would think I invented it, or coined the term, but I did not. I wrote the first article on the associated practice “Branch by Abstraction” (although I didn't invent that either), and a lot of my consulting features the recommendation of, and planned migrations towards TBD and Branch by Abstraction
Read more about that on the TBD, Branch by Abstraction, Feature Toggles, and source-control best practice on the information portal for Trunk Based Development, that I have put together with friends. Bonus: ebooks.
Other Recurring themes
Aside from the above, there are some themes that I keep returning to in this blog over the years:
- Pseudo-declarative UI markup languages, delivered over HTTP
- Things that are backed by source control, that are not normally backed by source control
- Tier-reduction architectures, patterns and alike
- Agile, with a focus on XP, BDD, and ‘small stories’ in particular.
For the entire current millennium, I have been an advocate of Open Source, and eXtreme Programming (XP). I was participating in the former for a couple of years, before I became an advocate of the latter. The two communities feed off each other. Of course Lean and Kanban take over from XP these days and we roll it all into a "DevOps" title.
Linked in : has more job detail
- OReilly’s OCSCON (Portland OR, 2004): Constructor Dependency Injection with PicoContainer - A post J2EE Nirvana (Portland, OR). My Blog Entry and Slides for the same.
- Agile India (Bangalore, 2006): TDD, Refactoring and Dependency Injection (Agile’s answer to “Big Up-Front Architecture” : BUFA) (Bangalore)
- Agile India (Bangalore, 2006): Selenium Workshop (Bangalore)
- Agile 2009 (Chicago): Selenium and JBehave : A surprisingly successful shotgun wedding (Chicago). Second link. Co-presented with Mauro Talevi.
- Perforce MERGE conference (San Francisco, Sept 2014) - Keynote session Trunk Based Development in the Enterprise - Its Relevance and Economics
- Perforce MERGE conference (San Francisco, Sept 2014) - PANEL: Development Patterns for Continuous Delivery
- Perforce MERGE conference (San Francisco, Sept 2014) - An unrecorded Workshop on Trunk Based Development
- June 20, 2012: The IEEE’s Austin Texas Chapter Client-Side MVC: The Next Big Thing for Enterprise Application Development. Video too.
- Apr 21, 2016: Panelist discussing "Pioneers, Settlers and Town Planners" (with Kevin Behr, and Jabe Bloom) at a Technology Workshop organizased by Hedge Fund Managzine
- An article commissioned specifically for DZone (2012) - The Shift Towards Client-Side MVC
- DZone syndicates articles from this blog. There are more than a hundred of my articles syndicated, so far.
- May 2006: Simple JAVA and .NET SOA interoperability. Commissioned for their very first edition!
Java Developer Journal
- Dec 2003: Inversion of Control Rocks. Duplicated here and here. The article was prettier in the print edition, which is sadly no longer available online.
- 2010: Some of my artwork from a blog entry was used in Jez Humble and Dave Farley's Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation.
- 2015: Some of my artwork from a blog entry was used in Jez Humble, Joanne Molesky, Barry O'Reilly's Lean Enterprise: How High Performance Organizations Innovate at Scale .
Go to my archive for a full list of entries going back to 2002.
- April 20th, 2017 » 'The Build'
- April 8th, 2017 » Node.QML would have been the key to the Ubuntu Phones's success
- April 7th, 2017 » Tech Debt - Balance Sheets
- April 4th, 2017 » Benchmarking a Java/Maven monorepo
- April 1st, 2017 » Often forgotten must-haves for Continuous Delivery teams
- March 28th, 2017 » Monorepos with recursive or directed-graph build technologies?
- March 26th, 2017 » Speedy builds using Service Virtualization (SV) explained in diagrams
- March 25th, 2017 » Repositories vs release cadences
- March 25th, 2017 » Engineering led companies
Subscribe to my blog by email
Getting in touch
Email is best. First name at second name dot org.