About Harrison

A highly motivated, innovative and professional software engineer.
Can integrate seamlessly into, or lead, teams producing
high quality software artefacts using a variety of languages, libraries, tools and techniques.
Passionate about all aspects of technology. Able to learn new languages and technologies quickly.
Specialises in JVM applications.

Experience

Jan 2021 - Present

Senior Software Engineer

BAE Systems Digital Intelligence

Senior software engineer leading a distributed SCRUM team based on customer-sites and at home. Designed and built an array of Android, JVM (Java 11, Kotlin, Spring, Apache NiFi), TypeScript (React), and .NET (MEF/WPF) applications and plugins. Responsible for establishing the team's engineering approach and best practices. Highly involved with client, end-user, and product owner meetings.

2018 - 2021

Software Engineer

BAE Systems Applied Intelligence

Lead a software engineering team building a prototype application for exhibition at DSEI utilising TypeScript, React, Node, GraphQL and Neo4j. Interacted closely with stakeholders and sub-contractors. Presented the prototype to potential customers.

As part of a scrum team added new features to a personal data management system using C# .NET Framework and Core, TypeScript, React and Microsoft SQL Server.

Sept 16 - 2018

Graduate Software Engineer

BAE Systems Applied Intelligence

Built a knowledge base application utilising a Neo4j graph database linked to Elasticsearch to store and search highly connected data.

Designed and built from the ground up in a small team a document searching solution utilising Elasticsearch to integrate with Microsoft enterprise systems including: Distributed File Systems, Exchange, SharePoint and Skype. A Java Spring backend with an Angular 4 and Materialize frontend provide a seamless interface for viewing all documents.

Created a unified Linux system monitoring solution across multiple client system using Nagios with NRPE and shell scripting.

Conducted a security audit of client systems to reduce the potential attack surface of the systems.

Jun 2015 - Sept 2015

Software Engineer - Summer Intern

Thales UK - Innovation Hub

Contributed to the Centre for Maritime Intelligent Systems; building and deploying maritime simulation software build using Java, VBS2 and Data Distribution Service.

Worked on tools for WebLVC and HLE-E interoperability protocols using Java, Zero MQ and JSON; including building a WebSockets implementation in C++.

Jun 2013 - Aug 2014

Software Engineer - Industrial Placement

Thales UK - BTC

Concept development and demonstration by means of low fidelity, yet highly flexible simulation. Created and maintained a large suite of Java applications, with some C++, which supported the simulation. Maintained DDS Topics allowing communication between simulation applications. Additionally produced scripts and scenarios for the VBS2 simulator used for visualisation and CGF. A large degree of stakeholder interaction was required during concept development and demonstrations.

Professional

As a member of the IET; strives to be a professional software engineer and is continually developing himself.

Innovative

Utilising previous experiences and education produces innovative yet simple solutions to complex problems.

Engineer

Believing in engineering principals for software development; follows engineering best practices and methodologies to produce high quality software artifacts.

Education

2011 - 2016

The University of York

Computer Science with Artificial Intelligence

Master of Engineering - First Class Honours

A five year integrated masters course including a year in industry at Thales with a specialism in artificial intelligence. The course covered a wide variety of subjects including but not limited to:

  • Programming Paradigms
  • Software Engineering
  • Databases
  • Operating Systems
  • A variety of Artificial Intelligence and Machine Learning techniques
  • Human Computer Interaction
  • Real Time Systems
  • Cyber Security

Final year dissertation on the subject of Reinforcement Learning for Helicopter Control

During the third academic year (2015) won the IBM Prize for Outstanding Performance

A final group module with a industry customer (Thales) to create a (simulated) autonomous flood aid system. The module involved requirement elicitation, requirement changes, team interoperability and a sales pitch. Java was used for the simulation and Command and Control software. RabbitMQ was used as the communications channel. Unfolding Maps was used for visualisation. The codebase can be found on github.

2009 - 2011

Oriel Sixth Form

A Levels

Two years of AS and A Levels:

Mathematics A*
Computing A
Physics B
Chemistry (AS) C

2007 - 2009

Oriel High School

GCSEs

13 GCSEs (A-C) including:
English, Mathematics, Physics, Biology, Chemistry, Electronics and ICT.

Skills

Professionally used skills and technologies. Core skills in bold.

Programming Languages

Java (7 through 17), Kotlin, C#, Python, TypeScript, SQL, Bash, C++

Operating Systems

Linux, Windows, Android, MacOS

IDEs & Editors

IntelliJ, Visual Studio Code, Eclipse, Visual Studio

Office Software

Microsoft Office, LATEX, Open Office, PDFs, SharePoint

Libraries

Mockito, JUnit, Espresso, Selenium, Jackson, Apache Tika, Message Queues, Enzyme, NUnit, NSubstitute

Frameworks

Spring Framework (Boot, Web, Data, GQL, Security), Dagger, React, GraphQL (Apollo Server & Client)

Teamwork and Knowledge Sharing

Git, Agile (Scrum), Atlassian Tool Suite (Jira, BitBucket, Confluence), GitHub, Slack, Team Leading, UML

Other Technologies

JSON, WebSockets, XML & XSD, HTML5, MySQL, SQLite, SSH, Gradle & Maven, Elasticsearch, Neo4j, Docker, Apache NiFi