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 and mobile apps.
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.
My current preferred tech stack
- React (hooks)
Other stuff I work with
- .NET (Primarily C#)
- Objective C
Some of my projects
Other open source contributions
Updated git subtree to work well on repos with over 200,000 commits
Implemented message queueing for communication between web and native layers; Fixed handling of large diffs in code analysis
Implemented iPad keyboard support
2021 - 2021 Front End Engineer @ BCG DV / Coop
Startup product development on a react native/typescript/graphql/node/azure functions stack
- Building a native app from nothing to prototype to initial release using the latest tools
- Built the first version of the app quickly enough that everyone assumed it was just a mockup
2020 - 2021 Front End Engineer @ Lumiant
Startup product development on a react/amplify/AppSync/lambda stack
- 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
- 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.
- 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.
- 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.
- Backporting parts of ASP.NET MVC to improve developer productivity on an older platform
- 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.
- 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.
- 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.
- 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.
- 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.
- 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