Full Stack Developer, Ops Engineer
I am an analytical thinker who loves to develop software, and discuss technology with peers. My most comfortable place in the workplace is within an energetic team that is explorative, passionate about programming and fun. I take the quality of my work seriously, employing best practices and up to date approaches to make likable code and reliable solutions.
Worked with the team to create a build and deployment framework in PowerShell which leveraged Psake, MSBuild, SSDT and other technologies. This helped to scale the engineering department from 60 to over 300 people by reducing the bottleneck in build, deployment and testing. We reduced building an environment from one week to 2 hours and dramatically increased the reliability and trust in the environments. Later on I introduced the team to collecting performance telemetry and log data across our cloud and analysing them using Elasticsearch, D3 and AngularJS. We were able to optimise deployments to large environments and improve their success rate by looking at error logs in real-time.Lead Engineer - C#, ASP.NET, SQL Server, WCF, NUnit
Led a large team to perform a rapid and critical analysis of the main websites performance before Christmas peak. We retrospectively looked at previous downtime root causes, profiled the website under load and stored log and error data which we would later feed into sprints and tackle by priority. Based on the data we focused on reducing internal network load, garbage collections, unhandled exceptions and unnecessary logging. This required using in-memory caching and optimising SQL queries, code and IOC container calls. We successfully reduced network load and CPU utilisation across the web and database servers which led to a smooth peak period.Web Engineer - Azure, WCF, NUnit, PostSharp
Developed a RESTful API using WCF which was consumed by another team to connect the iOS apps to the ASOS backend services. I used my experience with large codebases to scaffold and undertake challenging refactorings needed to share code between the main website and the mobile API. We used PostSharp to simplify our cross-cutting concerns and created intuitive fluent interfaces for interacting with Fredhopper. By promoting pair programming I was able to increase knowledge transfer and give mentorship to willing team mates.
Worked with various companies to build desktop windows applications, web applications and provide teams with mentorship and training on best practices and the .NET platform. During this time I also contributed to the NBehave open source project which I used to promote BDD and unit testing.
Upper Second Class with Honours
I spend time outside of work reading the latest technical blogs, blogging about technology, spiking out ideas and learning new platforms. I love both consuming and creating music and actively play guitar. I have further interests in traveling, photography, cycling and PC gaming.