CV
Headline
Nearly 20 years of solving problems with software in multiple programming languages, with multiple programming paradigms, and across multiple problem domains has resulted in a pragmatic and no nonsense approach to building software systems that meet the needs of today while being flexible enough to cater for tomorrow.
After all, change is the only constant.
Technology Hit List
Proficient in
Java, jUnit, Maven, Gradle, Spring, Spring Boot, JSP, Groovy, Spock, Geb, Cucumber, Cypress, JDBC, Oracle, PostgreSQL, Tomcat, Linux/POSIX, Vue.js, HTML, CSS, TypeScript, JavaScript, Node.js, npm, Vite, Vitest, Jest, Python, pip, poetry, pytest, AWS, AWS CloudFormation, AWS CodePipeline.
Familiar with
Clojure, Erlang, Elixir.
Professional Experience
Technical Reviewer, Secrets of the JavaScript Ninja 3rd Edition: Manning (2025 - Present)
I was contacted by Manning to review this new revision of an already successful title, and of course I said yes. An enjoyable project that is currently in progress.
Software Architect: Axial3D, Belfast (2022 - Present)
A deliberate shift from team leadership to technical leadership, facilitated by some strategic delegation of undifferentiated heavy lifting, allowing me to focus on enabling our team of excellent engineers, and myself, to deliver quality software into production. I design systems, I design interfaces between systems, I write code, I write automated tests, I engage with customers to propose technical solutions. and I am the lead implementer in the continued success of our ISO27001:2013 and ISO27001:2022 accreditation.
Head of Engineering: Axial3D, Belfast (2020 - 2022)
A leaving CTO and a joining CPO left a technical leadership sized hole in the organisation that I naturally and gladly filled. I provided overall leadership of the software and ML development teams, I had responsibility for Site Reliability and System Administration functions, responsibility for technical leadership of all software products, supporting development teams in making architecturally significant decisions. Part of a software system under my control became part of a Medical Device passed by the FDA through a process that required detailed process improvements and documented evidence. All the while continuing to write code and deliver quality software systems into production.
Software Engineering Lead: Axial3D, Belfast (2019 - 2020)
A significant change coming from a large corporate financial technology company where I had been used to organisational silos built around technology functions. I am now in control of and responsible for every aspect of the system. A double edged sword in that I have the freedom to do what I think is right and also the burden to do what I think is right. I wrote code and developed quality software, improved deployment stability and quality with improved SDLC process, expanded the development team with excellent engineers, and generally did what needed to be done. The latter being an apparent requirement in a rapidly growing start.
Senior Software Engineer: CME Group, Belfast (2017 - 2019)
A member of the Trade Execution team working on the financial exchange match engine system, some might say the technical core of the business. If ever evidence was needed that a monolithic Java application can be rock solid reliable and wickedly fast, this is it. I received training on "Lock Free Algorithms" that demonstrated a case for single threaded operation as a significant speed and throughput improvement over multi threaded code. Working on such a high performance system was a deeply intense and satisfying learning experience.
Technical Reviewer, OCP Java SE 8 Programmer Exam II Guide: McGraw Hill Professional (2018)
The second part to the two book collection on the OCA and OCP Java 8 exam guides, I knew this one was coming and had already decided to do it before even being asked. More of the same challenges this time harder because the exam material is harder, but just as satisfying. And to top it all I got my picture printed in both books.
Technical Reviewer, OCA Java SE 8 Programmer Exam I Guide: McGraw Hill Professional (2017)
An opportunity arose through my involvement with CodeRanch.com where Bert Bates asked the staff if they wanted be technical reviewers of his new book. Of course I did.
I found it more challenging that I had expected requiring me to zoom in and out of context regularly between checking code syntax in exact detail for correctness, through checking sections and chapters for technical correctness and completeness, to checking that the whole book flows with each chapter leading into the next.
Software Engineer III: CME Group, Belfast (2014 - 2017)
Moving up the ladder exposed me to more interesting projects, such as integrating an application with a central authentication provider component. Since this component was being developed by a remote team it introduced me to the technical and social challenges related to such an endeavour and taught me valuable techniques in defensive programming at integration points to protect ourselves from cascading failures. The success of this project resulted in me being 'subcontracted' out to another team to repeat the same effort for their Java and OSGi based product. An opportunity arose to join the Trade Execution Team to work on the financial exchange match engine and I jumped at it.
Software Engineer II: CME Group, Belfast (2012 - 2014)
Part of a small agile team supporting and developing a Java and JSP based financial risk management tool. While on this project I benefitted from some training on Unit Testing and I was hooked, which led me to explore Test Driven Development, which led to a step change improvement to how I built software, which led to a long lasting joy in the practice of refactoring and working with legacy code.
Software Engineer: Mformation, Belfast (2007 - 2012)
A Mobile Device Management (MDM) system for a time before the iPhone was ubiquitous and Nokia was king. A HTML, JavaScript web application backed by a Java server side component providing Over-The-Air Mobile Device Management for TelCo and Enterprise customers. As component owner for the UI I was an integral part in roadmap design decisions and an advocate for the use of modern web technologies including Spring MVC, AJAX, and JavaScript where appropriate. General product development included HTML, CSS, JavaScript, Spring DI and MVC, Java, jUnit, JDBC, Hibernate, JBoss and Weblogic, Linux, and Solaris servers.
Software Engineer: Sony BPRL (Broadcast & Professional Research Lab), Basingstoke (2007)
I was contracted out to Sony for a project working on their Ziris product. A Java, Java Swing, and Hibernate application to control media presentation on TV screens. My first experience working within a large team in an Agile environment. CVS was the source control system in use, and while a step up from rsync much time was spent in conflict resolution.
Software Engineer: IPL, Bath (2006 - 2007)
My first Software Engineering job after completing my Master's degree. The first thing they taught me was how to use Adatest 95, and while the tool is no longer in vogue the principles and values of automated testing were set in me right from the start. There was a couple of Java projects in need of a fresh face so after a crash course in java I was on my first ever real life project and the only thing I remember about it was that our source control was a remote file system and rsync. Thankfully, I never encountered that scm pattern again.
Voluntary Professional Experience
Sheriff (Administrator & Moderator): CodeRanch.com (2014 - Present)
CodeRanch is one of the oldest running programming forums on the Internet, starting its life as JavaRanch before expanding to cover many other aspects of programming and become CodeRanch. I joined as a regular user in 2008 but didn't post a single thing until early 2013. Nobody knows why. I was invited to join the staff as a Bartender (moderator) in 2014, and then promoted to a Sheriff (administrator) in 2015. I am also a member of the Book Promotion team.
Conference organiser, KatsConf Belfast (2016)
After the success of the Dublin event, myself and the other Belfast FP meetup organiser decided to run a Kats Conf Belfast software developer conference event. We lead a group of four dealing with sponsorship arrangement, speaker selection, venue, catering, budgeting, promotion, sales, right through to managing the smooth running of the actual event on the day. The event was a success with positive feedback from attendees and speakers.
Conference helper, KatsConf Dublin (2015)
A conference born out of the Dublin based Functional Kats meetup group. I helped out as part of the organiser group with the preparation and on the day. It was great fun. Preparation involved setting up the website for the event and being part of the committee reviewing and selecting talk submissions, and on the day was supporting speakers by banishing tech gremlins, helping keep talks on schedule, and generally being available to help attendees.
Meetup organiser, Belfast Kats / Belfast FP (2015 - 2018)
A community meetup group all about functional programming who met around once a month for lightning talks and programming katas.
Education
MSc Multimedia Technology: University of Bath (2005 - 2006)
Here is when I was first introduced to Linux, not through the course content but by a classmate who regularly extolled the virtues of Gentoo. I don;t think I've owned a Windows machine since.
BSc Electronic Communication Systems: University of Plymouth (1998 - 2002)
Wonderfully hands on designing and building physical electrical circuits and learning the relationship between
BTEC National Diploma (ND) Computer Engineering: Aylesbury College (1995 - 1997)
I greatly enjoyed my time at College learning about Microelectronics, assembly language programming, electrical circuit construction with soldering, logic programming, and for the first time Math that had a practical and tangible application in the design of electrical circuits.
11 GCSE's: Buckingham School (1991 - 1995)
9 at grade C and above.