About
I've been a software developer for around 6 years, with the last 5 of them working primarily on React SPAs in the financial services space at companies like NAB, IAG and ANZ.
I'm interested in any coding heavy roles in both the backend and frontend, that require deep knowledge of React or Typescript. I'm also keen on any roles involving Rust, as I'm learning that in my spare time.
Education
- Master of Information Technology
- Monash University, 2015 - 2017
- Bachelor of Science (Software Systems)
- University of Melbourne, 2009 - 2013
Technical skills
Highly experienced in
- React
- NodeJS
- Typescript
Some experience with
- Java 8
- Python
- Docker
Looking to upskill in
- CSS
- Cloud
- DevOps
Work experience
National Australia Bank (NAB) [Contractor]
Senior React Developer (July 2022 - June 30, 2023)
- Project
- Outbound Campaign
Tech stack
- Typescript
- React
- Integrated Outbound Call Campaign management into NAB's customized Amazon Connect Softphone.
- Migrated part of the codebase from Javascript to Typescript, and introduced React Testing Library to replace Enzyme for unit testing.
- Introduced the finite state machine pattern for managing the complexity of call interactions. A key achievement was no defects being raised with regard to the Outbound feature in the Softphone since deployment to production.
Insurance Australia Group (IAG) [Perm]
Specialist II, Developer (June 2021 - June 2022)
- Project
- Mid-term Amendments
Tech stack
- Typescript
- React
- NodeJS
- Redux
- Express
- Worked with Pivotal Labs to build a SPA that allowed customers to amend their home and motor insurance policies.
- This was an XP team that worked strictly in pairs, using TDD, continuous integration and trunk based development practices.
- Project
- Broker Removal Automation
Tech stack
- Typescript
- NodeJS
- MongoDB
- Docker
- A lot of production support time was spent on removing expired brokers from IAG's database. Was given responsibility to develop a script that interacted with ServiceNow APIs to extract broker IDs from raised tickets, and then purge them from our database, before finally closing those tickets.
- Resulted in significant cost savings, as team members no longer needed to service those tickets.
- Project
- Customer Complaints Form
Tech stack
- Typescript
- React
- React Hook Form
- React Query
Maintained a form for staff to submit customer complaints.
- Project
- Nova Service Quotes
Tech stack
- Javascript
- NodeJS
Maintained a legacy NodeJS application for building insurance quotes for the construction industry.
National Australia Bank (NAB) [Perm]
Analyst, Engineer (Jan 2020 - May 2021)
- Project
- Business Transaction Accounts
Tech stack
- Typescript
- React
- NodeJS
- Redux + Saga
- Apollo GraphQL
- Built several forms as micro-frontends that allowed customers to signup for NAB's Business Transaction Accounts.
- Built and maintained a React Storybook component library, so that our team and others could share common form components
- Won two consecutive quarterly NAB Recognize awards in my first year.
- Project
- Self Service Tool (SST)
Tech stack
- Typescript
- React
- SST was a tool to help internal NAB users to build their own forms.
- Our team developed a SPA to search, edit and manage these user forms.
- My contribution was to refactor the existing SST code base to take better advantage of Typescript, as well as added features and fixed defects.
CGI [Perm]
Associate Developer (Oct 2017 - Dec 2019)
CGI is a global IT consultancy that delivers a broad range of services.
- Project
- Trade Platform
- Client
- ANZ Bank
Tech stack
- Typescript
- React
- Redux + Saga
- Java 8
- Spring Boot
Greenfield project, where I helped build a React SPA and a Java Spring Boot BFF for ANZ's Trade Platform.
- Project
- Credit Assessment Microservice
- Client
- Telstra
Tech stack
- Java 8
- Jetty Web Server
Built a Java Microservice to expose credit assessments from CGI's proprietary credit decision engine system, to be used for identifying fraud.
- Project
- NAPLAN Student Reports
- Client
- Department for Education, South Australia
Tech stack
- Microsoft SQL Server 2012 Reporting Services (SSRS)
- T-SQL
Built SSRS reports that required complex T-SQL queries (outer joins, window functions and pivots), to analyze student performance on NAPLAN tests.
- Project
- Working With Children Data Ingestion
- Client
- Department of Education, Tasmania
Tech stack
- Microsoft SQL Server 2012 Integration Services (SSIS)
- T-SQL
Developed SSIS ETL packages that extracted data from an external SOAP web service and image files on disk. The data was cleaned and mapped according to customer requirements.
Personal projects
Crypto trading bots
Tech stack
- Typescript
- NodeJS
- React
- MariaDB
- Google Cloud
Built bots for trading crypto on Binance. This project consisted of 4 major pieces: a UI manager to view the performance of the bots and to start/stop them; the bot itself and 2 microservices - one to manage the bots, the other to log their trades.
Software development blog
Tech stack
- Typescript
- NextJS
- React
A place to document my learning on using React and Typescript for web development.
Michael West Reader for Android
Tech stack
- Typescript
- React Native
- Expo
A mobile specific reader for the Michael West news website. Didn't go through the process of publishing it due to the number of hoops a news app has to go through to publish in Google's Play Store.
Git Branch Manager
Tech stack
- Typescript
- React
- NodeJS
- Ink
A very simple CLI utility for being able to select branches for checkout/removal, as I couldn't be bothered typing out full branch names.
Resume
Tech stack
- Astro
- HTML
- Tailwind CSS
- React PDF
My resume as a (mostly) static website using Astro's Islands architecture. The PDF version is generated client side using React PDF.