I am a passionate and tech-savvy software engineer with 18+ years of professional experience across Go, VueJS, PostgreSQL, SQL Server, PHP, C#, .Net, MySQL, HTML, CSS, and JavaScript. Throughout my career I have held roles that have required I build my experience managing Linux and Windows servers, building CI/CD pipelines, and implementing DevOps/Agile development methodologies. My most recent roles have provided me with the opportunity to manage projects and a development team.
Curriculum Vitae
Swoop
Backend Developer #
Working as part of Swoop’s second team of developers, I was initially assigned to development of Sonic, Swoop’s NBN service provisioning system, and tasked with adding new features, writing enhancements, and performing large scale refactors of the codebases of numerous micro-services and packages for external services.
Once rapid development of Sonic was complete and the project entered Business As Usual (BAU) stage, my team and I were assigned to the development of Swoop’s voice billing and provisioning system which will later be merged with Sonic.
Duties include:
- Fixing bugs resulting from incorrect or incomplete business logic
- Extending the nbn and provisioning micro-services with functionality for newly adopted NBN services
- Rewriting and refactoring large sections of the codebase to allow new functionality to extend the existing functionality, without conflict or unnecessary duplication
Highlights:
- Implemented tooling to streamline and automate releases
2023-09-01
TrustGrid
Senior Golang Engineer #
Taking on ownership of TrustGrid’s core codebases, I was responsible for upgrading and improving the backend systems upon which TrustGrid’s decentralised identity services ran.
As part of team given a project to develop services for use by Australian and international governments, I was tasked with upgrading the framework behind TrustGrid’s distributed ledger from Microsoft Confidential Consortium Framework (CCF) 0.15.6 to 2.0.7 and integrating it with the existing ReactJS frontend, until the project was put on hold and the team transitioned to a new project.
After the first project was mothballed, my team researched a new private blockchain framework, Hyperledger Fabric, and began writing an Go API that allowed external services to interact with the smart contracts written in TypeScript, was started in order to produce a product that could be provided to international military organisations. This project involved re-writing most of the code from the previous project and once again integrating it with the the existing ReactJS frontend. This project was put on hold as work on the first project was resumed.
Duties included:
- Implementing a multi-architecture docker build process so developers can work with Go on x64 and ARM64 machines
- Writing system architecture specifications for a decentralized identity and verifiable credential platform
- Managing and maintaining Kubernetes clusters for production ready systems
Highlights:
- Deployed my first private blockchain
2022-09-16
Kiss My Creative
Corum #
Custom Order Request Update Manager, or Corum, is a web application for retail businesses, primarily automotive parts stores, that allows staff to create, track, and report on customer special-request orders. Written in PHP/Yii2, and Kendo UI.
Demo available upon request.
FaceMasq #
Self-hosted network security solution. Scan your network, detect and track the presence of devices, and get alerts when unknown devices connect.
Currently in pre-alpha state.
Tannis #
A CLI for managing large docker compose stacks, with secret management, image building, and more. Tannis serves as the foundation for Lilith.
Currently in alpha state.
Lilith #
A web service for managing large docker compose stacks, with secret management, image building, and more. Lilith builds upon Tannis, adding a web GUI.
Currently in alpha state.
Grain Market
Senior Software Engineer #
Reporting directly to the CEO, I lead the development team in adding new features, iterative improvements, and bug fixes to the online Portal and mobile app platforms Grain Market provides to licensees and clients.
I was also responsible for the ongoing migration of the Portal platform from a monolithic PHP code base to a Go micro-service back-end and a VueJS front-end while redesigning the SQL Server database.
Duties included:
- Planning, designing, developing, and documenting new features within the Portal platform
- Redeveloping an out-of-date Cordova mobile application to allow it to work with newly developed tools within the Portal platform
- Implementing third-party API services with full error reporting for SMS and Email delivery
- Building and maintaining a bespoke multi-user drag-and-drop newsletter editor that allows for delivery of relevant content to end users with “live document” support
- Rewrite the Portal platform from PHP to Go
- Redesign the SQL Server database to allow for easier querying and faster response times
Highlights:
- Development of Living Doc - a live document editor
2018-06-15 - Released first mobile app in Cordova
2017-06-21
Senior Software Engineer + DevOps Engineer #
Focusing on reducing the development workload, I oversee the automated processes and services used to review, test, and deploy Grain Market’s modern services into various environments.
During this time, Grain Market was forced to respond to the global pandemic by moving to remote work, which I was able to facilitate with minimal disruption to the development team.
Duties included:
- Implementing and updating modern Agile/DevOps development processes
- Deploying and managing Linux and Windows Azure services for various environments
- Developing a bespoke database backup solution that handles takes twice-daily log updates and weekly full backups of the production databases, deploys them to development environments, and archives them on various storage medium
- Implementing, improving, and maintaining deployment of code via CI/CD pipelines to docker containers, Azure VMs, internal servers, and Google/Apple app stores
- Beginning to manage infrastructure as code using AWX and Ansible
- Implementing and monitoring centralised log aggregation with urgent notification support
Highlights:
- Migrated to remote work
2020-03-20
Engineering Team Lead #
Combining my previous roles within the team, I was given the responsibility for overseeing the ongoing development of Grain Market’s flagship products, in addition to my previous responsibilities.
The development team was expanded with the addition of a junior mobile developer, who I was responsible for mentoring and guiding in the migration of the Cordova mobile app to React Native.
Duties included:
- Liaising with external development teams when integrating their services into Grain Market’s products
- Managing all of Grain Market’s online services across Azure, Cloudflare
- Leading retrospective meetings to discuss and document the team’s performance during each development period
- Updating the development team’s tooling and platforms, in particular moving from Vue2/Webpack to Vue3/Vite
- Establishing low friction processes that allow faster development within the team
- Leading in-depth planning sessions to define the work required to deliver the features set by upper management
Highlights:
- Hired a junior mobile developer to migrate Cordova app to React Native
2022-06-15 - Rewrote the Living Doc in Go and VueJS
Sumo Group
Front End Developer #
Working with a team of designers and developers I was responsible for implementing the client-approved designs as responsive templated components for use in Sitefinity, Wordpress, Joomla, OpenText, and SharePoint, as well as HeavyMail and MailChimp.
Client projects included websites for IMF Bentham, LWP Property Group, and Nation Lifestyle Villages.
Full Stack Developer #
In addition to the initial Front End Developer duties, I was given the responsibility of developing backend modules for Sitefinity in C# using the Feather MVC framework.
Client projects included websites for St John Ambulance, Racing and Wagering Western Australia, Fremantle Football Club, United Forklifts, and Web Applications for Murdoch University and Olay.
CPSU
Developer #
Working for the Community and Public Sector Union as a solo developer, I was responsible for updating report generation templates for use with CPSU’s CRM systems.
Additionally I was tasked with updating content on and improving the UI and responsiveness of the union’s internal and public websites.
Kresta
Senior Web Engineer (Contract) #
Reporting directly to Kresta’s CTO during a six-month contract, I was tasked with developing the front-end logic and interface for an iPad centric sales portal based on Magento and OpenERP.
I was then placed with the in-house marketing team, where I managed the company’s many Wordpress sites.
Moodle
Developer #
Working on an agile front-end development team, I contributed to the development of 7 releases of Moodle’s LMS Platform.
Highlights included redesigning the theme for TinyMCE in Moodle 2.6 and developing the replacement text editor, ATTO, in 2.7.
Metisc
Senior Web Developer #
Working as a senior developer I oversaw the development of websites that interacted with Microsoft Dynamics and iMIS.
Customer projects included websites for the Australian Chiropractors Association’s Locate a Chiropractor programme.
Tonkin Brands
Web Production Manager #
Reporting directly to the Managing Director, I managed the web production side of Tonkin Brands, and oversaw the design and performing the development and deployment of the clients’ websites.
Client projects included websites for Abaxa, Caremi, Habitat1, and Zellabox.
Titan Interactive
Web Developer #
As a member of the web development team, I was tasked with assisting in rebuilding Titan’s proprietary CMS to work as an MVC application on the Zend Framework.
Additionally, I was given the task of researching the viability of using the Joomla CMS for client projects as an opensource alternative to the proprietary CMS.
Envisage Blue
Web Developer #
Working as a contract developer I designed and built a Joomla extension that collected analytics data and produced a PDF report with visitor activity and performance metrics, plus information about the order of pages visitors viewed as they navigated the site.
A second employment contract saw me re-developing a Flash application to improve display of 3D mapped photography used to provide a guided tour of Western Australia’s Parliament House.
Edgwize
Lead Joomla Developer #
Working as the lead Joomla developer I was responsible for the design specification, development, customization, maintenance, and documentation of all the company’s Joomla sites.
This included development to extend the Joomla component VirtueMart to allow for clients to maintain their own product catalogues, with products then fed into the Edgwize store.
JAMdesign
Web Developer + SysAdmin #
As a member of the web production team, I was responsible for the specification, development, customization, and documentation of all the sites for the company’s clients and jam’s own company sites.
Client projects included websites for Medic Technology, East of Perth Yatch Club, and Maxim Property Group.
Solid State Solutions
Web Developer + Junior Systems Administrator #
Brought on as an IT Developer, I was responsible for developing websites, building and managing Linux servers, and deploying and maintaining Asterisk VoIP services.
Edith Cowan University
Bachelor of Communications #
Major in Interactive Multimedia with a supporting minor in Internet Computing.