Career Summary
My extensive 14 years of experience in a wide range of positions, teams, businesses and industries has fine-tuned my technical leadership. I have been at small and medium sized companies in all stages of maturity. I keep informed of modern trends across the whole SDLC from individual tools to architectural patterns and business processes. I enjoy applying technology to real world problems and achieving real world outcomes. I am also very comfortable getting hands on and diving deep into whatever technical challenge or tool the situation calls for. My ultimate goal is to deliver software that delights the business and end users alike.
Work Experience
Senior Software Engineer
I joined Goodcover to work with a former colleague from Lightbend. I was mostly needed to help out on the React frontend written in Scala.js, although for some features I did the full vertical. Our main focus was to take the California only MVP and reimplement an entirely new design that would support all US States. Almost all components had to be rewritten to Slinky functional components. To support this I added safeguards that would protect us against common mistakes and to maximize reuse. I put a large emphasis on ensuring that the quote funnel had a delightful user experience and achieve a high conversion rate.
Achievements:
- Implemented a new quote funnel and member pages.
- Migrated the entire application to React Router.
- Created a Scala.js library that makes React.js more type-safe.
- Made a build plugin that extracts GraphQL definitions from source code and generates Scala.js and JavaScript bindings.
- Found and fixed a race condition in ZIO Fibers that would deadlock our backend during testing.
Technologies used:
- Scala
- Scala.js
- React
- Slinky
- TypeScript
- GraphQL
- Relay
- CSS
- Emotion
- SBT
- Cats
- ZIO
- Quill
Chief Technical Officer
Flow2b is a small Distributed Autonomous Organization that develops and runs an ERP SaaS platform. My role here was to correct the technical direction and take the platform to its next stage. A primary focus was on modernization to facilitate rapid changes and to add stability, security and performance. We began designing and building the app marketplace and to foster a developer community for creating apps on the platform using a custom DSL.
Achievements:
- Migrate entire stack to AWS using Pulumi following best practices.
- Performed a security review and created a secret management policy.
- Integrated with Datadog for logging, metrics and alerts.
- Retrofitted an effect system and began modularizing the application.
- Implemented a CICD pipeline.
Technologies used:
- Scala
- Scala.js
- Akka-HTTP
- AWS SDK
- OrientDB
- Pulumi
- Datadog
- ZIO
Senior Full Stack Developer
I went back to help out the Geneious Biologics team at Biomatters on a casual contract.
Senior Engineer
I joined Lightbend to get the opportunity to work with my idols in the Scala community. I worked on version 2 of Lightbend Console which is an observability tool for gathering insights into distributed applications based on Akka Cluster, Play and Lagom running on Kubernetes. My primary responsibilities were to create new backend services and to compile the resource manifests for the deployment. I also maintained the CICD pipelines and infrastructure.
Achievements:
- Built new backend services using Akka-gRPC and Akka-HTTP.
- Wrote Jsonnet files for compiling Kubernetes resource manifests.
- Used Terraform and Kustomize to configure cloud infrastructure.
- Created a large range of generators and property based tests.
Technologies used:
- Scala
- Akka-gRPC
- Akka-HTTP
- Angular
- Typescript
- Kubernetes
- Docker
- Prometheus
- Grafana
- ELK
- Cassandra
- Terraform
- GCP
- OpenShift
Development Team Lead
I managed and lead a team of six to develop Geneious Prime, a molecular biology and sequence analysis application. I worked closely with the project owner to define the road map and then with the team to plan scope and deliver the work. I provided technical leadership while also modernising the development processes.
Achievements
- Managed six product releases.
- Put in place WIP limits and helped identify bottlenecks.
- Ensured that we maintained a buffer of tasks that met the definition of ready.
- Migrated the code base from svn to git.
Technologies used:
- Java
- Jira
- Scrumban
- MS SQL Server
- PostgreSQL
- MySQL
- Oracle
Full Stack Developer
I initially joined Biomatters as a key member of the cloud team to create a new bioinformatics platform powering Geneious Biologics. My role was to bring my Scala experience to revamp the platform and upskill the rest of the team.
Achievements
- Created several new reactive microservices which handled the scheduling and execution of jobs to attach assay data to millions of reads within a single NGS document.
- Helped to instill best practices amongst the team and upskill them.
- Removed some technical debt from initial MVP.
- Implemented test contexts for setting up and running integration tests.
Technologies used:
- Scala
- Play
- Lagom
- Slick
- CQRS
- Event Sourcing
- Spark
- Kafka
- Mesos & DC/OS
- PostgreSQL
- AWS
- Terraform
Software Engineer
My first job as a graduate was at Orion Health working on Rhapsody, an integration engine, and then named Symphonia, a messaging toolkit. Over the years I designed and implemented several new features. I was primarily responsible for supporting and maintaining Symphonia support which led me to do several rotations in the Rhapsody development support team. I prototyped the very first Rhapsody-as-a-service initiative from which we formed a new team to work on a new cloud native application. It was here where I first used Scala commercially and introduced it into the project.
Technologies used:
- Java
- OSGi
- Guice
- JSP
- Cucumber
- C#
- C++/CLI
- C++
- Scala
- Akka-Streams
- Akka-HTTP
- AWS
Skills & Tools
Frontend
-
React
-
Typescript
-
GraphQL
-
HTML & CSS
Backend
-
Scala
-
Java
-
Akka/Play/Lagom
-
AWS
-
Kubernetes
-
C#
Others
- DevOps
- Terraform
- Pulumi
- Debugging
- Unit Testing
- Property Based Testing
- Functional Programming
- Object-Oriented Programming
- Reactive Programming
- Reactive Architecture
- Local-First Software
- Event Sourcing
- CQRS
- Git
- gRPC
- SQL
Education
-
BSc in Computer ScienceUniversity of Auckland2006 - 2009
-
BCom in Information SystemsUniversity of Auckland2006 - 2009
Volunteering
-
Director & TreasurerLong Bay Residents Association2024 - Present
Languages
- English (Native)
Interests
Hobbies
- Spearfishing
- Snowboarding
- Video Games
- Board Games
- Craft Beer
- Coffee
Podcasts
- CoRecursive
- Functional Geekery
- Happy Path Programming
- localfirst.fm
- AWS TechChat
- Risky Business
- Y Combinator
Sports
- Rugby
- Cricket
- Drifting
- Sailing