- Passionate about software design
- Loves web technologies
- Embraces agile methodologies
- Loves web technologies
Having worked as senior lead developer for numerous household names such as AOL, BP, Roche, Sky, & Virgin Media, I've become more involved in architecture and design solutions for businesses.
An ability to find innovative solutions tethered by real world experience and makes me ideally placed in a technical design role.
As such I'm very interested in expressive positions where I can directly influence technology strategies and give guidance on industry best practices.
However, life is not all code, code, code... Attempting to refute my inner geek, I've also worked as a jungle survival specialist in the Amazon (South America), and as a qualified PADI scuba instructor in Indonesia.
- HTTP protocol for solving WebSocket, CORS, caching and browser issues
- Sematic HTML and tagging strategies for SEO
- CSS media queries / progressive enhancement for responsive design
Well versered in the mechanics of web applications; be they simple page requests, Ajax updates via REST, or full blown Single Page (web) Applications.
This comes from not just reading W3C RFCs but creating implementations too!
Fantom is a next generation JVM language, akin to a Java 2.0.
Currently the No.1 contributor to Fantom, and created an entire software stack to deliver scalable web applications. It includes:
- IoC - a powerful Inversion of Control framework to inject dependencies
- BedSheet - a rich middleware platform to route and deliver content over HTTP
- Slim - a library for generating HTML from concise, lightweight templates
- Mongo & Morhpia - a driver and object mapping library for MongoDB
- Fancordion - a tool for automating Specification by Example
Over 14 years of continuous Java and JVM development experience.
An ability to architect and design software is driven by experience, and a passion for elegant pragmatic solutions.
Professionally, I develop web applications but out of work I can be found contributing to the Apache Tapestry 5 web framework, writing game libraries, and maintaining various websites.
Recognition for some of my undertakings include:
Helping evolve the StackHub business.
Fantom, Java, AWS.
Hired as a technical authority by Rubysoft and Makemedia for projects with companies in the Top Right Group (TRG) and Schneider.
- Represented Rubysoft and Makemedia as the technical lead in regular forums with client stakeholders.
- Architected and designed the Smart Task Queue; an extremely distributed and highly scalable workflow system utilising RabbitMQ and Elasticsearch.
- Advised on development best practices and responsible for introducing agile working environments in greenfield projects.
- Provided consultancy for training and development of key technical staff.
- Acted as project lead and provided direction for ongoing development tasks for AngularJS Single Page Web Applications.
C#, Elasticsearch, RabbitMQ, Autofac, NEST, Jint, Specflow, NUnit, JSON, Visual Studio.
Created a suite of open source libraries that empower people to deliver scalable applications with the Fantom JVM language.
What started as a personal project, evolved into a full range of production ready downloads. This has led to a large web presence and regular interaction with the language founders. The work also recently attracted the attention of several international companies.
The libraries form a pluggable infrastructure that encompass:
- Web and application servers
- Inversion of control
- NoSQL database drivers
- Automated acceptance testing
See the Fantom section above for details.
IoC, BedSheet, Pillow, Duvet, Cold Feet, efanXtra, Slim, Morphia, Mongo (noSQL), Fancordion, Bounce, Mercurial, BitBucket, F4.
Agile Ruby Developer
Joined the MySky team which focused on public websites relating to customer accounts.
- Led development on responsive web applications
- Pioneered the use of New Relic for effective website monitoring
- One of two people responsible for out-of-hours support
- Provided technical training and assistance to team members
Contributed reusable components to the Global Sky Web Toolkit, a consolidation project for digital channels.
Agile (XP), Responsive Web Development, Ruby, Sinatra, Cassandra, New Relic, Cucumber, Capybara, Cloud Foundry, RubyMine.
Designed and developed an exciting proof of concept for a startup company that specialises in academic student self improvement.
This project brought together many facets of large scale data into one interactive web application and paved the way for Artificial Intelligence integration in phase 2.
Advised client on future proofing their IT strategy.
Apache Tapestry, CoffeeScript, RequireJS, Highcharts, Raphael, Bootstrap, MongoDB, Morphia, Mecurial, Gradle, TestNG, Mockito, Jenkins.
Speciality Scuba Instructor (PADI)
Worked with the most prestigious and busiest dive centre within a cluster of small tropical islands.
Responsible for training and certifying students to Open Water, Advanced, Rescue and Divemaster level. Oversaw the safety of customers in potentially hazardous environments and in water up to 30 meters in depth.
Trained and led novices on their first ever scuba dive (DSD) while pointing out turtles, sharks, stingrays, octopi, moray eels, lion fish, and more!
Senior Java Developer
Initially based in London, I was asked to relocate to Singapore to continue the development of Matchbox; an in-house matching platform for financial instruments.
Leveraging a bespoke meta-data persistence model and reusable front-end tapestry components, my team and I swiftly released customised Matchbox applications for:
- Credit Default Swaps (CDS)
- Non-Deliverable Forwards (NDF)
- Equity Derivatives (ED)
- Foreign Exchange Options (FXO)
A typical matching run would start by parsing trader positions from Excel spreadsheets and finish by sending trades out on a JMS bus.
The team was largely self organised with development enforced by tight agile practices.
Agile (XP), Apache Tapestry, Spring, JMS, Hibernate, SQL-Server, Liquibase, JodaTime, GWT, XHTML, CSS, Bootstrap, Mockito, Mercurial, Jenkins, Jetty, Eclipse.
Lead Java Developer
Lead developer and technical advisor for Project BAD and the Content Uploader.
This entailed automating the process of scanning essays to sift out the rubbish (CVs, letters to Grandma, etc...), categorising them, and uploading to multiple websites.
The solution used heuristic analysis for determining essay suitability, Natural Language Processing (NLP) for categorisation, and OpenOffice for document standardisation.
It now operates at a volume of over 4,000 essays a day and uploads to UK Essays.
Apache Tapestry, HSQLDB, Jetty, XHTML, CSS, OpenNLP, ODF, Concordion, Mockito, TestHG, Gradle, Jenkins, SVN.
Adventure Tour Guide
Teamed up with an ex British Special Forces (SAS) soldier to grow Bushmasters, a company specialising in jungle survival training and extreme adventure tourism.
There I personally led 4x4 vehicle safaris into the remote deep South, helped organise excursions into jungle where no man has been before, and ran cowboy trips with horseback trail rides to remote ranches.
More mundanely I also managed the logistics of ferrying people in and out of the remote reaches of the Amazon jungle (light aircraft, 4x4 vehicles and canoe) liaised with village chiefs and partook in medical training ran by US Special Forces.
Not being able to resist the lure of IT, I also redeveloped the Bushmasters website, vastly improved their Google SEO and authored desktop software (integrated with Gmail) to monitor potential clients, track trip payments and produce PDF receipts.
Eclipse, Jetty, Apache Tapestry 5, Eclipse RCP, T5-IOC, iText, JodaTime, XStream, TestNG, Selenium, SVN.
Management Information System (MIS) Consultant
Proposed solutions for the effective and continual monitoring of the social and economic issues affecting indigenous Amerindian communities in Guyana.
Led this as a trial project which rolled out nationwide in Phase 2.
Researched relevant indicators and compiled associated questionnaires. Travelled to remote Guyanese Amerindian villages and trained staff to conduct sensitive questionnaire surveys before compiling the results into XML.
DevInfo v6, Eclipse, XStream, TestNG.
Senior Java Developer
Developed several modules for Project Artemis, the Virgin Broadband online customer web application. After a merger with Telewest a new billing system was being introduced, based on a 3rd party SOAP system.
Working to tight schedules and being held hostage to external dependencies I advised management on Agile methodologies and successfully introduced the team to mock frameworks, automated testing and continuous integration.
Tomcat, Oracle, SOAP, Spring, JSP, XSLT, TestNG, Selenium, Intelli-J, CVS.
Agile Java Developer
Joined an existing team of hardened Agile practitioners to continue development on the AOL European Portal.
The system ingested XML feeds (via http, ftp, nntp & web scrapes) from a multitude of external providers and delivered consolidated content on news, weather, horoscopes, images and sport results from around the world.
Gave live support to the AOL Portals when the project was handed over to off-shore development teams.
Agile (XP), Tomcat, MySQL, Hibernate, Spring, JUnit, Selenium, Maven, CruiseControl, Eclipse, Subversion.