Linux is my prefered OS and Arch is my favourite distro. I have experience with other OSes and distros including Debian, Windows and more.

A fan of many languages including Erlang and C#, I currently earn a living using Scala and it's a pleasure to work with. Check out my Scala blog posts.

I use elasticsearch and Lucene a lot. They are the best tools available for creating search based applications in my experience.

I understand the importance of rapidly gaining customer feedback and searching for a business model. Check out my lean blog posts.

My Philosophyon optimal software development


Having a shared vision of what is being built is important in a team of developers. But an architectural design also helps to ensure all functional and non-functional requirements are met. Read my architecture blog posts.


I have been part of teams that delivered business value frequently whilst continuing to improve process thanks to the Kanban philosophy. I am completely sold. Every developer should know about Kanban.

Continuous Delivery

The sooner a feature is released the sooner the business can benefit from it or get feedback to improve it. Continuous delivery is a process that I have used to achieve short feedback cycles and relentless delivery of business value.


To get the benefits of Kanban and continuous delivery you need confidence that deploys will not break functionality. A suite of regressions tests provided by TDD is just one of the benefits it provides to help long-term development pace.


Business value derived from software systems is only provided when the application is online and performing well. It's essential to profile and monitor applications after they have been deployed for these reasons and others.

Business Metrics

Understanding how users are using the applications you build gives the business important data about which features to add or how to adapt their business model. Why not have a read of my metrics blog posts.

But never forget the role of context. Whatever decisions you take must account for the factors specific to your environment - such as company philosophy, quality of code vs speed to market priority, and many others.

Inspirational Peoplethat I've been lucky to work with

Rob Bowley

Director of Technology at 7digital


Rob transformed 7digital from a handful of developers to a tech team with 50 developers incessantly delivering business value with 25 live deploys per-day. Rob stuck to his principles of agile, kanban and TDD whilst producing an incredible tech culture that gave developers opportunities to share knowledge and learn new skills with the introduction of innovation time. As Rob would say... *doffs cap*.

Seif Attar

Team Lead at Wiggle


It's very easy as developers to have little tiffs about which framework to use or how to name a class. This kind of occurrence never happens with Seif - he is funny, easy to get along with and the one programmer who everyone always wants to work with. Overall a great person and a top-notch coder, too.

Jay McGuinness

Founder of BigJump


I had a few opportunities present themself for my first role as a software developer. Choosing Jay and BigJump has positive consequences lasting to this day. If not for Jay, introducing me to concepts like DDD, Alt.Net and open source technologies as well as high-profile blogs, my passion for programming may have quickly fizzled out as I worked for a typical, strictly-Microsoft .NET shop.

Hire Mefull-time or contract around London

I'm currently enjoying my current role working for Artirix and would encourage you to join me here, too. In the future I will probably be looking for:

Reactive Systems with Scala and Akka

For employers and for fun I build concurrent, distributed, reactive applications using the Typesafe stack. These are some of the technical challenges I enjoy the most and have blogged and read books on this exciting topic.

Leading a Team

I have experience of leading software projects and would always be willing to listen to offers where there is an opportunity for me to make a significant difference to the success of your project. To get an idea of how I operate why not check out some of my blog posts on leadership and architecture.

Join Your Startup

Being in a startup requires many skills beyond writing code. I can help as you search for customer feedback and a business model. I like to read entrepreneurial books and attend tech startup meetup groups.

Move to Continuous Delivery and Kanban

Through a series of small steps you can eventually start to deliver software for your business on an hourly basis. There is no short-term fix, but I can help you plan and implement this change. It begins by simply visualising your process and slowly starting to automate infrastructure and deployment tasks.

Migrating from .NET to Scala and the JVM

Moving from the developer resource constraints and licensing fees of Windows to the open and innovative world of the JVM and Scala can have many benefits for your entire company such as a larger pool of enthusiastic developers and better tools to help you scale up.

Contact Me