Hello, I’m David Gray and I like to code, mostly Java but I'll lend my hand to quite a few things.

I live in Derby, England and am quite the regular on stackoverflow.com as well as my blog and occasionally twitter.

I love getting my hands dirty on Github as well as reading stuff around Gang Of Four and other software architectures. I contribute to LibGdx when I get chance which is a cross platform gaming framework. I also lend my hand to Amazon EC2 when I need to quickly boot a server. Recently I finished my MongoDB certification as I always wanted to know more about BigData.

I'm a strong believer in the principles of SOLID and endeavour to be a better coder everyday.

I love doing what I do.





IBM DataPower

2015 - Present


Senior Developer

Most of my time at Experian has either been with core Java or IBM DataPower. I work in the SSO team, so I'm always getting my hands dirty with cookies, headers an server logs. I do a lot of internal consulting, helping Experian products get onto the SSO train :)

This is my first role in such an enterprise architecture. One solution will have tens of servers behind it. Living the SOA dream some would say.

I've moved away from scrum quite a bit, focusing a lot more on security.

2012 - Present

Exel Computer Systems

Project Analyst

My role at Exel is to build ERP software using Java / EJB with a JBoss back end. I'm really fond of JEE and Java frameworks.

I've worked here for over three years with a multitude of technologies from JSF and Liferay to Jax-RS (which I've blogged about here).

Currently I'm the scrum master for the largest project Exel have ever acquired. That in itself has been really interesting, and something I've also openly blogged about.

2010 - 2012


Data Architect

While at Frogtrade I had a really diverse set of responsibilities. These included writing widgets on the UWA framework with jQuery/CSS3/HTML5, php development, web service consumption and Java persistence development.

I also had to manage some pretty nasty svn errors and am pretty confident with subversion in general.

2009 - 2010

Serco Learning

Technical Product Manager

Working as a technical Product Manager, I was responsible for controlling reseller agreements during bids and the software supplied within these agreements. I also dabbled with building integration tools using .NET 3.5 (c#) with office add-ins.

Developing (programming, debugging and testing) new and existing applications using a web service middleware over .NET 3.5 (c#) for business critical solutions.

Liaising with third parties with regards to areas such as Systems Integration Framework and general integration dogs body. Managing business requirement documents as well as setting out SWOT & PESTLE for future company strategy.

2007 - 2009

Serco Learning

Integration Developer

This was my first placement out of University and it was incredibly varied although focussed mainly around development and support. This was my first industrial exposure to JUnit and development. This included writing web services using Axis2 libraries to expose SOAP endpoints to third parties. These were hosted on Tomcat servers which gave me a good insight into the deployment of a http servlet container.

I also got my hands on IBM clearquest (I never, ever want to touch that again) and Visual Source Safe (I have similar feelings to this and Clearquest).

2004 - 2007

University of Leicester

Computer science

My research interests at university were around pushdown automata and compiler design. I also took modules in C++, prolog, Java, SQL, Haskell, discrete mathematics and php.

2013 - 2014

MongoDB University

M101J: MongoDB for Java Developers

I completed the MongoDB qualification for Java developers which included various mongo functions such as aggregation, indexing, sharding and replication.

Player Viewer

Open source SpringMVC Hibernate ESPN API viewer. I built this as a boilerplate project for a simple Spring MVC use case. Originally hosted on AWS EC2.

SQL Stripper

A javascript SQL formatter designed to help the day to day formatting of SQL in Java code into formal syntax