Determined, resourceful, versatile full-stack engineer and manager, most notably in Node.js, PHP, HTML, .net, and Angular. Commercial experience in both architecting and implementing scalable and performant software solutions to meet the demands of a highly available and high traffic environment, and delivering smaller niche solutions for businesses.
Where I've Worked
Application Engineering Chapter Lead (December 2020 - Present)
Keeping within the brokerage industry, I moved to Vanguard as a Development Chapter Lead within the advisors space. The team uses Node, Angular, and AWS technologies to provide tooling for advisors so that they can best assist clients.
Manager, Real Time Data Intelligence • (December 2019 - December 2020)
Building upon the technology implemented in my role within Invest Sustain I am now manager of Real Time Data Intelligence. We use real time operational data and monitoring to drive automation and elasticity (AWS and on-prem) across the Ally Invest line of business.
Development Manager, Invest Sustain & Site Reliability • (October 2018 - December 2019)
Promoted to a position to manage sustain and site reliability initiatives, disaster recovery, capacity planning, monitoring, with multiple direct reports. Working to prevent unplanned work within the development teams.
Senior Application Developer • (May - October 2018)
Worked on account application and money transfer (including ACH/Check) systems. Using Node 8, RabbitMQ, Angular 6, .NET Framework and .NET Core. Including planning, architecture, and implementation.
Global Payments (Xenial)
Senior Software Engineer • (February - May 2018)
I worked as a senior software engineer with a primary focus on AWS cloud architecture and design. I discussed, architected, and lead implementation of complex systems for the restaurant industry.
Web Developer • (March 2017 - February 2018)
Web Developer working full stack with Angular 1 and 2 on the frontend and Node.JS / AWS on the backend. I also lead a team using AWS components (including Kinesis, SNS, Lambda) building data pipelines and warehousing solutions.
Sky Betting & Gaming
Lead Software Engineer • (June - November 2016)
I earned a promotion to the Lead Software Engineer role. I took on multiple direct reports, and was responsible for implementation and architecture of payments technology across the entire Sky Betting & Gaming portfolio.
Software Engineer • (2015 - 2016)
I worked in the Account Payments team as Software Engineer. As a key member of the team, I steered the implementation details of our products, delivering highly available and dependable solutions that bring value to the customer and the business.
Web Developer • (2012 - 2015)
I developed bespoke solutions for clients across a range of technologies, including PHP (Symfony/Doctrine), Unity, C#. I also maintained multiple Linux and Windows servers.
Things That I've Built
I try to contribute back to the open source community. Here are some things that I have done:
My Published Articles & Presentations
Login Capacity by Using Node.js
This is an article that I wrote for the Sky Betting & Gaming Engineering Blog explaining how we went about transitioning key parts of our stack to Node.js to benefit from the asynchronous nature that it brings.
Powering Payments with Node.js
This was a presentation I delivered at a Sky Betting & Gaming tech talk about how we powered our payments stack.
Truncate String (Character Limiter)
When displaying long pieces of user-definable text, it is sometimes useful to truncate it down into a smaller chunk for displaying in a fixed sized area.
Removing part of the URL with .htaccess
Recently we changed URLs on a website from /p/category/product to just /category/product. This meant that we had to 301 redirect the old URLs to prevent Google results from returning a 404 error and to also let Google know that the page has permanently changed URL as to update their search indexes.
Ignore New Relic Page Transaction
NewRelic will, by default, log every page request as a transaction. This can lead to skewed results on pages that have long running requests, such as crons.
Bulk uploading files to Rackspace Cloud Files
Recently I needed to upload around 28,000 images onto a cloud files container. This could be achieved by using CyberDuck, but that takes way too long to mass upload. What I ended up using was Turbolift.
Redirect non-WWW to WWW
To redirect WWW to non-WWW simply put the following in your .htaccess file: