senior-backend-developer@the-virtulab:~/career
← Back to CV
Startup EdTech Lead

Senior Backend Developer

The Virtulab 🇬🇧 London, UK
📅 January 2021 → June 2022 (1 year 6 months)

$ echo $IMPACT_METRICS

0→1 Infrastructure Built
100% Backend Ownership
GKE Cloud Platform

$ cat tech-stack.json

🔧 Supporting Stack

☁️ Infrastructure & DevOps

$ cat README.md

At The Virtulab, I was the sole backend and DevOps engineer responsible for the entire technical infrastructure of a cloud-native EdTech platform. This was a greenfield opportunity to architect and build everything from scratch.

The platform required real-time video streaming (WebRTC, RTMP), event-driven microservices, and enterprise-grade security — all deployed on Google Cloud Platform with Kubernetes.

I owned the complete backend lifecycle: architecture, implementation, deployment, monitoring, and maintenance.

$ git log --oneline responsibilities/

Architected and implemented microservices in Node.js, Python, and Java using Express.js, Flask, and Spring Boot for different domain requirements
Built real-time streaming infrastructure with WebRTC, Wowza, and Agora.io for live video/audio/screenshare using RTMP protocols
Designed and deployed on GCP using Cloud Build, Cloud Deploy, GKE, App Engine, BigQuery, Cloud Armor, and API Gateway
Established CI/CD pipelines with GitHub Actions for automated testing, deployment, and rollback capabilities
Implemented event-driven architecture using RabbitMQ, Celery, and Stomp for asynchronous processing
Managed multi-database systems including PostgreSQL, MongoDB, Firestore, and Firebase for different data patterns
Integrated security features including multi-factor authentication with PingID and IAM best practices
Set up API gateways, load balancing, logging, and monitoring for full system observability

$ grep -r "achievement" ./

Built entire backend infrastructure from scratch — from first commit to production deployment
Delivered real-time streaming capabilities supporting hundreds of concurrent users with sub-200ms latency
Established robust CI/CD reducing deployment time from hours to under 10 minutes with automated rollbacks
Implemented containerized deployments with Docker and Kubernetes ensuring consistent environments across dev/staging/prod
Designed event-driven architecture that handled traffic spikes gracefully with RabbitMQ queuing
Integrated comprehensive security with MFA, IAM, and Cloud Armor for enterprise compliance

$ cat CHALLENGES.md

Real-Time Video Streaming at Scale

🔴 Challenge:

The platform needed to support live classrooms with video, audio, and screen sharing for hundreds of concurrent users with minimal latency.

🟢 Solution:

Designed a hybrid streaming architecture using WebRTC for peer-to-peer low-latency connections and Wowza/Agora.io for larger broadcasts. Implemented RTMP ingestion for external streaming sources and adaptive bitrate transcoding for varying network conditions.

WebRTCWowzaAgora.ioRTMPGCP

Multi-Language Microservices Orchestration

🔴 Challenge:

Different parts of the system required different languages (Node.js for real-time, Python for ML, Java for heavy processing), creating complexity in deployment and monitoring.

🟢 Solution:

Containerized all services with Docker and deployed on GKE with standardized health checks and logging. Created a unified API gateway that abstracted internal service complexity. Implemented distributed tracing for debugging cross-service issues.

DockerGKEAPI GatewayCloud LoggingCloud Trace

Greenfield DevOps Setup

🔴 Challenge:

As the sole DevOps engineer, I needed to establish all infrastructure, pipelines, and processes from scratch while simultaneously developing features.

🟢 Solution:

Prioritized automation early — Infrastructure as Code with Terraform-like patterns, CI/CD with GitHub Actions, and comprehensive documentation. This investment allowed me to move faster as the codebase grew.

$ cat details.md

The Solo Backend Journey

Being the only backend engineer at a startup is both challenging and rewarding. I had complete ownership of:

  • Architecture decisions
  • Technology choices
  • Implementation quality
  • Operational reliability

This experience taught me to think holistically about systems and make trade-offs pragmatically.

Architecture Decisions

Why Multi-Language?

I chose different languages for different services based on their strengths:

  • Node.js/Express: Real-time WebSocket connections, API gateway
  • Python/Flask: ML processing, data analysis
  • Java/Spring Boot: Heavy computational tasks, enterprise integrations

All containerized with Docker for consistent deployment.

GCP Stack Rationale

Google Cloud Platform provided:

  • GKE for managed Kubernetes without the operational overhead
  • Cloud Build for CI/CD that integrated seamlessly
  • BigQuery for analytics at scale
  • Cloud Armor for DDoS protection and WAF

Lessons Learned

  1. Automation First: Even as a solo dev, invest in CI/CD early
  2. Observability is Critical: You can’t debug what you can’t see
  3. Documentation Matters: Future you (or teammates) will thank present you
  4. Choose Boring Technology: Unless there’s a compelling reason for something new

Technologies: Python, GCP, PostgreSQL, Redis, Docker/Kubernetes

Similar Roles: AI Backend Lead at Anaqua | Senior Engineer at Flowrite

$ ls -la case-studies/