I'm passionate about elegant systems, whether these are for software solutions, managing people, documenting complex problems, or for helping people connect and become more productive.
I believe all systems should help and not hinder the users.
I'm a firm believer in iterative design and Agile methodologies, however in true agile form, I believe the best methodologies should be more like principles. Principles which we can borrow from when it makes sense, not laws which must be obeyed. However when presented with a problem I will always suggest we work towards a minimum viable product, get it out in the hands of the intended audience, and then get the feedback required to make it what it needs to become.
I believe that open-source is good for everyone, businesses large to small, and the community; but understand there are many situations where it may not be the best approach.
I volunteer a lot of my time to mentoring and assisting the developer community. Whether that be through organising and presenting talks at local tech meetup events, or through my work on improving gender diversity in the dev space though mentoring with DjangoGirls and SheCodes Australia. I very much enjoy sharing knowledge and experiences with those around me.
Python 15+ years
Python is my language of choice. I believe that the greatest cost to software projects is developer time, and choosing a language that focuses on readability is the most effective way to reduce onboarding and debugging.
Django 10+ years
Having deployed django applications before wsgi existed, it's amazing to see how far this framework has grown and yet how stable the core feature set is. Django is my go to for proof of concept work, and has allowed me to produce fully functional demonstrations at the end of hackathons, rather than just conceptual page layouts.
Django Rest Framework 10+ years
I started using django rest framework to connect to jQuery and later React front ends to produce responsive web apps for online ordering in the health sector when working for CH2.
Django + Graphene (Graphql) 5+ years
I introduced graphql to Ausvet as a tool for allowing frontend systems to explore data without needing constant backend adjustment.
Python Micro-frameworks (FastAPI, Flask, Hug, Zappa, etc) 5+ years
Sometimes problems don't require a full framework, there are a number of really useful python tools for creating micro-services and quickly deploying them.
AWS 5+ years
One of the big attractions for working with Ausvet were their use of AWS as a hosting service. When i started the systems were all very heavily reliant on EC2 and monolithic in nature. A significant part of my work for Ausvet was around re-architecting these solutions to be more cloud-native, moving to Serverless Lambda functions, SQS queuing, Docker+ECS+Fargate for hosting, Xray and CloudWatch for logging and monitoring.
Terraform 3+ years
Terraform is a much more readable infrastructure-as-code toolkit, I introduced this to automate system deployments for projects while at Ausvet.
Linux, DevOps and Bash automation
I've been working with linux since 2000, running Debian at home since 2002, then later moving to Ubuntu. These skills have become popular with the rise of the cloud and DevOps. Automating tasks with Bash for deployment was a significant part of my role at Ausvet.
I've introduced React to a number of companies now, however I also turned down an offer to teach it, I'm not a JS developer, and whilst I can write JS quite well, I wouldn't consider it to be one of my core competencies.
I've worked heavily with PHP since 1999, however I no longer enjoy working with it.
I prefer Postgres, but i've had over a decade of experience with MySQL, MS SQL Server, and others. More recently working with NoSQL database alternatives like DynamoDB. I've even been heavily involved in a simple database replacement python package for micro-services using AWS S3 as the data layer.
Principal Supply Chain Applications WAIO Decision Support [January 2021 - Current]
Senior Python Developer [February 2020 - December 2020]
- Senior/Lead developer on the Crew Rostering project
- Senior Developer on the Covid Tracer project API
- Rewriting the Covid Tracer API to use asynchronous data writes, which resulted in a 20x performance improvement
- Hardening the Covid Tracer API to handle work loads of over a million simultaneous users
- Getting the Covid Tracer API ready under high pressure and exceptionally short deadlines
- Winning the CTO Award
- Transitioning Crew Rostering from VM (ec2) based infrastructure to container (ecs + fargate) based infrastructure.
- Refactoring the Crew Rostering codebase to function inside a docker container
- Maintaining the React-Timeline-9000 opensource project for BHP
Technical Consultant [November 2019 - August 2020]
Alcolizer Technologies (adhoc contract)
- Designing and implementing a REST api solution for integrating the Alcoconnect cloud platoform with end-customer HR SaaS solutions.
- Balancing the needs of the integration partner with the sustainability of the API
- Build the API solution
- Create the Azure cloud based infrastructure to support the system
- Iterate over the process as customer feedback was gathered
- Implimenting an aync python rest framework using FastAPI
- Building a docker based service for hosting the API, as the existing server was unable to handle a modern python framework
- Building a pub-sub queue based messaging broker using Azure
- Taking the company through their first cloud based deployment
Technical Lead [June 2017 - October 2019]
AusVet Pty Ltd
- Working with project teams to deliver technical solutions to support collection and processing of data required for epidemiological analysis
- Manage external and internal team requirements to facilitate project outcomes
- Managing and mentoring developers
- Support and improve the sustainability, reliability and efficiency of existing systems
- Evaluate threats to existing systems
- Develop strategic policies for implementing technical solutions across the company
- Creating, implementing and enforcing a code management policy
- Transitioning the business from project to product based management for development work
- Implementing code review processes
- Redesigning and rebuilding monolithic virtual machine solutions to a micro-service architecture using AWS Lambda
- Implementing event and error tracking with Sentry.io
- Introducing Multi-Tier Architecture to the organisation, most importantly moving logical processes out of the data layer
- Introducing decoupled front-end and back-end systems to the organisation
- Introducing, implementing and management of Infrastructure as Code for all new deployments
- Introduced and implemented the use of containers for deployment to replace bespoke deployment environments being created by hand
- Introduced and implemented Continuous Deployment pipelines, removing manual deployment requirements from developers
- Strategic evaluation of existing technical stack, with a focus on user-need vs technical requirements
- Strategic evaluation of front-end technologies
- Strategic evaluation of REST vs GraphQL back-end technologies
Solution Architect [September 2014 - June 2017]
CH2 (Clifford Hallam Healthcare)
- Meeting with clients
- Assisting to win contracts through technical capabilities
- Working with partner companies to design elegant solutions to their complex problems/workflows
- Moving to a product life cycle design for websites and services
- Strategic planning and resource management for evolving legacy technology to a unified platform / customer experience
- Managing and training developers
- Implementing Agile project management methodologies into a waterfall centric company
- Designing and building a centralised integration platform
- Introducing and implementing RESTful API interfaces to the business
- Introducing and implementing Micro-Service Architecture concepts
- Implemented Python/Django web application frameworks
- Designed, Developed and Deployed the Royal Hobart and Cabrini Vendor Managed Inventory systems
Lead Developer [June 2010 - November 2013 (contract) - June 2017]
CH2 (Clifford Hallam Healthcare)
- Managing development on multiple web applications
- Managing deployment on windows and linux (ubuntu) environments
- Manage, Optimize and Design databases on MySQL MS SQL and Postgres
- Took a stalled e-commerce project and single handedly got it into production in two weeks
- took an e-commerce platform with an expected business profile of 3% of orders and built it to over 20% ($5 million / day) of all orders with next to no budget.
- Introduced SCM to the company
- Introduced Git-flow release and branch management methodology
- Evolved vanilla PHP website, to use MVC(MVT) methodology
Senior Web / Integrations Developer [September 2009 - August 2011 (contract)]
Windsormail / GoodsGalaxy
- Design, Develop and Maintain integrations systems between legacy management and inventory systems and Magento based e-commerce platform
- Implement, Modify, Manage and Deploy Magento Ecommerce platform
- Implement and Manage a Product content management system, Python/Django based
- Systems I implemented needed so little support that my services were no longer required
Network and Systems Administrator / Consultant [January 2009 - April 2010]
- Independently manage client list
- Provide all IT support client businesses require
- Implement and maintain, client Private-WAN and LAN networks
- Implement and maintain servers and workstations
- Designed and Developed a software licensing micro-service (python/sockets/raw http)
- Implement staff task automation platform (python/django)
Senior EDI Developer [November 2007 - January 2009]
Cottman Australia / CH2 (Clifford Hallam Healthcare)
- Building and maintaining interfaces between a legacy MFG Pro ERP system and B2B partners
- Building and maintaining customer ordering / sign-up customer portals
- Assisting in the transition from MFG Pro to JD Edwards ERP
- Building enough automated tasks that I was no longer needed as an employee
Murdoch University WA 1998-2003
BMultimedia (Internet Programming)
Class of 1997
Personal Interests / Volunteering
SheCodes Australia - Python Mentor [2018 - current]
She Codes is on a mission to to teach women coding skills, get women into technical careers, and build communities of like-minded women. Our vision is to increase diversity in tech by inspiring 100,000 women across Australia by 2025.
During my time at SheCodes, I have amoung other things been the Lead Mentor for their week long Flash programes, rewritten the Python tutorial, set up the hosting service and automation for the static-hosted turotial site, and been a critical mentor of the six-month SheCodes Plus course.
As a result of my work with SheCodes I was nominated twice for the 2021 Women in Technology WA (WITWA) Tech+ Award for Outstanding Allyship.
Django Girls Melbourne - Mentor [2016 - current]
Django Girls is a non-profit organisation and a community that empowers and helps women to organize free, one-day programming workshops by providing tools, resources and support. We are a volunteer run organisation with hundreds of people contributing to bring more amazing women into the world of technology. We are making technology more approachable by creating resources designed with empathy.
Member Royal Perth Yacht Club [2013 - Present]
Member Royal Yacht Club of Victoria [2016 - 2017]
Music / DJing
I've been playing music around Australia for the better part of the last two decades, with a number of interstate invitations to play festivals.
The best thing we've experienced since arriving in australia
- Suggs of Madness