At NewStore I took on responsibilities to salvage and refine multiple customer facing services, including micro-frontends. My most notable initiatives and actions:
- Highlighting to the engineering community strategies of using characterisation tests as a way of managing a large legacy codebase, and unblocking progress towards developing a new feature with an estimated $6 million ARR.
- Leaving areas of multiple codebases in a better shape than I found them.
- Driving design of circuit breaker patterns for both queues and synchronous entry points. I've created and communicated to the staff+ engineers a comprehensive RFC, inviting feedback and emphasising its significance and impact on engineering resources. This eventually dropped in priority due to the approaching Black Friday/Cyber Monday period.
- For the BFCM preparations I drove hands-on efforts to load test select flows of the NewStore platform, collecting evidence of bottlenecks and improving performance of parts of the system, reducing pressure on database clusters and queues. Apart from that, ensured good observability and per-flow dashboards being implemented, enabling efficient diagnostics and operations.
- Focused on identifying the proverbial 20% of effort that leads to 80% of the outcome whilst collaborating on code bases.
- Disseminating core principles of extreme programming and industry standards in software engineering, like fast feedback loops, single responsibility, importance of refactoring, test-first approaches, low coupling, reduction of business logic proliferation.
- Speaking at weekly knowledge sharing sessions, presenting on topics like working with legacy codebases, types of testing and when to use them, tracking work progress based on cycle time and predicting future outcomes based on historic evidence.
- Project Bouncer: a weekly hackathon effort to create a robust process of provisioning per-tenant, ephemeral support accounts for inspecting individual customer accounts.
Key technologies used:
- AWS
- Terraform
- Kubernetes
- CI/CD using GitLab
- TypeScript
- React
- Python
- Go
- OpenSearch
- RabbitMQ