Jed Saxon

Jack-of-all-trades Software Developer

About Me

While I was in high school, I picked up C# and the Unity Engine to develop some simple games in my spare time. After realising I enjoyed programming, I decided to get into the Certificate IV at Chisholm to make this my career.

During the Certificate IV at Chishlom, I learnt how to use Python, Java, and MySql in production applications. With an intense focus on team work and project management, I was taught the absolute fundamentals of developing code in a real workspace. In my spare time, I helped my friend develop the E.Team Codes web application which was fun given my previous use of C#. This gave me the opportunity to better understand web development too, as I was exposed to technologies like Docker, Apache2, Entity Framework, and other important libraries.

The next year, I took the Diploma of IT (advanced programming) at Swinburne. The year started off really easy with just simple PHP and C# software, but quickly delved into more interesting and complex topics including C++, Object-Oriented PHP, and networking! I would find myself simplifying my workflow by using Linux's and BSD's powerful CLI. I am now daily driving Arch Linux with XFCE4, with my main IDE being neovim. I occasionally switch to FreeBSD to continue learning its rock-solid alternative to Docker, Jails.

With all of that understanding about networking, operating systems, and deployment of web applications, I now host my own Nextcloud, and Jellyfin server. I have both services running inside a virtual machine with my graphics card passed into the Jellyfin virtual machine for video decoding. For obvious reasons, a firewall is running in the background to ensure the server is as locked down as it can be, and Apache2 running as a reverse proxy to serve both services at once.

My Projects

[Hover or tap to highlight]

Custom MVC Framework + ECommerce Platform - PHP

Done using my intricate knowledege of PHP and Apache, I was able to develop a customised MVC framework from the ground up during my time completing the Diploma of IT at Swinburne. Due to limited time constraints, I had to rush out a working framework so the rest of my team could start implementing the API and frontend, resulting in below-average code. However, I planned for this. My code was developed in a way where I could come back later, and make changes to improve the performance. My PHP code uses the following advanced techniques that make it unique:

  • Object-Oriented PHP
  • Utilises Composer and autoloading classes
  • Use of reflection clasess for automatic routing
  • Interfaces with a MySql database using the mysqli library
  • Deployed into a Docker container for team to easily work with
  • Shared git repository (not owned by me) to accept pull requests

PTV Departures - Angular

This project utilises Angular and Typescript to render results gathered from the PTV Timetable API. Specifically, it would allow users to enter a desired stop name inside a search bar, along side the route type (tram, bus, etc...), and it would let them view the departures for all routes that stop there with a handy map using the Leaflet library.

I aimed to use Angular's top-notch component system to create a moduler interface. With that said, I came up with a good solution where I can split up the functionality of a page, and each component inside said page. This was done by making each 'child' component (search bar, map, etc...) be independent of any service. Then, I make a page component which depends on a service and make them a completely seperate 'parent' component which takes the inputs and outputs of the child components.

Source Code

Cliet/Server Communication with C++

For one of my assignments in the Diploma of IT at Swinburne, I created a client/server connection using C++. During my research to find out how it would work, I didn't just learn a lot about networking (ports, ip addresses, etc...), I also found out how sockets work in UNIX operating systems. I found it really cool that whenever you open up a new socket using C++'s standard library, it will interface with the operating system to open one, and return the location to that socket as a file descriptor. In UNIX operating systems, this is usually located inside the /proc directory.

In order to satisfy the requirements of the assignment though, I had to also include a user interface. I stuck with GTK using the libgtkmm library and tested the functionality by running the program in a Debian 12 virtual machine.

E.TEAM Codes - ASP.Net Core 6

A friend came up to me and asked if I could build him a website, so I agreed. The website is simple, users enter a 6-digit code they find inside one of my friends comic's, which could be used to view another one published on this site. Bellow are the technologies used:

  • ASP.Net Core 6
  • MySql managed with Entity Framework
  • Docker + Docker Compose for deployment
  • Customised BootstrapCSS Interface

This was my first real attempt at creating a web application, and only applies the most basic form of MVC. I would love to come back and re-create this with my new understanding of Domain-Driven design

Database Design - MySql

During my time at Chisholm, I had to create a large scale database that held popluation data from the Australian Census, Postcode and LGA data, and Covid Case data. With 3 months to learn database management with MySql and none dealing with database normalisation, this proved to be a challenge, especially with the quantity of data needed to be converted. During the transfer from 0NF to 3NF, I had to study the data rigorously and had to consider the business requirements as well. Once that was complete, it was a matter of using Python to convert the initial dataset into the 3NF design. The process was documented heavily with a design document, implementation plan, and a GANTT chart to track the progress.