I like building things, I like breaking things. But most importantly I like breaking enough that I've somehow made something spectacular. I've been programming personally for over 15 years and I've faced a lot of challenges, not all of them simple "if else" problems, and I've yet to find something that if I don't break enough logic, code, and brain cells I can't get it working.
My view on problem-solving is to try to think outside the box as much as possible and attempt to simplify problems down to their logical core and then build up from there. In my opinion, there are a couple of things that come along with simplifying a problem:
The most complex problems can have the simplest solutions.
Explaining it to someone is far easier when it's more simple.
Finally, it makes tackling the problem far less daunting if there is a lot less to think about when planning for it.
I learned this lesson early when I was building my first game at 11. The gravity was giving me quite a headache because I could make things move, but I couldn't make it so that the player could walk and jump because there was nothing for them to jump on.
My solution? Gravity pulls things down, right? So start with a character that's infinitely moving down. Now make the "floor" and set the character's vertical velocity to 0 when x amount of pixels from the centre of the floor sprite. 2 weeks after I started the game, I had a character that could fall onto the floor.
After making my first game though I found that I wasn't a big fan of game development because I am too big of a fan of gaming. I got into gaming because of the challenge of the puzzle and the learning required to pass a level or build a better base, when I build the game I know too much about it and there is no mystery.
So instead I started looking at other puzzles that code could help me with. So from the age of 13, I started looking into "being a hacker" learning the absolute basics of things like password security and encryption.
This was very intriguing to me, but the problem comes in that I don't like "tearing things down" I like creating things, so becoming a hacker doesn't scratch that itch
That's when my IT teacher taught us about servers and I knew what I was going to be doing for a long time. Since then I've loved how different tech stacks could be evolved to accomplish the most intricate of services, like having a button to auto-order coffee, or a service that multiple people can join in and do callouts together but friends could be sitting in another channel playing a different game (At the time Team Speak)
I loved the whole concept of building from this point. I was hooked, and ever since then, I've been trying to improve my architecture and development skills so that I can build the most efficient system possible. I don't get it all the time, as with most things in development a lot of things require iteration, but I have no problem ripping apart a service I've built to squeeze out as much as possible.
This is where my love of data comes in, I used to only use data to try and make my code as efficient as possible by using the data around CPU/Memory utilisation to find blocking points, but I soon learned that the same logic that I used for that could make a lot of other things. I soon learned that data is the key to understanding how and why things happen, everything can be broken down into data points that can then be mapped and patterns uncovered. That is the new challenge that I've given myself is to learn how to find those patterns, and once I've found the pattern maybe I can use it in a cool way.
A good example of this is my financials, I come from a household with little money so I started looking into what I could to make our lives better. So I built a script that took down a CSV of my latest transactions cleans it and groups the transactions together. From there I could easily plot out what I was spending too much on. With that simple script, I've managed to put myself in a much better place financially. And that is why I love data.
Work Experience
Responsibilities:
Plan Client Ingestion features and implementations.
Consult on different data or pipeline-related issues.
Build a spec for a multi-processed pipeline that needed to be able to batch large amounts of files containing marketing data.
Stand-out landmarks:
Built a pipeline that took files from S3 and BigQuery, loaded them into Snowflake and then performed category rolling up.
Responsibilities:
Help plan project backlogs.
Often projects had deep and complex requirements, so it was part of my job to break down the requirements and build out the technical features that it would be built up from.
Planned and implemented project architecture and infrastructure.
Bigger projects often required more planning than just a monolithic server and a database. From basic split back and front ends to full ETL pipelines that had to consume from multiple sources, I've planned a lot of architecture.
Spoke to clients to gather as much information as possible to build up requirements. Once the requirements were gathered breaking the feature down to its absolute basic components and then built back up as a feature backlog.
Be a point of knowledge for lower experienced devs.
Stand-out landmarks:
Got Google Data Engineering Certification.
Helping lead and organise the teams.
Responsibilities that I had:
Planning mobile features
I was involved in all of the planning and consulted on all of the features or possible features that were going to go into the mobile apps.
Managing data flow between mobile and web team
The 2 teams had to have quite specific tasks done because we were creating the data that the web team would be displayed to a companies management. Because of this, I would need to manage what features were going to be released on the apps to correlate to what was being released on the front end.
Managing server
Though Safety didn't use the cloud it did use a rented server. Meaning that all of the management fell under me to do, specifically this involved building a docker container to use Nginx to serve the Laravel files.
Stand-out landmarks:
Docker implementation
Implementing Docker was a landmark because it proved its necessity in any level of tech.
GitHub implementation
Moved the company from using a shared FTP server to develop on, we implemented git repos that were stored on GitHub and could use the common pattern of development.
Improving security standards
Responsibilities that I had were:
Build the basic CRUD operations for the system.
Help manage the system running on the EC2 instance.
Learn as much as possible
Standout out landmarks:
Learned about Laravel and the basics of programmatic frameworks.
Introduced to AWS (specifically S3 and EC2)
Education
Water Stone College - Attended 2008 - 2016
Qualification - National Senior Certificate