I currently work as a full-stack web developer in Sydney, Australia. If you’re interested in what I have worked on, please check out the Projects section of this site, or look at my GitHub repositories for examples of my code.
There’s a couple of interesting things there - like raw assembly code for a project with the Propeller microcontroller, and some statistical regression and interpolation algorithms implemented in Clojure. Unfortunately most of those GitHub projects are very old now - mostly from my undergraduate days when I had free time! More recently I’ve been working on this website and learning Rust doing Leetcode problems in my spare time.
Here’s a short summary of my career. You might prefer the PDF copy of my resume.
Developer at OneStop
Some of the projects I have been working on include
- An internal web app for our finance team using .NET 6 MVC and modern asynchronous C#
- A new invoicing system with a .NET Core Web API backend and an Angular frontend. It’s used internally as well as by some of our biggest customers
- Improvements to our CI/CD including introducing containerized deployments on AWS and rewriting Windows batch scripts in Powershell
- Maintenance and business logic changes for large and heavily used traditional ASP.NET web applications
Developer at MemNet
This was a small company where I was one of only 2 developers. We maintained a single large ASP.NET application.
- We migrated from rented physical servers to virtual servers on Google Cloud Platform
- I migrated our source control from Subversion to Git
- I helped improve performance by optimising queries and schemas on Microsoft SQL Server and wrestling with the NHibernate ORM.
- I used Bootstrap and Vue to develop prototypes for future versions of the application
Freelance Mobile Developer
I was a contractor for 1-Stop Connections developing their original mobile app. I simultaneously worked on both the native Android app in Java, and the native iOS app in Objective-C. Both apps were released in 2014 and used by thousands of users daily for eight years, until the company replaced them with a React Native app in 2022.
Intern at Alcatel-Lucent
The first job where I wrote code was at Alcatel-Lucent, where I wrote some Perl scripts that ran on Sun Solaris UNIX servers for a high-availability telecom product. That sounds very old-school doesn’t it? This was actually in the late 2000’s, not the 1990s like you might expect!
Arch Linux Open-Source Contribution
For a brief period while at university, I maintained the Clojure package for Arch Linux. At this time I had added it to the AUR as a community package, and it was not yet an official part of the distro. I thought any evidence of this would have disappeared, but my name is happliy still recorded in the list of contributors on the PKGBUILD file. I also had a patch accepted into the init scripts for Intel wireless configuration. I was a big Arch Linux proponent at the time and ran it on my personal laptop for years.
Education
I have a Bachelor of Electrical Engineering with first class honours from the University of New South Wales.
For my undergraduate thesis, I worked on a project where software guitar effects could be controlled by an accelerometer directly attatched to the guitar. The idea was you could wave the guitar around and have it modify the sound. It was great fun and it even kind of worked - though it was never very practical. The software interfaced with jackd on Linux and was written in Python and C++.
I also contributed a bit of Python telemetry code for the Sunswift solar car racing team. I was only tangentially involved because of some friends - who went ahead to do really well in the trans-Australian race, and got head-hunted by Tesla to be battery engineers. Good for them!
How did an engineering student end up in software? Well, we were required to do some introductory computer science courses in our first year (in C). I loved it immediately, and often found myself helping my friends with their programming assignments, or attending extra credit lectures after hours. At the time the UNSW Computer Science department was using fellow undergraduates as tutors, and these young, cool, smart hackers with their died hair impressed me a lot, compared to the slightly staid engineering department. I considered switching majors, but decided there was still plenty of opportunity to focus on programming in EE. I don’t regret this - there were some very interesting and difficult courses that involved programming, like embedded systems, real-time programming, and digital signal processing. Additionally, I was able to take CS courses like Object-Oriented Programming and Operating Systems as electives.
Skills
Here’s a big buzzword list of programming languages and technologies I have used.
Programming Languages | Server and database technologies | |
---|---|---|
Commercially in production | C#, ASP.NET, NHibernate, Javascript, Typescript, Angular, JQuery, Powershell, Perl, XSLT, Java, Objective-C, Python | Oracle, SQL Server, SQLite, Memcache, Redis, IIS and Windows Server, Solaris, Docker, AWS (all sorts of stuff), Google Cloud Platform, Kestrel, Git, SVN |
Academically | C, C++, LabView, Matlab, Ada, ARM assembly | MySQL, Ubuntu, CVS |
Personal projects | Rust, Clojure, Bash, Emacs Lisp, Propeller assembly, PHP | Arch Linux, Wordpress, Hugo (obviously), GitHub Actions, Apache, SSHD, Blazor, Mercurial |