Hello


I'm Tom Kilpatrick

Professional Software Engineer

Portrait Photo

Introduction

I'm currently employed as a Software Engineer at CitiGroup in Belfast. My professional career spans various industries, during which I found myself enjoying programming in Excel which helped me to expedite business processes. I was motivated by this experience so switched into a fully-fledged Software Engineering career.


For this career change, I studied a Masters in Software Development at Queens University Belfast, graduating with a Distinction and a final average of 84%.

Queens University Logo

University Modules

  • Programming (Java) - 77%
  • Computing Foundations - 96%
  • Web Development - 90%
  • Databases - 96%
  • Software Engineering - 77%
  • Data Analysis - 82%
  • Cloud Computing - 88%
  • User Experience Design - 77%

I'm self-taught in Android App Development, Flutter and Dart and enjoy leveraging my programming skills to solve problems beyond my professional career (refer projects below).


This site is to showcase some of my most recent software projects.


Please refer to my LinkedIn Profile for my most recent employment and education history.


Recent Projects

Personal Project (ongoing) - Android and iOS App

WiseBuy app screenshots

Justification

Create an app for users to find the best value products they're buying. It has a barcode scanner to compare prices between stores and brands, designed for using quickly while shopping. Strong focus on making the app simple, powerful and intuitive.

Languages, tools & Frameworks

Built using flutter 3 with dart programming language and Riverpod state management library. Utilizes on-board SQLite database to retain user data on device. Onboard barcode scanner calls external REST APIs to retrieve product information. Flutter was utilized to make this app suitable for multi-platform release.

Demonstration

Contact me for a live demo.

Personal Project (ongoing) - Android App

Android Studio Screen showing app

Justification

Make an app for users to easily create and use multi-interval timers, like for interval training. Save their timer designs on the device in an onboard database.

Languages, tools & Frameworks

Built in Android Studio using Java 8. RxJava library used for multithreading background tasks. Onboard SQLite database used to store timers and records. Android 'Room' Library used for object relational mapping (ORM) and data entry into database. MVVM Architecture.

Demonstration

Contact me for a live demo.

MSc Software Engineering - easyJet Database Project

Requirements

Reverse engineer the easyJet booking database from the easyJet website, then model, implement and demonstrate a fully functioning database to mimic the easyJet booking database.

Deliverables

Fully functioning database, Entity Relationship Diagram, report detailing design choices and this demonstration video.

Languages, tools & Frameworks

MySQL, PHPMyAdmin, Lucid Chart for UML Diagrams.

MSc Software Engineering - Cloud Native Microservices Project

Requirements

Take a provided UI and build the backend as a cloud native microservices application using containers. Design to include full unit testing (checked via CI pipelines), configurable custom reverse proxy router, automated checking, logging and email reporting and a website for administrators to monitor system health.

Deliverables

Fully functioning microservices application, report detailing design choices and this demonstration video.

Languages, tools & Frameworks

PHP, HTML, CSS, JavaScript, Docker, Rancher (Kubernetes), Gitlab CI Pipelines, Gitlab container registry. All hosted on University private cloud.

MSc Software Engineering - Full Stack Website, including full REST API.

Requirements

Find a public dataset, clean and parse the data using programming logic and insert into a database. Then build a fully functioning REST API and website without backend frameworks.

Deliverables

Fully functioning public website with user sign up and a seperate administration site. REST API built to parse database queries from the User Interface, including REST API developer signup (email authentication and validation).

Languages, tools & Frameworks

PHP, HTML, CSS, JavaScript, MySQL. Postman used for REST API testing.

MSc Software Engineering - Data Analysis

Data Visualisation Graphs

Requirements

Acquire and clean a public dataset to make it fit for purpose, then perform appropriate visualisations on the data and either draw valuable conclusions or propose further avenues to explore for future analysts.
Choose an industry to examine, meet an expert from that industry, then methodically uncover valuable insights for that industry based on publicly available datasets.

Deliverables

Report on chosen industry and valuable Data Analysis for future analysts, two analyses within Jupyter notebooks.

Languages, tools & Frameworks

Python3, Jupyter Notebooks, Pandas, Matplotlib, Seaborne.

MSc Software Engineering - Software Engineering (Team Project).

Artemis logo and thumbnail

Requirements

I was one of a four person team to build a command line board game in Java. The game was modelled in UML to match the Nasa Artemis Missions, then programmed in Java.

Deliverables

UML Use case, Sequence and Class diagrams. Evidence of agile project management methodologies to manage the project, evidence of the use of git as version control system and a demonstration video.

Languages, tools & Frameworks

Java, Junit, Lucid Chart for UML.

Programming Languages

Java

Python

Dart

JavaScript

PHP

HTML

CSS

MySQL

Oracle PL/SQL

SQLite

Testing

JUnit

mockito

Cucumber BDD

Frameworks

Flutter

Docker

Spring

Bulma

Platforms

OpenShift

Android

Tools

Intellij IDEA

VS Code

Android Studio

Postman

Git

Contact

Thank you for browsing my site, please do not hesitate to contact me via these links: