forbit

I am a |

About Me

forbit logo
  • Software Engineer
  • University of Adelaide
  • Hobbyist Photographer
  • Avid Snorkeller

I am currently studying Computer Science, and making projects in my free time. Feel free to contact me about anything. My main project is gm-server, an open-source framework for interfacing between Java servers and Gamemaker: Studio game clients. Currently working on experimenting with different web-dev technologies.

More Information

Featured Projects

gm-server

A framework for interfacing between Java game servers and GameMaker clients

live
gamemaker java

devpad

A collection of tools for the development lifecycle

development
react typescript

dungeon-generator

A Java Library for generating different kinds of 2D dungeons.

live
java

Experience

Software Developer

After my third semester of Uni, and coming out of my first successful tech job, I applied to many junior positions in my city. I had learnt enough JavaScript & Java that I thought I could land a part-time job over the semester break, and gain some work experience as well. Eventually, I managed to get a job for a local company, which has pretty large operations but a relatively small software team. This job required me to learn PHP - a language that I had never looked at, within 2 weeks. My skills & knowledge were put to the test, but I managed to pick it up in the 2 weeks from the interview and when I started working, and within my first week I had already pushed some code to the production servers. It was quite interesting moving from web-dev with React & NextJS to just using vanilla PHP and JavaScript, no frameworks. This meant we basically had our own hand-rolled solutions for everything.

PHP
HTML
CSS
SQL
Deployment
JavaScript

Database Engineer

After my first year of Uni, I applied for many summer contract jobs, and managed to secure a gig for a magazine company. I was tasked with preparing their existing subscribers database - which was just a couple documents in an excel file, that they emailed around to each other, for upgrading into an SQL database. I had learnt about SQL databases in school, and had done some basic experimenting around within my web development learning, so I felt confident that I could do this. I was also handed the responsiblity of filling in missing data, obtaining it from multiple internal sources (phonebooks & other excel spreadsheets) and combining them all into one database.

SQL

Badminton Coach

While at school, I excelled at Badminton, and was offered to coach the school team after I had finished. This job was great fun, and I really developed as a leader during this time. I was in charge of 8 different teams of wonderful badminton players, and we played at the top level for our local city. Coaching Badminton was such a fun job, and was a nice change of pace compared to the high-stress environment McDonald's.

Leadership

McDonald's

During school and for my first couple years in University, I worked at McDonald's. I enjoyed the high-pace environment, and the community at McDonald's, I managed to build life-long friendships with my co-workers. I attained the role of Crew Trainer, and did some professional development with the McDonald's office to improve my coaching ability, which went hand-in-hand with my other job after school, Badminton Coach.

Grill Master
Leadership

Recent Blogs

devpad #5 - Visual Update

It's been a while since I've worked on devpad, and I've forgotten exactly how the system is setup. Trying to use this application has brought to life many limitations of the hyper-minimalist vanilla html feel.

Stack setup for a golang API with bun testing, postgres database, and S3 storage for local & production

I've made an example stack for easy setup using golang, drizzle, minio, and bun for end-to-end testing. I walkthrough some of the decisions I made and the reasoning behind them in this post.

Setting up drizzle-orm to work with postgres container

In case you're having trouble getting drizzle migrations to talk to a postgres container via docker-compose.yml, I brain dumped my solution for that exact purpose