Kotlin Security Developer2019 - 2020FlowCrypt
Technologies: Kotlin, Gradle Kotlin DSL, OpenID Connect, Koin, KMIP, Semaphore
- Implemented using lightweight Kotlin libraries such as Javalin and Koin.
- User security implemented using OpenID Connect & JWT.
- Continuous integration using Github and Semaphore CI.
- Used an existing KMIP client implementation and updated to use TLS 1.2.
Senior Java Developer2019 - 2019Onyx Services
Technologies: Java 8, Maven, Bamboo, Spring 5, Spring Boot 2, Spring Integration, Spring Security, UnboundID LDAP, Oracle, Spring Data JPA, Hibernate, Hikari, Project Lombok, Logback, AssertJ, Mockito
- Migrated existing Java applications.
- Implemented extensive security overhauls and other requested changes on existing projects.
- Worked in an Agile team consisting of three developers, two testers and two Scada engineers.
- Migrated and updated crucial applications from Western Power to AEMO.
- Updating all applications to Java 8 and the latest Spring and Spring Boot.
- Implemented continuous integration using Bamboo.
- Integrated applications to authenticate with Active Directory using Spring Security and UnboundID LDAP.
- Delivered all projects on time and budget.
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.
- Coordinated 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.
Software Consultant (Contract)2009 - 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 two 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 cowrote 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.
Senior Java Developer (Contract)2008 - 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.
- Codesigned and implemented Google AdSense into the Guardian site.
Java Team Leader (Contract)2006 - 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 two 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.