My Skills & Experience

Specific technolgies and work history

Back-end web development

Building smart, useful websites

Back-end web development can be summarised as: everything a website does, other than drawing a webpage. Concerns include managing the site's data, user login and signup, access permissions, and any custom logic, tasks or integrations.

I have over five years of experience using Python's Django web framework to create systems that perform:

  • Content management
  • Automated reporting
  • Web scraping and post-processing
  • 3rd party API integrations
  • eCommerce

Front-end web development

Building websites that look and feel good

I can create attractive, interactive websites for both desktop and mobile. I get the best results when working closely with designers. I aim to choose the simplest tools possible for a given job, but when necessary I use JavaScript, jQuery, htmx and React to create the required user experience.

DevOps and cloud infrastructure

Keeping things running smoothly and efficiently

Web systems run on servers in "the cloud", or more accurately, on someone else's computer in a big warehouse. Provisioning, configuring and maintaining these servers can be key a sticking point in web development. I believe that getting infrastructure management and deployments "right" is a huge multiplier for both the speed and quality of software delivery.

I have years of experience setting up and running:

  • Linux web servers and databases
  • AWS tools and services (EC2, ECS, S3, RDS, etc)
  • Docker-based workflows
  • Configuration management (Ansible, Packer)
  • Infrastructure as code (Terraform)
  • Continuous integration (Jenkins, Buildkite, GitHub Actions)
  • Single-button click deployments

Interested in working with me?

Head of Technology, Anika Legal

2018 - present

I am a volunteer at Anika Legal, where I help the organisation achieve its mission of 'access to justice for everybody' by building software products and providing technical advice.

At Anika, I am responsible for our technical strategy: ensuring that we have the capabilities required to reach our organisation's goals. We currently support a public website, client intake questionnaire and automated reporting. We are in the process of building a custom, in-house case management system to replace our current vendor.

Research DevOps Specialist, Monash University

2020 - 2021

At Monash Univeristy I worked with a team of epidemiologists, mathematicians and data scientists to model COVID-19 and tuberculosis in Asia and Oceania. I took primary responsibility for the software (Python, NumPy, Pandas) and digital infrastructure (AWS EC2, S3). I assisted the team in refactoring, testing and publishing the core of their disease modelling framework as a publicly available Python library.

I automated the team's modelling workflow, replacing manual steps, with scripts orchestrated by a Buildkite agent. Steps of the workflow that were fully automated include:

  • Starting and destroying transient AWS EC2 instances to run our code
  • Setting up runtime environments with Packer-baked AMIs
  • Downloading input data, creating plots, uploading outputs to AWS S3
  • Running model calibrations and post-processing tasks
  • Automatically re-building a static NextJS website to display the results of model calibrations

Senior Python Developer, Eliiza / Future Fund

2019 - 2020

Contracted at the Future Fund (Australia's sovereign wealth fund) via Eliiza on a fixed-term 3 month contract. I assisted the DevOps team with maintaining and enhancing their CI/CD system for Python and .NET applications, deployed to self-hosted infrastructure.

Front-end developer, Kanopi

2019

I was the sole front end developer (ReactJS) for this insurance start-up for a fixed-term period. Upon starting, I quickly cleared out the backlog to enable the first release in several months. After that, I sped up the release cycle to allow weekly releases by assisting the business in breaking work into small valuable chunks. I collaborated with the backend team to coordinate API specs and synchronise releases.

Software developer, StocksDigital

2018

I worked in a small team to support an online content marketing platform. I migrated several of the company's legacy WordPress websites, including thousands of articles and images, to a new bespoke Wagtail CMS. I built a publishing interface for our writing team, and an automated reporting tool for our hundreds of clients. I also worked on a React frontend for internal tools, our Django backend, our AWS infrastructure and our analytics setup.

Software developer, Kogan

2017

I worked on the development team, which is responsible for the Kogan.com website. I worked across the full stack: front end with ReactJS, back-end with Django (Python) and our DevOps practices (AWS, Saltstack, Jenkins). In addition to my technical work, I also regularly communicated with stakeholders in marketing and operations to ensure that I shipped code that met the business' needs.

Software developer, eNett

2016

As a developer I worked on eNett's online-payment web service platform. There I worked with C#/.NET, SQL Server and PowerShell. I did firefighting in the production support team and worked on several projects.

I contributed to the team's DevOps practices, including our configuration managment (PowerShell DSC) and continuous integration pipeline (Jenkins). I made a significant effort to improve the team's documentation of software architecture and business logic.