Who Am I ?
I am Paul Hammant, Senior Director of Engineering at HedgeServ.com, and oversee all software development. I have teams in New York, Boston, Ireland, and Bulgaria. Teams make applications and services with different technologies, different release cadences, but all are agile and rest on DevOPS + Continuous Delivery best practices.
I used to work at ThoughtWorks, and spent nearly all of 12.5 years there on client engagements (finaincial services, an airline, retail, startups). Roles ranges from developer, tech lead and Director of Engineering. Before ThoughtWorks, I was Head of Development at a UK M-Commerce startup. In the early 90's I was a freelancer on green-screen systems development in the insurance field. Before the turn of the millenia, I was developing fat and thin solutions for enterprise Java needs.
I’m a Brit in the US (Green Card), and in my late-40’s. I have mostly been a IT consultant since 1989. I’m an Agile advocate, and love 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’m 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 Hellesoy (more famous for Cucumber these days) - PicoContainer, in Java.
Selenium, is the defact-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 spawing side, to allow your choice of driving language, with your choice of browser (Firfox or IE, back then). That used a Comet mechanism, 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.
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 (I did not). Similarly associated practices, “Branch by Abstraction”, and Feature Toggles (or flags if you prefer). A lot of my consulting career featured the recommendation of, and planned migrations towards TBD.
Branch by Abstraction - a technique for avoiding multi-branch development and the source-control merging consequence of that. Again, not the inventor (or even the fellow that coined the term), but the chief advocate for the practice.
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 millennia, 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 I do what I can to avoid Scrum as well as correct people when they conflate it with Agile.
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.
- July 25th, 2016 » Java legacy hairball: refactoring case-study
- July 11th, 2016 » Anvil: Like MsAccess For The Web But With Git Coolness
- June 26th, 2016 » Using RhodeCode and Angular1 as an Editor for a 'Config as Code' System
- June 20th, 2016 » Angular's Looming Searchability Challenge
- June 18th, 2016 » Subversion Merge Limitations That Are Not In Fossil
- June 10th, 2016 » New Enterprise Web-App Design Choices for 2016
- May 10th, 2016 » Angular Embedded in Jekyll-Markdown Blog Entries
- April 4th, 2016 » Reducing My Robo-Emails To A Handful of Rollup Emails Every Few Minutes (IMAP Rewriting With Python)
Subscribe to my blog by email
Getting in touch
Email is best. First name at second name dot org.