Developer | Educator | Musician | Gamer

down arrow

About Me


Welcome to my portion of the internet.

I'm an amateur web developer, cloud computing engineer, freelance educator, musician, and hardcore gamer, all rolled up into 1 person - me! Over the last few years, I've been fortunate enough to travel the world, meet some incredible people, and develop a wide range of different experiences. Now, I work for Amazon Web Services in Australia, as a Cloud Support Engineer in the Container Deployment profile.

This is iteration 3 of my personal website. You may have seen iteration 1, which was created in Squarespace and used to be available at forsakenidol.me, and iteration 2, which used to be the website at this address - forsakenidol.com. I designed iteration 2 to both cut down on hosting costs and ride the "Web Dev High" that I had back in mid-2020, after completing the first web development unit of my Computer Science degree. Unfortunately, I didn't make a lot of good choices during the design and development process of that iteration, used way too much bootstrap CSS and JavaScript, and there are now a lot of bugs that cannot be reproduced, which is why I wanted to start again from scratch with iteration 3 - no bootstrap, and no client-side scripts.

This entire website runs in a framework known as Kubernetes, which is an open-source container orchestration system that I've been interested in learning for some time. There are 4 different kinds of pods, each housing a single container representing a different part of the tech stack of this website. With iteration 3, I wanted to focus on building my understanding of web development by shifting from the monolithic architecture of iteration 2, to a microservices architecture for the current iteration. This would help me develop different parts of the stack separately and make it easier to adopt a Kubernetes hosting solution.


down arrow

My Projects

Take a look at what I'm currently working on. Check out my Github for everything else!


Repo IDRepo NameRepo DescriptionRepo URL

463741050

db_cont_test

A simple 2-service setup to practise management of multiple containers in a project.

Link

248227495

examinaid

ExaminAid is a UWA Computer Science assessment preparation application containing various resources in the form of test questions and answers.

Link

406638088

smartbin

An IoT ultrasonic low-power monitoring solution for waste disposal

Link

409960331

smartbin-frontend-flask

Link

331783233

ExcelDash

A simple Dash application using Plotly graphs to visualise LAS data imported into Excel.

Link

706407806

Flask-SQL-Sample-App

Sample application skeleton for my OpenTelemetry on ECS guide.

Link

288682193

ForsakenIdol

Link

637674567

leetcode-writeups

Writeups I've done for LeetCode problems. These are not necessarily all the problems I've done - just the notable ones.

Link

235704331

my-weather-app

Weather app using React JS developed at Takor.

Link

317450516

ReactBlog

Link

240488916

Terrain-Generator

A simple terrain generation program in C++ and OpenGL.

Link

298196490

threeChess

An AI framework for playing three player chess, a variant of normal chess.

Link

554678150

twitch-overlays

A collection of overlays I created for use on Twitch.

Link

532093662

website-v3

Iteration 3 of my personal website.

Link

249741817

citsbot

Discord bot for the UWA Computer & Data Science discord

Link

down arrow

Stack

The technologies and frameworks that power this website.

database: postgresql

Stack item

Iteration 2 of my personal website had MySQL as the backend database for storing the old Blog and Login information. With iteration 3 (this iteration), I wanted to switch this part of the stack to something used frequently in production web apps - and so I came across PostgreSQL.

middleware: express.js

Stack item

Express.js was key to the second iteration of my personal website, and I wanted to keep it in the stack in some form while still experimenting with other technologies. Ultimately, I settled for using Express in the middleware server, abstracting the database and exposing CRUD paths to the cronjob and frontend.

cronjob: python

Stack item

This website loads public repository data from the GitHub API. It's bad practise to call the API once for every visitor who comes to our site, so we need to pull the data from that API periodically and store it in our database. With both the middleware and frontend in JavaScript (Node.js), I opted for Python to write the cronjob to experiment in data handling (particularly datetime parsing) across different programming languages.

frontend: next.js

Stack item

I've had my eye on Next.js for some time now as an alternative to React.js in general and the Express.js / Nunjucks templating stack that formed most of my previous website's iteration. It's a little overkill for a single-page web application, but it's well worth the effort put into learning how this framework operates.

Connect With Me