TalkTalk – Manchester

PositionPeriod
Senior Lead Software EngineerSeptember 2019 – Present

The new TalkTalk Brochureware and Checkout Journey Website.

— Full project lifecycle from POC –> Development –> Production —

Development

  • Branching Model Strategy
  • Coding Standards and Guidelines
  • Software Design such as Architectural Design (domain driven micro-services, public facing APIs, databases, caching)
  • Software Development
  • Testing Strategy
  • Build and Release Pipelines
  • Environments based on Development and Business Requirements
  • Monitoring and Logging
  • Ensuring resilience and transient-fault-handling (retries, circuit-breakers for downstream API calls)
  • Rollover Keys for Data Encryption (PII)
  • Performance Testing Strategy
  • Programming Languages: C#, TypeScript
  • Frameworks: DotNet, Angular
  • Technologies: Docker, Kubernetes, Helm
  • Cloud: Azure

Product

  • working close with Product Owners and Solution Designers to define user stories and acceptance criteria
  • pre-refine user stories from development perspective and adding technical details to help developers achieve the purposed solution design
  • T-shirt size cross-squad backlog user stories

Mentoring / Coaching

  • mentoring / coaching new joiners regardless of their seniority level
  • mentoring apprentice developers

Interviewing

  • designing and creating interview problems
  • interviewing: Junior, Middle, Senior, Principal Software Engineers and Infrastructure Engineers

Contact point across multiple squads

As the project complexity grew up, it felt necessary that multiple squads to be created, me remaining one of the core key contact points.

On Call Strategy – cross squad

Based on the principle “You built it, you maintain it”, the developer who is most familiar with the code is the best person to troubleshoot related issues in the shortest amount of time. The following has been considered cross squads for obtaining an efficient on-call practice:

  • providing training (internal tools + 3rd party monitoring tools e.g. AppDynamics)
  • up-to-date documentation / architectural diagrams / run-books / processes of each product from each squad
  • fair expectations of the on-call and development duties
  • robust debug processes
  • deployment of an hotfix
  • multiple escalation channels
  • on-call incident report