Software Developer2017 - 2018BP
Technologies: Java 8, Gradle, Azure, Azure DevOps, Spring 5, Spring Boot 2, Spring WebFlux, Spring Data JPA, Spring Security, Jackson, OpenID Connect, Sql Server, Postgres, Flyway, Hibernate, Envers, QueryDSL, Project Lombok, Guava, Swagger, Apache POI, Cucumber
- Worked in Agile teams consisting of a back-end developer, a front-end developer, a QA, a BA, and a product owner.
- Developed simple REST API Spring Boot 2 back-end applications using a combination of blocking and non-blocking (Reactive) endpoints.
- Designed and implemented a learning management system so that mistakes are recorded and ideally not made again by people working on similar projects.
- Co-developed a hopper system to record all of the information about hoppers and wells which is then analyzed using machine learning tools.
- Implemented Java Azure AD security libraries to help with OpenID Connect (JWT) protocol. This includes on behalf of access for BE to BE security integration.
- Utilized the Azure Graph API for AD queries.
- Migrated existing projects from Maven to Gradle and deployed to Azure using the Azure DevOps (VSTS) pipelines.
- Handled DevOps requests for Azure Portal and Azure DevOps (VSTS) infrastructure.
Software Developer2014 - 2016Now TV
Technologies: Java, Scala, Gradle, Cloud Foundry, Spring 4, Spring Boot, Spray, Akka, Spring Security, Hateoas, OAuth 1, Active Directory, MariaDB, Flyway, UnboundID, Quartz, Swagger, JavaRX, Retrofit, Specs 2, Cucumber, REST Assured, WireMock, ScalaTest
- Designed and implemented a voucher management system for the UK which will soon be rolled out across Europe.
- Worked within a team to implement high concurrency microservices for our purchasing and billing applications.
- Ensured that the deployments were made with ease using Jenkins and Cloud Foundry.
- Implemented a working prototype of a JavaRX and a Retrofit application.
Software Consultant2013 - 2013British Gas
Technologies: Java, Groovy, Gradle, Debian Packages, Spring 3.2, Joda, Jackson, HBase, Phoenix HBase Client, Spring Security, Tomcat JDBC, Hibernate Validation, JDBI, DBDeploy, Jenkins, Vagrant, VirtualBox, Gatling, Fest, JUnit, Mockito, Cucumber
- Gathered requirements, designed, and implemented a solution to store boiler metrics for all online customers.
- Co-ordinated with a third party to implement a Rest API solution using JSON.
- Stored all boiler metrics in HBase using a JDBC interface (Phoenix), ready for analytics.
Contract Software Consultant2009 - 2013Sky UK
Technologies: Java, J2EE, Spring 3.1, Spring MVC, Spring Security, REST, Quartz, Hibernate, JAXB, Rome, EhCache, JGroups, Memcached, Hadoop, Mahout, Jetty, Tomcat, JSP, jQuery, DisplayTag, Autonomy Idol, Eclipse, Oracle, MySQL, Linux, Shell Scripts, Ant, Mockito
- Added an API to the Sky search engine to allow all Sky departments to index their content for retrieval by any team.
- Wrote the new Query API to allow other Sky teams to access content via Atom or RSS feeds (using Rome).
- Implemented Spring security on all existing projects.
- Added HTML editorial layers into our search views based on keyword matching.
- Added improved technologies to the existing project; such as Quartz, JAXB, Hibernate with annotations, Rome, and Mockito.
- Crafted the architectural design and implementation for the new guided search project.
- Implemented a distributed caching system using EhCache, JGroups, and Spring.
- Developed 2 different prototype content recommendations engine from scratch and a user recommendation engine using Mahout.
- Worked with a team to implement the metadata repository for all Sky content.
- Designed and co-wrote a real-time image scaling service for Sky users.
- Rewrote the back-end auto-suggest service.
- Designed and implemented a stateless security system for our Rest APIs using Spring Security.
- Implemented an automatic data archiving solution using Quartz and MySQL list partition tables.
Contract Senior Java developer2008 - 2009The Guardian
- Worked as a software developer in a team of approximately 50 on a fully agile project.
- Worked in the continuous improvement team which sought to improve the reliability and speed of the web site.
- Implemented with a team the blog pages.
- Co-designed and implemented Google AdSense into the Guardian site.
Contract Java Team Leader2006 - 2007Macquarie Bank
- Designed and implemented a risk management (compliance) system. It aggregated all global share positions from all the different divisions and locations in Macquarie.
- Designed the database schema, application project, and Java architecture. This application had a high volume of transactions so we went with a combination of Hibernate and stored procedures for the batch processes.
- Communicated with the business users to gather the project requirements.
- Acted as the technical lead in a team of 4 developers.
- Suggested a redesign for the Macquarie leasing system, including remote/web services.
Senior Java Analyst/Developer2004 - 2006MBF (Bupa Australia)
- Delivered technology services to MBF in support of strategic initiatives. This includes architecture designs and requirements gathering on new and existing projects.
- Designed and implemented a wide array of applications for over 2 years.
- Converted applications and data from a legacy mainframe system to a new J2EE environment.
- Used a wide selection of complementary technologies - such as Tibco messaging (EMS/JMS), BusinessWorks, Optra Forms, Oracle 9i Java functions (running within Oracle), Crystal Reports, and TopLink.
- Developed a retail management system used by all MBF branches around Australia.
- Built a real-time report printing to any branch in Australia.
- Created a new J2EE-based application to replace the front and back ends of the existing health insurance software.