My Portfolio

A showcase of some of my work so far

This page showcases some of my recent, publicly available work.
See here for more info on my professional work experience.

Anika Legal public website

Home page for Anika Legal: a non-profit online legal service. Anika assists Victorian tenants with getting their landlords to repair their home. This website serves two primary purposes:

  • Win clients: it must explain our services and lead new clients to the intake system
  • Build credibility: it must explain Anika's mission and impact to partners and donors

As a volunteer Head of Technology at Anika, I built the website in collaboration with a UX designer and the marketing team. Getting this site live quickly was a high priority, so we launched early with the critical pages, gradually adding the other planned features and content post-launch in order of descending importance. Since launch the site has been regularly maintained, updated and extended.

The site includes a content management system which supports a blog, news page, and job postings. I built this using a Django/Python backend which runs on AWS EC2 via Docker Swarm.

Anika Legal client intake system (This is the test site, so click away)

A client intake questionnaire for Anika Legal. This custom-built interactive form is where clients can start a case with Anika - it is the main client acquisition channel. It asks a series of questions using conditional branching logic to gather the facts of the case. When the form is submitted, the client's answers are sent to a backend system, which automatically sets up the new case in Anika's case management system.

Since the success of this form is crucial to Anika's organisational success, funnel metrics are tracked and reported on using a combination of Google Analytics events and in-house automated reporting using Retool.

I built this site as a static React app served from AWS S3. It integrates with a REST API endpoint presented by the Django backend.

Blog Reader is an online service that allows users to convert web pages into podcasts that they can listen to. Users enter the URL of a webpage that they would like to listen to, and the website automatically grabs the page's text, converts it to an audio track using text-to-speech AI, and adds the audio to the user's personal, private podcast.

I built this using a Django/Python backend which runs on AWS EC2 via Docker Swarm. Text-to-speech is done via the AWS Polly API. Payments are handled using Stripe.

Summer disease modelling software

Summer is a software library used by epidemiologists to model the spread of infectious diseases. While working in the Monash University Epidemiological Modelling Unit (EMU) I conducted major refactor of the codebase: introducing an improved API, >10x performance improvements, unit tests, CI/CD and the linked documentation and examples.

Written in Python, Summer runs on NumPy, SciPy, Numba and Pandas.

Web development blog

I write a technical blog on backend web development where I discuss the Django web framework, infrastructure, testing and tips for new web developers. Some posts are accompanied by videos which are also available on YouTube.