My first significant project, started when I was 14 years old, developing a digital marketplace for CD keys. The platform enabled users to purchase product codes for services like Steam, Xbox, PlayStation, and iTunes. Once purchased, these codes were emailed to the customers. This was an interesting project looking back now. I had to learn databases, coding in JavaScript and PHP, handle SMTP for email functionality and use the world’s slowest DNS provider.
The first challenge wasn't technical, but rather sourcing the CD keys. The minimum viable product (MVP) was simply codes that I bought and listed. I remember my surprise when I got my first sale from someone in the USA. The site was then incorporated as a limited company to partner with a proper wholesaler who had an API.
After high school, I wasn’t quite sure what I wanted to do. I loved programming, I enjoyed designing the things I was building. I was also keen to learn business in the context of startups.
After reading the book around this time, I liked its message. Although simple, it explained my passion for programming, design and startups. I’d developed some basic skills in each. But to go further, I’d need to advance my knowledge and skill levels to decide what was best for me. I decided to delay going to university to have a go at building a software as a service start-up with two others for a bit to see where that could take me. My thinking being, “I can program, design and learn about startups at the same time!”. You can read a case study about the experience here.
We reluctantly closed the start-up after around 18 months. I say reluctantly as we’d ran out of money 3 months before, dropped what little salaries we had, and were only able to continue running our ever-scaling AWS infrastructure with an AWS grant. Funnily enough, in those 3 months, we’d still managed to achieve a massive amount of progress, even if we were running on fumes. It was a difficult decision, but in hindsight, it was what needed to be done.
With the pandemic, there wasn’t many if any jobs and there was no telling if the situation was going to improve in the coming years. I enrolled in a 4-year degree in software engineering at Edinburgh Napier University in September 2020.
There was and still is so much I don’t know, I wanted to take a ground-up approach to filling in my knowledge gaps and that meant starting at the very beginning. It was painful at times doing introductory programming classes in year one. But I still felt like a beginner doing classes in discrete maths, Assembly and C in the same year. Nearly all my experience before university was focused on web technologies and managed languages. Although I’ve had plenty of modules and side projects focused on web technologies during this time, I’ve enjoyed the exposure to unmanaged languages. Additionally, being asked to think abstractly and theoretically in certain contexts has been a nice change of pace.
While at university, I was fortunate to be able to spend two summers as a software engineer intern at FreeAgent. I learned a great deal from these roles and met a lot of friendly and creative people. FreeAgent has over 150,000 active users and it was my first time working in codebase of that scale.
For my university honours project, I’m building software to manage and search through large amounts of argument data. Computational argumentation is a field in artificial intelligence that focuses on modelling, analysing, and automating the process of making arguments and forming decisions based on those arguments. It's about creating systems that can understand, generate, and evaluate arguments, much like humans do in discussions and debates, but using algorithms and computational methods.
The main challenge with computational argumentation is that arguments contain a lot of information. To effectively search through a huge number, say hundreds of thousands or even millions of arguments, you need a lot of computing power if you're only searching by keywords. To address this, I'm considering using vector embeddings to create a semantic search engine. This approach focuses on understanding the meaning behind the data, rather than just the data itself.
It turns out that as I near graduation, there are more things than ever I want to learn. But I suppose that’s a reason why the industry’s so exciting for people who love learning every day.