SOFTWARE ENGINEER

I am a first class graduate student from the Greater Edinburgh area, Scotland. Here, you will find notable experiences and links to relevant (social) media pages of mine.

I have been coding since I was 14 years old (2015). During my time practicing software engineering, I have: developed personal projects (such as this), completed multiple university coursework assignments, contributed to group projects, and worked in professional teams.

This page was developed by me, entirely in vanilla HTML, CSS, JavaScript, and jQuery! Head to the GitHub repo to find the source code.

Here are some personal favorites of the projects I have made:

Connect 4

This project was originally a coursework assigned by Edinburgh Napier University, but was cancelled when the Coronavirus pandemic began; before we had a chance to start it. I decided to continue with the project anyway, in my own time.

We were asked to develop a standard Connect 4 board game in C, that was playable within the command line. To get full marks, it had to include modifiable board dimensions, the ability to undo/redo moves, and the ability to save/load games.

After implementing all of this, I took a step further by implementing AI for users to play against. The Minimax Algorithm with Alpha-Beta Pruning was implemented to achieve this. Minimax is a decision-tree-based algorithm, and the Alpha-Beta heuristic allows the execution time of Minimax to be reduced by cutting-short decision branches that can only yield a result worse than the current-best.

Honours Project

For my Honours Project, I researched the Capacitated Vehicle Routing Problem with Time Windows (CVRPTW).

The problem is an NP-Hard combinatorial optimisation problem. Mathematically, it is thought to be unsolvable as it is not always possible to find the best solution through a brute force search. The search space quickly becomes too large as the number of customers and vehicles increases. However, the best solution can be approximated in a feasible amount of time using AI.

The AI meta-heuristic I used is known as a Genetic Algorithm. During the project, I experimented with two existing algorithms and wrote my own based on my findings.

My First Project

The first project I ever developed started in 2015. The project was a free-to-use modification menu for the game Call of Duty®: Black Ops II.

I began this project for recreation at the time, but it continuously developed my interest in software engineering. It also profoundly accelerated my learning in regards to software engineering, and from a young age (14).

I released this project publicly and, for a few years, actively kept it updated. Over time, it received an increasing amount of positive feedback. If any original fans of the project happen to be reading, I sincerely thank you for the memories, experience, support, and I hope life is going great! ❤️

The community and forum which this project used to be active can be found here.

Infographics

Software Engineer

Aug 2023 - Present

 

A software development company that, currently, provides software for fire safety services and law firms. The company is an accredited Microsoft Gold Partner which greatly increases their ability to remain up-to-date in an ever-changing industry.

Technologies that the company uses includes C#, ASP.NET, Azure, Docker; and more. I started the role as a graduate software developer, working as part of an agile development team.


Edinburgh Napier University

Service Desk Analyst

Dec 2022 - Jul 2023


Technically a promotion from the following IT Help Desk role, although not officially a promotion. It is the university's first line of contact for staff, students, and third parties with issues related to Napier's IT.

The following Help Desk listed is managed by people in this role, and is capable of less complex work. This role is more complex as it plays a more active part in supporting the university, in relation to staff members, other departments, and more sensitive software/data.

IT Help Desk

Sep 2021 - Dec 2022


I provided IT support to students, and sometimes staff, on-campus. I also had to maintain some of the hardware for the university; exclusively PCs and peripherals (monitors, projectors, etc) in the campus' student's computing centre because this is where the desk is located.

Student Tutoring

Sep 2021 - Apr 2022


I co-ran weekly Programming Surgeries sessions, aimed at helping fellow students in lower year groups learn and debug code. The issues students came with often related to coursework they were given, so we therefore had to figure out how to help them learn and not write code for them.

Sometimes students approached with issues that I had never faced (regarding libraries, languages, and concepts I'd never seen). In this case, it was a great learning opportunity that also challenged my problem solving skills; due to having to help students learn while learning myself.

Software Engineer

Jan 2021 - May 2021

 

In my third year at Edinburgh Napier University, I participated in a group project consisting of myself and three others. We were selected by the charity Street Soccer Scotland to work on the project, and we worked as part of a P3.express agile development team.

The objective was to develop the ground work of a new interactive learning environment that Street Soccer Scotland would use to expand into different countries and train coaches around the world. Our work was then carried on by another team of developers who were provided the base of the website that we had developed.


Buzz

Software Engineer

Feb 2022 - Jul 2022

 

A start-up company, aspiring to build an interesting social media and chat app that aims to simplify planning social events.

During my time with Buzz, I worked on a few of their projects: mobile app (Flutter), back-end API (Django), and their AWS and Docker deployment. I also got experience developing some interesting features, such as a live chat, authentication, mobile app UI/UX, and much more!


Others

The experiences listed here are only those relevant to IT. More are listed on LinkedIn!

Additional experience includes further examples of team-working, tutoring, and customer experience with a wide range of clients.

Edinburgh Napier University

First Class BEng (Hons) Software Engineering Degree

Sep 2018 - Jul 2022 • Acquire a reference via the Higher Education Degree Datacheck

The following is a list of the modules I took each year.

Year 1:
• Computer Systems 1 (consisted of computer hardware, networking, and operating systems)
• Foundations of Software Design and Development
• Foundation Mathematics
• Introduction to Human Computer Interaction
• Programming Fundamentals
• Mathematics for Software Engineering

Year 2:
• Operating Systems
• Database Systems
• Object Oriented Software Development
• Algorithms and Data Structures
• Mobile Applications Development
• Software Engineering Methods

Year 3:
• Artificial Intelligence
• Data Analytics
• Software Engineering (consisted of design, development, testing, and agile methodologies)
• Computing in Contemporary Society
• Group Project (Street Soccer PITCH)
• Advanced Database Systems

Year 4:
• Honours Project
• Agile Project Management
• Concurrent and Parallel Systems
• Formal Approaches to Software Engineering
• Secure Software Development


Udemy

GitHub Ultimate: Master Git and GitHub - Beginner to Expert

Jul 2021 • UC-fcc823e2-2262-42fe-aa48-ac905fb40b0a


In-depth coverage of Git's and GitHub's tools; roll backs, version tagging, the reference log, upstream branches, and much more.

REST APIs with Flask and Python

Jun 2021 • UC-f66879d8-2b5b-4b43-907b-49a1d07dfac4

The course taught me how to develop a back-end API in Python Flask that could receive and respond to HTTP requests. It covered user authentication, Model-View-Controller architectures, and Object Relational Mappers with Flask SQLAlchemy.

LeetCode Solutions

Of course, gaining further software engineering experience through professional and personal development is a great interest of mine.

When I'm not working on personal projects, I try to tackle Data Structures and Algorithms problems. For instance, my LeetCode solutions can be found on both GitHub and LeetCode.

fizzBuzz.cpp

    Feasibility Intensive Genetic Algorithm

    As mentioned before, I investigated the CVRPTW for my degree's Honours Project. I was given the opportunity to write a paper about the FIGA I developed. However, the paper was unsuccessful as, although my work was original, it wasn't better than bleeding-edge methods.

    The animation you're seeing is a visualisation of the result from a real run of the FIGA. It shows how the solution evolves over time, starting from a solution produced by a heuristic.

    Parallel N-Queens

    N-Queens is a DS&A problem that entails finding all permutations on an NxN board where N amount of queens do not attack each other. The animation you're seeing is generating random permutations and testing their validity; red cells highlight conflicts, and green queens are valid.

    An effective solution is backtracking. However, recursion can be a bad idea in multi-threading as it can spawn too many threads. I developed a coursework which aims to solve the problem in OpenMP and CUDA.

                            

    //TODO: more projects are yet to come