Kenneth Kam

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 — Current

  • 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.

Application Developer, Rates E-Commerce, Credit Suisse

July 2012 — October 2014

  • 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.

Application Developer, Trade Management, Credit Suisse

July 2011 — July 2012

  • Developed an ASP.NET based CRUD application to administer user access to a trade blotter using HTML5 and MSSQL stored procedures.
  • Offered support and troubleshooting for the trade blotter application, talking to the users of the system in front and middle office.

Intern, ICT Develop, Airbus

July 2008 — July 2009

  • Development of a framework that enabled rapid development of CAD tools in Python.


MSc in Computer Science, University of Bristol

2010 — 2011

BEng in Aeronautical Engineering, University of Bristol

2005 — 2010

  • Achieved 2:1 honours
  • One-year industrial placement at Airbus, UK. See above.