Michael Pivato

Career summary and interests

As a driven and highly motivated full-stack software engineer, I am always ready to improve and learn. With a vast knowledge of multiple programming languages, paradigms and related technologies, I have successfully implemented many applications that have been used and loved by clients.

Career

Senior Software Engineer at Telstra Health

2024 - Current

Key Responsibilities

  • Design, maintain and implement modern solutions in various products, primarily the enterprise costing product (PPM).
  • Create and maintain various front- and back-end components to support consistent theming, quality, and developer experience across PPM and the billing product (PBRC).
  • Respond to internal and client feedback to improve PPM.
  • Develop automated tests to improve code quality.
  • Review and assist new developers in the team.

Key Achievements

  • Significant contributions to PPM, including designing and implementing shared libraries for use in other teams.
  • Create and setup front-end and associated web server back-end components on PPM AND PBRC, as well as internal products.
PowerHealth Solutions

Software Developer at PowerHealth Solutions

2019 - 2024

Key Responsibilities

  • Redesign and maintain the PowerHealth Solutions costing product (PPM).
  • Create and maintain various front- and back-end components to support consistent theming, quality, and developer experience across PPM and the billing product (PBRC).
  • Respond to internal and client feedback to improve PPM.
  • Develop automated tests to improve code quality.

Key Achievements

  • Significant contributions to the redesigned costing product, that is now in production use and enjoyed by clients.
  • Create and setup front-end and associated web server back-end components on the costing and billing products, as well as internal products.
DST Group

Cadet at DST Group

2018 - 2019

Key Responsibilities
  • Research distributed systems and middleware for use in tactical situations.
  • Develop a project to show this research.
  • Write about new technologies, their benefits to defence, and how they can be used.
  • Held a Negative Vetting 1 (NV1) Security Clearance.
Key Achievements
  • Implementation of Raft algorithm for the camera network.
  • Implementation of Hand Detection using CNN, and finger recognition with alternative algorithm.
Kilburn Software

Software Developer at Kilburn Software

2016 - 2018

Key Responsibilities
  • Develop Mac and iOS applications using Xamarin and C#.
  • Network and MS-SQL Server Troubleshooting and Implementation.
  • Adhere to quality standards regarding privacy of information for schools.
  • Liaise with stakeholders of the application being developed.
Key Achievements
  • Rollout of macOS and iOS applications to several schools.
  • Set up a testing station in the office to simulate a Catholic Primary School.

Education

Bachelor of Information Technology

2016 - 2018

University of South Australia

GPA: 6.89

Awards

  • University of South Australia 25th Anniversary Excellence Scholarship
  • 2nd year Scholarship in Information Technology
  • 3rd year Scholarship in Information Technology
  • Chancellors Letters of Commendation

Skills

Technical

Ordered by proficiency

  • Java - Gradle, JUnit, Jooq, Swing
  • Angular and Web - including Typescript/Javascript, CSS, HTML
  • SQL - primarily MSSQL/T-SQL
  • Rust
  • Development Tools - Git, Jira, shell script
  • Modern Operating Systems - Debian Linux, Windows, macOS
  • Writing and Consuming OCI Containers - Docker and Podman/Buildah
  • Managed Cloud Services (PaaS) - Azure SQL, Microsoft Entra, Cloudflare (this site is hosted on Cloudflare!)
  • Python - Tensorflow and pandas for machine learning and data analysis
  • Flutter/Dart
  • Xamarin + C#/.Net

Other

  • UI/UX - responsive, easy to use, and acessible design
  • Excellent written and verbal communication - handling of client and internal feedback, new features and problems
  • Testing - automated unit and integration tests

Hobby Projects

Over the years I've hacked away at various personal projects. My preference is always to build, run and host applications locally, which includes this page!

Recently my interesets have shifted slightly to large machine learning models, and have messed around with Stable Diffusion (mainly with Invoke AI) and Large Language Models such as the Llama family. I have also trained/finetuned LLMs in the past (BERT), however this has been outside of my capability recently due to the growth in parameters.

Finally I've thoroughly enjoyed writing in Rust, mainly the efficiency, ease of use and correctness that come from using this programming language. One example was in the FastCoster project, where I reduced the time taken for processing some demo data on the costing product from ~1.5 hours to ~7 seconds on a laptop/desktop, or ~36 seconds on a smartphone. This was mainly due to not using SQL Server, and using a custom algorithm in overhead allocation that significantly reduced memory consumption and the number of required calculations.

Proto Creator (ongoing)

Source

This is a tauri application that makes it easy to edit json files conforming to a protobuf definition. It works both as a standalone desktop application for the most complete experience, with browser support to show tauri's versatility.

A demo is available here

PiCar

Source

This project originally involved communication between a Raspberry Pi and a Traxxas Slash using the Pi's GPIO to control the steering and throttle of the RC Car. This was mounted on some 3D printed brackets.The steering and throttle are set using an iPhone/Android application connected over WiFi.

Over time this worked as a base to explore other ideas, namely:

  • SLAM: Using BreezySLAM and a 2D RP Lidar A1, the Pi can map out an area and send this information to the controlling phone.
  • Depth Prediction: Using the Pi's camera and an Intel Neural Compute Stick (NCS), the Pi could process camera data and use a custom implementation of the FastDepth Neural Network to add 3D sensing capabilities.

Recently there have been efforts to port the backend to Rust, with the 2D Lidar sensing and control completed. The Python BreezySLAM implementation is currently unfinished, mainly due to distractions from other projects

Depth Prediction

Source

From the PiCar project, I explored many different implementations of monocular depth prediction and 3D SLAM solutions, including implementing my own algorithms and trainers for depth prediction that perform well on constrained devices.

This gave me a solid foundation on Tensorflow/Keras and computer vision. It also helped expand my knowledge on machine learning from university/online study, as I previously had not explored models this large, or specifically computer vision related models.