I am a full-stack developer who likes to write maintainable code that solves business problems. Based in London, I enjoy working collaboratively in a team as well as working autonomously. My current technology stack is C# and Angular.
Work Experience
Senior Software Developer, G-Research
August 2016 — January 2024
Full-stack developer on the trading monitoring and tooling team responsible for developing apps for real-time monitoring, alerting, and operational workflows. The following are tasks that I have done in this role:
Migrated a complex configuration tool to a simple, API-based design that is easier to maintain and add new features to.
Implemented a workflow platform to orchestrate business processes.
Implemented SLIs using Prometheus to measure the reliability and performance of our apps.
Maintained a variety of apps, such as a real-time monitoring frontend, trading platform configuration tooling, service orchestration, release management, and more.
Organised squad health checks and 1-1 coffees within the team with the aim of understanding and improving the team morale.
Senior Software Developer, Perfect Channel
October 2014 — August 2016
Development of a multi-tenanted data analytics and visualization platform, implemented as a family of decoupled microservices. I have been responsible for a broad range of technologies, mainly split into the development and maintainance of the microservices and the DevOps to support the platform. The following are tasks that I have done in this role:
Developed plugins for our Kibana-based Dashboard that provides OAuth2, theming, and extra metric visualizations.
Developed and maintained an OAuth2 Elasticsearch proxy API that authorized users based on their tenancy.
Maintained the IdentityServer3 implementation as our OpenID Connect server, integrating with our in-house user accounts library.
Implemented a workflow to provision an environment in Azure with a combination of Octopus Deploy, Azure Powershell scripts, and Puppet. The workflow begins by creating a resource group and skeleton services in Azure, the provisioning of the Puppet Master VM, followed by any number of service VMs provisioned as Puppet Agents.
My previous role involved being in a cross-functional team, performing full-stack development for a marketplace trading platform.
Performed regular code reviews to improve the quality of the deliverable as a team and also to learn and to teach others.
Followed the Scrum methodology to deliver iterations. Actively participated in sprint planning and retrospectives to promote continuous improvement.
Proactive in documenting existing technical debt as stories into our backlog to allow the development teams to tackle them in future sprints.
Main WPF GUI developer responsible for implementing new features using MVVM to promote code maintainability. Added unittests to enable refactoring the codebase.
Implemented continuous integration using TeamCity and created a QA test plan to maintain application quality between releases.
Implemented an automated release process using TeamCity and shell scripts to allow one-click deployments.