James Paterson

Computer Science / Software Engineering

I am currently a final year computer science student at the University of Queensland. My main interests include lower level and theoretical concepts, such as:

  • Computer graphics
  • Compilers & interpreters
  • Operating system architecture
  • Formal methods & verification
  • Low level C & assembly
  • Network programming
  • Functional programming & lambda calculus
  • Quantum computing
  • Object-oriented design

Throughout my time at university I have:

  • Made a graphics engine from scratch using OpenGL and C++
  • Created device drivers, and implemented kernel level programs designed to adjust user privileges
  • Tutored a computer systems course involving programming an Arduino microcontroller, involving interrupts, SPI, ADC and PWM
  • Implemented routing protocol from scrach in Python, using network sockets and the Bellman-Ford algorithm
  • Used IBMs quantum computers to run simple simulations about the Deutsch-Jozsa algorithm

I also completed a 12 week internship at Workday. This involved full stack development in an agile workflow, creating a new React frontend, as well as new API endpoints created in C#. I also needed to make modifications in an expansive C# codebase to retrieve and modify required data.

PROJECTS

Graphics Engine

A graphics engine made from the ground up with C++ and OpenGL, supporting shading, texture mapping, lighting, model loading, shadows, fog, HDR, bloom and particle effects.

VIEW

Game

The first world of a 2D platformer/rogue-lite game I am developing.

Online supported on desktop currently.

Created in the Unity engine using C#.

VIEW

OnlineGame

An online multiplayer game made using NodeJS and WebSockets. Note that I need to run the NodeJS server in order for it to work. You can find the code on github.

VIEW

Epidemic Simulation

A desktop app to simulate epidemic growth while controlling a variety of parameters.

Created with python. The GUI was made with the tkinter module.

VIEW

Pathfinding

An interactive tool to utilise and explain Dijkstra's pathfinding algorithm

VIEW

Task App

A web app for a uni student to organise semesters, subjects, classes, events, tasks and notes, all in one place.

Supported on both desktop and mobile.

Created with HTML5, CSS, Jquery, Bootstrap, JS, PHP and MySQL.

VIEW

TECHNOLOGIES