email@example.com / GitHub / LinkedIn
Determined, resourceful, versatile engineer and manager, most notably in PHP, NodeJS, HTML, .net, and Angular. Commercial experience delivering both scalable and performant software solutions to meet the demands of a highly available and high traffic environment, and delivering smaller niche solutions for businesses.
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.
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.
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 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.
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.
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.
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.
I try to contribute back to the open source community. Here are some things that I have done:
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.
This was a presentation I delivered at a Sky Betting & Gaming tech talk about how we powered our payments stack.
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.
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.
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.
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.
To redirect WWW to non-WWW simply put the following in your .htaccess file: