- Optomany LimitedAndroid Developer (Kotlin/C++)DIGITAL & ITJune 2019 - August 2021 (2 years and 2 months)Maidstone, UK• I worked as an Android Developer within the company's terminal payment application development scrum team with a focus on the development and improvement of existing and new applications. The role was responsible for client application development; working closely with other multi-disciplined engineers in the team to complete analysis, feasibility, application design and implementation of requirements from both internal and external customers in order to deliver payment-standard-compliant applications that would reside on the latest Android payment devices (e.g. PAX, Worldline) - acting as a lead developer on projects.• Most of the code I wrote was in Kotlin (Android) with some C++ when more control was required at the OS/NDK level. We also had a significant amount of Java code in our codebase which we were gradually converting to Kotlin. In terms of protocols, in a nutshell, my code mainly talked to the card (ICC or Contactless) via EMV and with various payment gateways via Nexo and other proprietary protocols.• Participation in sprint planning, code reviews, sprint reviews, retrospectives, estimations, etc. with the Scrum team.• Analysing business requirements to ensure feasibility, and documenting design of implementation• Writing high quality, secure and compliant production code and unit tests in line with Industry and company coding standards to satisfy requirements• Identifying deficiencies within the applications and providing clearly documented recommendations for resolution• Act on reported problems raised by internal and external parties in a timely manner
- HelvarSenior Software Engineer (C++/Javascript)DIGITAL & ITNovember 2016 - December 2018 (2 years and 1 month)Dartford, UK• I worked as a Senior Software Engineer in a geographically dispersed development team across UK and Finland primarily responsible for the design and development of Helvar's next generation smart lighting control software collectively known as the Lighting Intelligence Platform comprising of a Linux-based polyglot microservices architecture at one end and a serverless AWS infrastructure at the other. I also maintained the legacy systems from time to time, mainly the Designer Software Suite, a feature-rich Windows desktop application written in MFC responsible for intuitive programming and configuration of the Helvar lighting routers network.• Main technologies used: C/C++, JavaScript/Node.JS, Python, Linux, RabbitMQ, Docker and AWS• Acted as the design lead for projects, ensuring that quality is driven throughout the team via leading by example. Promotion of industry-standard, modern software engineering practices and patterns within my team such as TDD (Test-Driven Design/Development), the SOLID Principles of OOP, clean coding style/standards, testability/refactoring techniques, etc.• Responsible for mentoring and providing technical guidance to colleagues in the team. Organizing and running internal modern software engineering training workshops/classes for the team.• Planning/organisation of work with Version-One, documentation with Confluence and communication with Slack.
- VerifoneTerminal Applications Tech Lead (C++/C#)DIGITAL & ITJune 2014 - October 2016 (2 years and 4 months)Ashford, UK• I tech-lead the OCIUS terminal application development team who are responsible for the development and maintenance of payment terminal software applications both sold and used as part of hosted services operated by Verifone. In addition to my usual software development activities, as a senior member, I have the following additional roles and responsibilities.• Ownership of resource planning of my team, this includes allocating work to team, detailing the work load assigned on the 'Resource Planning' spreadsheet and providing the R&D Manager with a copy weekly• Review design specification completed by developers prior to submission to the business, ensuring technical accuracy and completeness. Ensuring that technical documentation is of a suitable professional standard.• Responsible for the team following the SDLC (Software Development Life Cycle), coding standards and ensuring that code reviews are completed for every check-in.• If code is returned from QA with bugs, I must complete a review with all relevant parties to understand why these bugs were not picked up in the development stage and unit testing. After each review meeting, feedback be provided to the R&D Manager informing her/him of the outcome.• Ownership of deployment sign-off processes. Responsible for reviewing and approving deployments before they are released to the Technical Release Coordinator, this is to ensure that the quality of code being released by R&D is of the highest standard.• As a Senior developer I am responsible for making technical decisions about how to code a solution, which solution would best fit the product and ensuring that all options have been explored before continuing with a solution.• As part of my role as a Senior, required to review CV's, provide recommendations and participate in interviews.
- Bachelor of ScienceUniversity of Kent2011BSc, Computer Science 1st CLASS