Synectic Solution | FinTech

Precision Features | C#.
Maintaining and creating new features for the Precision tool.
At Synectics, we have a machine learning AI that predicts fraud.
There are often gaps in what the AI can do, such as the AI thinks that 'M' and 'Male' are two different genders.
We then have to create a Precision feature in C# to correct for this behaviour.
Each Precision feature must have associated unit tests. NUnit Framework
Learn more about Precision - gov.uk | synectics-solutions.com

Client Onboarding | Tooling C# SQL.
I am part of the onboarding team, all of our tools are created in C# .Net, and we are responsible for the upkeep of these tools and we often have to debug the tools. My squad is heavily client dictated as such we often have strict timelines that must be met.
Most bugs occur due to bad configuration in the database. I was new to SQL when I started, but I now know my way around it quite well.
Currently, we have a big client dubbed “Canada” which has been a challenge, due to the repetitive nature of this client we have had to streamline our processes and tools.

Third year achievements

Unreal Project.
Created a project in Unreal using both C++ and blueprints.
This was for a coding test and I do have permission to post.

Studio Sim | C++ ImGui DirectX. Tooling and Gameplay Programming.
We created a bullet hell farming simulator engine and then a game based on that engine. We used DirectX 11 with ImGui.
I worked on the TileMap system and Entity system for the engine, using a component system for the entities.
As for the game, I worked on the enemy planting and spawning. A player will plant the enemies they wish to fight, the harder and more enemies they face the more money they will have to spend on the shop.
This has been my favourite project thus far at university; I enjoy the collaborative nature of group work. And making new friends.
The group comprised five programmers and five developers, although, in reality, it was closer to five programmers and two developers. This meant that making the game was more of a challenge.
A longer one hour video is avalible - Full one hour game and engine demo. | Nine Bye Warriors Github

Disertation | C++ SDL2 Pathfinding, Group Behaviour, Multithreading, GTests.
For my dissertation, I am looking at “How do you get 1000's of entities processing at the same time on screen without any lag?”
For this, I am looking at different pathfinding techniques (A*, JPS, HPA*, ect.), group behaviour (e.g. physical/ virtual leaders) and multithreading (should each AI agent have its own thread or should the different tasks/ groups have their own threads).
I am using GoogleTests to analyse the performance of each technique.

Mobile Game Dev | Kotlin Andriod.
The game I decided to make is a voice interactive Android app aimed at young children.
The player will make the noise of the animal on the screen.
This was my first time using Kotlin, everyone else was using Unity or Unreal, but for this game that may have been overkill, as thus I choose to build it natively for Andriod and using a new language gives me more of a challenge.

Low Level Programming | C++.
Low level consisted of creating a memory management system, multithreading and Json loading. It was very analytical as every performance improvement needed measurements. A few things of interest that stuck out to me: Json loading is very efficient and comparable to hard coding values, and using .size() is very inefficient.

Second year achievements

Group Project | C++ Unreal.
We created a demo for a level in a 3D bullet hell game.
The video details the aspects that I implemented into the game.
My job was working on the player and gun systems as well as the animations. One thing I am proud of is the feature that if a player looks at a gun/ ammo to be picked up, then using a ray cast that gun will then glow.

Game Creation | JavaScript.
I have been working on my own game for fun, the game is in the style of an arena fighter with tanks.
Use WASD plus spacebar for the green tank and the arrow keys plus right shift for the orange tank.
Each time you hit the other tank your firepower increases thus the enemy is knocked back more. Your firepower is reset when they respawn.
windows forms Play me in browser!

Website Development | HTML CSS JavaScript PHP.
As well as working on my personal website here, I have also been free lancing on IT Protocol's new website. IT Protocol
I have also had to opportunity to improve upon my JavaScript and PHP skills as I was contracted to implement an "I am not a robot" button for an online retailer's contact and order form. Fan Display Cases

Android Application Development | Java XML.
In my free time I have been working on an Android app, this was my first attempt at using Java and XML. I am very happy with the results and have learned a lot.

Further Games and Graphics | C++ DirectX11.
Enthusiastically learning the consepts of DirectX11. In the 3D scene there are textures and models loaded in from files, some of the models are transparent. Using shaders for lightling.
Learning shaders is a good challange, after I installed a syntex editor my life got a who lot easier.

Concurrent Network Applications | C#.
Working with networking, multi-threading elements and socket programming eagerly towards a game with networking capabilities. Multi-threading has been a good learning experience, one which changes your concept of programming from one where everything runs from top to bottom, to the concept of process happening at the same time.

First year achievements

Fundamentals of Games and Graphics | C++.
First semester I worked on a 2D game in the style of a simplified Pacman.
I enjoyed working on object collision as I found that mathematics interesting.

Fundamentals of Games and Graphics | C++ OpenGL.
Second semester I upped the ante with 3D graphics using OpenGL.
In this project I worked with 3D environments, lighting and textures.

Game Engine Creation | C++ using the SDL libraries.
Create a few Mario levels in 2D.
Getting the AI to behave as I wanted this too was a challenge, as you can see on the first level the right Koopa glitches off of the platform a bit.

Life as an IT Technician | IT Protocol

IT Protocol is an IT services provider. After I finished at South Wales, I decided that I wanted to work in the IT field. I thought that the best way to get into the industry was to become an apprentice. I did my apprenticeship through 3AAA then switched to Mercia Partnership.
At the end of my apprenticeship I told my boss Richard about my aspirations to study computer games programming, Richard was happy to keep me on untill then. I have free lanced for him a few times; to cover when he is on holiday and building their website.

Communication & Time Management.
My main roles at ITP were working on the support desk. I had to answer phone calls and email. Richard worked from home a lot; it was up to me to manage my time. Some support cases were easier then others, sometimes a user would have forgotten to turn their second screen on, and other times you were on the phone for hours or had to go to the manufacturer for answers. I was responsible for all my cases and had to document everything in our CRM system.

Teamwork & Documentation.
Before I started working at ITP one of our clients got hacks, which resulted in their website going down for a few days, as they are an online retailer this was unacceptable. We were tasked with creating a disaster recovery system which would mean if the same event occurred the site would not be down for more then a few hours. This required a lot of teamwork and documentation; one of my first jobs was to document the whole virtual machine building process, from first turning the physical server on to setting the network options in VMWare, the document was about 50 pages to start with but we managed to narrow it down to about 30.

Independent Research.
One such project that I am proud of is when my boss tasked me with creating a new CRM system, at first I had to do the research, I found 3 different CRM systems, two of which were self hosted and one was online, we decided not to go with the online version for security reasons. Out of the other two systems one was an updated version of what we were using, so apart from being a new lick of paint there was little incentive to upgrade. The other system was Microsoft CRM, I had to set up the SQL server and the Windows server to host the CRM system, these were both virtual systems on VMWare. Once Microsoft CRM was setup I ported over all the information that we had on our old system, after playing around with it and talking through it with my boss we decided to stick with our old CRM system due to its reliability and Microsoft CRM lacking features we were accustomed to. Even though the task I was set did not end in a complete success I value the learning experience.

Technical Development.
Another project that did end in a success was creating a two factor authentication system for our remote desktop server, for this I used the product Duo by Cisco, I had to research the product and implement it to work with specified uses on Active Directory. I also had to add in custom group policy rules. As ITP are an IT services provider, I was able to get us some NFR keys for internal testing. The reason for my setting up this system was that one of our clients was getting their ISO27001 and the two factor authentication system would have improved their security.

Presenting.
Whist working at IT Protocol one of our clients wanted a website to supplement their physical store, I build them a relatively inexpensive SquareSpace website. After I had finished getting the website up and running and porting some of the old website over for the sake of demo, I was in charge of creating a presentation for the store owners. I was able to successfully present the new website to the client as well as demo how to update it.

I could have continued working at ITP or have moved to a different company but I decided that I wanted to follow my passion whist I am still young and have the time. If I continued within that industry I would have liked to be an IT administration.

University of South Wales | Computing Mathematics

Computing Mathematics was a joint course between computer science and mathematics, it was about 2/3 mathematics and ran by the mathematics department.

Integrated and Interactive Systems | Python.
My favourite memory from South Wales was when do had to create a game on the Raspberry PI, we had an attachment on the PI called Sense HAT which is an 8x8 RGB display as well as a bunch of different sensors including temperature, acceleration, etc.. The game was very simple, an arrow would appear on the HAT’s display and then you had to rotate the PI in order to make the arrow point up, the time limit would get smaller and smaller until you ran out of time and then your score would be displayed. This project was the reason in which I decided to come back to university and study gaming.

Graphics Development | C++ OpenGL.
We were tasked with creating a 2D & 3D scene. With the 2D scene we had to have different objects move around the screen. With the 3D scene we were given a model of a plane and we had to animate it in the scene.

Website Development | HTML CSS
This is when I first started to learn web development.

Hobbies

Snowboarding. I am the one in the middle. This was me Christmas 2019 with the snowboarding society at Val d'Isére. val disere snowboarding

Mountainboarding. Video playlist of me and my dad enjoying the sport. YouTube

Kick-Boxing. I am infact a black belt.

Gaming. I enjoy playing DotA2 with friends, or EU4 singleplayer.