About

I've been building for the web for over fifteen years, across agencies, startups, and product teams - mostly on the frontend. Much of that has been with TypeScript and React, though my experience and interest extend beyond them.

As AI has become more capable, I've made it a part of how I work. It lets me focus on the design and the hard decisions, and hand off the repetitive parts of the implementation without losing control of the details.

Experience

  1. Now

    Senior Software Engineer

    Openpay → Opypro

    Started at Openpay on the B2B team as a frontend engineer. When Openpay shut down, the team and product were spun out into a new company, Opypro, where I continue to work on the frontend apps.

    I also work across the stack in Node.js, where I built the service behind our PDF and email generation, which handles tens of thousands of documents a month.

    • React
    • TypeScript
    • CSS Modules
    • Jest
    • Node.js
    • AWS
    • Puppeteer
  2. Developer

    Three-month contract. Worked on a platform for remote teams to play social games.

    • React
    • TypeScript
    • Web Sockets
  3. Developer

    Incent

    Started part-time on weekends, then went full-time in late 2019 when my BetEasy contract ended. Over a year and a half, I built two React SPAs, a React Native app, and plugins for the major streaming tools.

    Unfortunately, Incent shut down shortly after I left.

    • React
    • React Native
    • TypeScript
    • Redux
    • Jest
    • Styled Components
    • Web Sockets
  4. Senior Software Engineer

    CrownBet → BetEasy

    Started on a six-month contract for the 2017 Spring Racing Carnival; stayed nearly two and a half years. I was a key part of the migration from CrownBet to BetEasy, moving much of the legacy site onto a new single-page app and shipping new features along the way.

    BetEasy merged into Sportsbet after I left.

    • React
    • Redux
    • JavaScript
    • CSS Modules
  5. React Developer

    Six-week contract building two React applications.

    • React
    • Redux
    • JavaScript
  6. Lead Frontend Developer

    I joined as a frontend developer and left as the frontend lead, building and leading the team. As lead, I owned our development process, code reviews, and deployments, led technical and functional planning, mentored through pair programming, and was the first point of contact for clients and for critical issues.

    • React
    • Redux
    • SASS
    • WordPress
    • Drupal
    • PHP
  7. Web Developer

    Roster Plus

    A short-term contract after I moved to Melbourne in late 2011. Most of my time went to the iPad version of their clock-in/out app, built as an offline-first SPA. I also maintained a few client sites.

    • jQuery
    • PWA
  8. IT Lecturer

    WCIT

    After finishing my diploma at WCIT, a lecturer asked me to teach a weekly PHP class. It grew into several web courses, and I wrote and taught the material. I also spent a good chunk of time digitising other lecturers' courses for online delivery.

    WCIT is now part of North Metropolitan TAFE.

    • JavaScript
    • PHP