Tom Clarkson

High end full stack developer in Sydney, Australia.


I am a full stack developer with over twenty years web and mobile experience, most recently for startups building React/node/GraphQL/AWS based SaaS platforms for financial advisers.

I am the guy who can find the one character in ten thousand lines of code that needs to change to fix a particularly stubborn bug that only occurs in production every seventh page load on alternate Tuesdays.

So far I have never come across a technical problem I couldn’t solve. Challenge me.

Technologies

My current preferred tech stack

  • AWS
  • AppSync
  • Lambda
  • Terraform
  • Node
  • ES6
  • Webpack
  • SCSS
  • Apollo
  • React (hooks)
  • JSS
  • Jest
  • ESLint
  • Git

Other stuff I work with

  • Redux
  • Amplify
  • .NET (Primarily C#)
  • Swift
  • Objective C
  • Java
  • Python
  • SQL
  • Cordova
  • Angular
  • Ubuntu
  • Mongo
  • Gulp
  • Mocha

Open source

Some of my projects

Other open source contributions

Past Experience

2021 - 2021 Front End Engineer @ BCG DV / Coop

Startup product development on a react native/typescript/graphql/node/azure functions stack

Achievements include

  • Building a native app from nothing to prototype to initial release

2020 - 2021 Front End Engineer @ Lumiant

Startup product development on a react/amplify/AppSync/lambda stack

Achievements include

  • Built the front end portion of the app from rough prototype to released product

2019 - 2020 Tech lead / Senior Engineer @ Spitfire

Full stack fintech development on a react/Apollo/AppSync/lambda stack

Achievements include

  • Streamlined the build / release process reducing the commit to deployment time from 10 minutes to 30 seconds
  • Migrated an idiosyncratic and error prone codebase to standard react
  • Improved rendering time of a key page by 3700%
  • Introduced automated tests that didn’t crash if ever pointed at real code
  • Developed code to seamlessly transition from redux saga to Apollo without back end cooperation
  • Automated complex infrastructure deployment using terraform while transitioning to a microservices architecture
  • Learned just how terribly a long string of job interviews can go

2016 - 2019 React, React Native

Since switching to React as my primary development platform, I have worked on a series of React Native apps, typically with a corresponding React web implementation.

Achievements include

  • Contributing code to the core react native project, used on millions of devices
  • Implementing the MongoDB API on top of Realm to simplify code reuse
  • Designing a framework to apply git-based versioning and collaboration tools to non-code data
  • Developing tools to rapidly prototype apps with shared code across web and native systems
  • Learning way too much about the internals of SSH and certificate based authentication

2013 - 2016 Angular, Cordova

For several years my main project was front end lead for a series of white label financial calculators for government agencies and super funds, along with a few smaller mobile app projects.

Achievements included:

  • Implementing the git smart http protocol in pure javascript
  • Applying modern JS build tools (Browserify/Webpack/Babel/ES6) to a system still based on Angular v1
  • Designing and building a video-based hybrid iOS app
  • Building a highly extensible framework for rapid development of single page apps
  • Extending Cordova apps with native iOS code to achieve a more native feeling app than is normally achievable with webviews
  • Setting up a full modern development environment, with continuous integration (Codeship/Mocha/ESLint) and automated deployment to AWS and Azure

2010 - 2014 Sharepoint

Back in the enterprise world, I spent several years with my main project being working on the corporate intranet for a large HR consultancy. Although this involved producing a quarter million lines of intranet code which I would be quite happy to never see again, there was a reasonable amount of opportunity to work with modern tools.

Achievements included:

  • Backporting parts of ASP.NET MVC to improve developer productivity on an older platform
  • Developing tools to implement features of modern javascript webapps within a restrictive intranet environment
  • Applying a modern js build and test system to a platform highly incompatible with that approach

2008 - 2010 .net

Needing a change after spending 3 months on post-merger integration, then 3 months splitting up the same systems, I began working on a social media startup with something resembling a modern web app structure.

Achievements included:

  • Managing a team of remote developers
  • Designing and building a semantically aware web crawler

2005 - 2008 SharePoint

After another unexpected platform change, I found myself specializing in SharePoint based systems and moving from development to a consulting and enterprise architecture role.

Achievements included:

  • Building a widely used visual studio plugin
  • Learning to be productive despite many 8 hour meetings

2004 - 2005 Java, .net

Returning to the enterprise world, I worked for a series of consultancies with mostly government and financial services clients, switching my primary development platform from Java to .net after accidentally ending up in the wrong job interview.

Achievements included:

  • Delivering a presentation on tablet UI concepts to Bill Gates
  • Writing code handling over a billion dollars in transactions daily

2001 - 2003 Startup

After seeing a potential market in some of the large enterprise sites I had been working on, I founded my first startup, pivoting from enterprise to small business systems when the dotcom market became less reliable.

Achievements included:

  • Turning an idea into a VC funded startup
  • Developing a complex single page ajax application several years before that was a thing

1997 - 2000 Web

While studying computer science (minimally relevant) and physics (even less relevant) I started doing freelance web development work, which soon expanded to working on some of the largest websites in Australia and New Zealand.

Achievements included

  • Setting a project back a month by missing one day
  • Building some quite terrible big ball of mud JS apps to take advantage of newly available dynamic html capabilities
An up to date version of this document can be found at tqclarkson.com/cv