Recent Experience
Email Archiving Platform
CTO and Senior Full-Stack Developer
Responsible for a comprehensive enterprise-grade email archiving and compliance platform serving multiple global clients. The platform processes millions of emails daily across AWS cloud infrastructure and on-premises deployments.
Key Technologies: TypeScript, Node.js, Go, Java 21, Spring Boot 3.5, React, Next.js, MongoDB, MySQL, Kafka, Kubernetes, Helm, Ansible ELK, Prometheus, Grafana, AWS, Docker, Cypress, Redis, Prisma, SAML 2.0, OAuth2
Infrastructure & DevOps
Kubernetes Deployments: Created 50+ Helm chart configurations for all platform services. Implements autoscaling policies, pod disruption budgets, and network policies for secure service-to-service communication.
AWS Infrastructure: Built automated deployment pipelines using CloudFormation templates and Ansible playbooks across multiple AWS regions. Manages VPN gateways, IAM roles, security groups, and Route53 DNS configuration.
CI/CD: Implemented Azure Pipelines for automated testing and container builds. Features parallel test execution with Jest and Mocha, code coverage reporting, and multi-stage deployment pipelines.
Monitoring: Integrated Prometheus metrics collection, Grafana dashboards, and ELK stack for log aggregation. Implemented service health checks and alerting policies.
Docker Development Environments: Designed comprehensive docker-compose configurations for local development, including:
- MongoDB replica sets with mongosh health checks
- MySQL/Percona databases with custom collation settings
- Kafka/Zookeeper clusters with topic initialisation
- MinIO (S3-compatible) servers with bucket creation
- Multi-service architectures with dependency orchestration
- Development tooling: kubectl proxy, mongo-express, kafdrop, MySQL clients
Docker Container Images: Built and optimised container images using multi-stage builds for:
- Node.js services: Alpine-based images with TypeScript compilation,
node-prunefor size optimisation, and distroless runners for minimal runtime footprint - Go services: Devcontainer-based images with librdkafka dependencies for Kafka connectivity
- Ubuntu base images: Custom images pre-configured with Node.js, Java JDK, AWS CLI, and development tools
Ubuntu Base Container: Built and maintained an Ubuntu 22.04 base image with Node.js, Java JDK 24, AWS CLI, ZooKeeper, etcd, Kafka, and development tools for consistent build environments.
CloudShell Container: Built Azure Cloud Shell base and tools containers with PowerShell 7 and various Azure SDKs for Microsoft cloud management workflows.
VS Code Dev Containers: Configured development container environments for multiple services with remote development support, SSH passthrough, and extension management.
Database & Data Management
MongoDB: Document store with replica sets for high availability. Implements automated backups and disaster recovery procedures using mongodump/mongorestore.
MySQL/Percona: Relational database for structured data, featuring Percona backup and restore workflows using myloader/mydumper for efficient data migration.
CouchDB: Clustered document store for distributed data storage with multi-node deployments.
Database Migration: Developed data migration tooling between MySQL and MongoDB clusters, supporting large-scale data transfers with integration testing against production-like datasets.
Claude Code Dev Environment (ralph-agent)
Personal Project - AI Development Environment
Created a Docker-based development environment optimised for long-running AI agent tasks using Claude Code. Features a non-root user setup with SSH and Git passthrough, automatic Node.js version management via NVM, and VS Code Remote Development compatibility.
Key Technologies: Docker, Ubuntu 24.04, Node.js, VS Code Remote
Summary
Extensive experience building scalable, multi-tenant enterprise SaaS platforms with expertise across the full technology stack. Proven ability to architect microservices, implement robust CI/CD pipelines, and manage complex cloud infrastructure deployments. Strong background in authentication systems, event-driven architectures, and modern frontend frameworks with a focus on maintainable, well-tested codebases.
Technology Summary
| Technology | Purpose |
|---|---|
| TypeScript | Primary language for APIs (Fastify, Express), frontend (Next.js, React), shared type library (@cryoserver/types) |
| Node.js | Backend runtime for 10+ microservices |
| Go | SMTP service for high-performance mail transfer |
| React | UI framework for customer-facing and internal admin dashboards |
| Next.js | React framework for customer-facing UIs |
| MongoDB | Primary document store for user and configuration data |
| MySQL/Percona | Relational database for structured data, used with Prisma ORM |
| CouchDB | Clustered document store for distributed data |
| Redis | Session caching |
| Kafka/KafkaJS | Event-driven messaging between microservices |
| Kubernetes | Container orchestration for production deployments |
| Helm | Package manager for 50+ Kubernetes chart configurations |
| Ansible | Infrastructure provisioning and configuration management (AWS, Azure) |
| Docker | Containerization for all services with multi-stage builds |
| AWS SDK | Integration with S3, IAM, Cognito, and other AWS services |
| OAuth2/JWT | API authentication and authorization |
| Cypress | End-to-end and component testing for frontend applications |
| Prisma | Type-safe database ORM for MySQL migrations |
| Zod | Runtime validation for TypeScript types |
| MUI (Material UI) | UI component library for Next.js applications |
| Puppeteer | PDF generation |
| Node-RD Kafka | Kafka client for Node.js services |
| Solr | Search indexing and query service |
| Prometheus/Grafana | Metrics collection and visualization |
| ELK Stack | Elasticsearch, Logstash, Kibana for centralized logging |
| Azure Pipelines | CI/CD for automated builds and deployments |
| Playwright/MCP | Browser automation for AI-driven UI testing |
| llama.cpp | Local LLM inference for experimental CLI tools |
| Shibboleth SP | Apache module for SAML 2.0 federation |
| ZooKeeper | Coordination service for Kafka and Solr clusters |
| MinIO | S3-compatible storage for local development |
| Maven | Java project build tool with Surefire testing |
| TurboRepo | Monorepo tool for managing multiple Next.js applications |
