A long windy road of failures and successes.
I started my development journey in 2017.
Prior to this I had dropped out (failed) of aeronautical engineering (something that I had been focused on since primary), life in general was not looking good for me at that point.
I had previously playing a game called GuildWars2 which had an API for market/item data. I was currently playing Blade and Soul, another mmo, that didn't have an API like that, when I thought to myself "I should make an API, can't be too hard".
Now when someone says that it means two things:
- They are going to lean a lot about life
- It's time to grab a bowl of popcorn
My original (v1) "api" ran on Windows using powershell, only worked with the game running and used Dropbox to share the resulting data, which often got corrupted.
The second iteration (v2) was a tad more advanced as I figured out how to get the data without the game running.
I also secured a domain and hosting for my bash scripts.
The data still got corrupted every so often but progress was made.
The next few steps for me was pretty hard:
- I had to realise I had issues.
- Asking for help to patch/solve those issues.
This also marked a turning point for me.
I was really lucky to get a mentor (David) who hammered some basics into me such as using git and encouraging me to use a full IDE instead of Notepad++.
He also introduced me to Node.js, so I ended up rebuilding the api again in node.
This (v3) was a success.
In the intermediate years I have returned multiple times to that project, updating it with new techniques and tools, fixing past mistakes.
The next project I would work on is an API for GuildWars2 in 2018
My goal was to have something that would work in both excel and Google sheets.
It would also have to be flexible, offering more data and control than existing offerings, including the official api (which was json and not suited for bulk requests).
This project has been my experimentation ground.
- It's where I first used Yarn.
- Where I built my first package (which I have since removed).
- Where I learnt about nosql, and it's pitfalls.
- Where I first used typescript.
- Where I first automated my workflow with CI/CD.
- Where I created my own orm for mongodb.
- Where I failed to migrate mongodb to a sharded setup.
- Where I got a lot of Linux experience.
- Where I got networking experience (Its DNS, always DNS)
- Where I got a metric fuckton of interaction with end users who had ideas and issues.
I spent a long time on this project, which is now mostly stable.
My next progression was in 2019 when I started working on a command line tool in Rust.
The goal this time was to get an introduction to Rust as well as solve a problem I had at the time,
downloading all the DRM free games from Humble Bundle's Trove.
Thankfully I had a new mentor, who I gave several heart attacks due to the amount of crimes I did with rust.
My next major continuation of this was 2021 when I created my own markdown converter which involved a pile of research, testing and continued work.
Heck even in the writing of this I had to fix a bug with teh converter.
That basically brings me up to the present day.
I have skipped over a lot but it involves a lot of failure, testing and interaction with end users.
Not only that but I have kept tinkering with those projects, always looking to improve them or add user request features.
The long and short of it is what Alan T Ryan said:
Hands on Keyboard