Backend & Cloud Engineer — Building scalable backend systems, cloud infrastructure, and AI-powered production systems using Python, AWS, and distributed systems.
Deep, production-tested expertise across the full backend and cloud infrastructure stack — from system design to deployment automation and observability.
REST APIs, microservices, Django, and distributed system architecture for production-grade workloads.
EC2, S3, RDS, Lambda, IAM — provisioning, scaling, and securing cloud environments at production load.
GitHub Actions pipelines enabling zero-manual deployments across multi-server AWS environments.
Real-time log streaming, Elasticsearch analytics, CloudWatch integration, and Prometheus/Grafana dashboards.
Structured LLM output generation, prompt optimization, and enterprise AI feature integration into backend workflows.
IAM role-based access, OIDC authentication, MFA enforcement, and static credential elimination.
Every system should degrade gracefully. Failure scenarios are first-class design considerations — not afterthoughts.
Manual processes are reliability risks. Infrastructure as Code (Terraform) and automated pipelines eliminate human error at scale.
If you can't measure it, you can't fix it. Structured logging, metrics, and tracing are non-negotiable in production.
IAM least-privilege, OIDC-based auth, MFA enforcement, and zero static credentials — security is embedded in design, not bolted on.
AWS Security Redesign
Problem: Static AWS credentials in CI/CD pipelines created a critical production security risk — leaked keys could grant unrestricted access.
Solution: Eliminated all static credentials. Introduced IAM role-based architecture with least-privilege policies, OIDC-based authentication for GitHub Actions, and MFA-enforced developer access. Roles are assumed dynamically per deployment context.
Tradeoffs: OIDC adds token exchange latency; role boundaries require careful scoping to avoid over-permissioning. Complexity increases but attack surface shrinks dramatically.
Outcome: Zero static credentials in production. Full audit trail via CloudTrail. Deployment pipeline authenticates without storing secrets.
CI/CD Automation System
Problem: Manual deployments to multiple AWS EC2 servers were error-prone, inconsistent, and blocked engineering velocity.
Solution: Built a GitHub Actions pipeline that automates build, test, and multi-server EC2 deployment. Each push to main triggers a full deployment cycle — no manual SSH, no ad-hoc scripts.
Tradeoffs: GitHub Actions simplicity trades off against orchestration depth — no native rollback or canary support. Mitigated with health checks and deployment gates.
Outcome: Consistent, repeatable releases. Deployment time reduced significantly. Engineers focus on code, not operations.
Designing resilient backup isolation to protect production data from account-level compromise or accidental deletion.
Architecture & Design
Problem: Production data stored in a single AWS account created a single point of failure — a misconfigured IAM policy or account compromise could destroy backups alongside live data.
Solution: Designed a cross-account S3 replication system managed entirely via Terraform. Backups replicate to an isolated AWS account with strict IAM boundaries. OIDC-based authentication governs cross-account access — no static credentials, no shared keys.
Security Design: The backup account has no write access from production systems post-replication. IAM policies enforce read-only access for recovery operations, preventing ransomware-style overwrites.
Tradeoffs: Cross-account replication incurs additional S3 transfer and storage costs. Accepted as a necessary cost-vs-resilience tradeoff for production data protection.
Failure Scenarios
S3 replication is async — RPO is non-zero. Mitigated with replication metrics and CloudWatch alarms.
Overly permissive cross-account roles could expose backup data. Terraform enforces least-privilege on every apply.
Manual changes to AWS resources can cause state drift. Remote state locking and plan reviews prevent divergence.
Problem & Architecture
Problem: Production issues were diagnosed reactively — logs were scattered, unstructured, and required manual SSH access to investigate. Mean time to resolution was high.
Solution: Built a Dockerized observability pipeline: application logs stream to CloudWatch, Logstash ingests and normalizes log events, and Elasticsearch indexes them for real-time querying. Engineers query structured logs directly without touching production servers.
Tradeoffs: Running Logstash and Elasticsearch adds operational overhead — additional containers to maintain, tune, and monitor. The depth of observability gained justifies the complexity for production systems at scale.
Pipeline & Failure Scenarios
High log volume can cause Logstash queue overflow. Persistent queues and backpressure configuration mitigate data loss.
Unbounded log retention fills disk. ILM policies rotate and delete old indices automatically.
Designing a standardized async ingestion pipeline to handle inconsistent video formats at scale in an AI manufacturing platform.
Problem & Solution
Problem: The AI computer vision system received raw video uploads in inconsistent formats, resolutions, and codecs. Downstream ML models failed unpredictably on non-standard inputs, causing silent processing errors in production.
Solution: Introduced a proactive normalization stage before any video reaches the ML pipeline. Videos are validated and transcoded to a standardized format asynchronously — the API returns immediately while processing continues in the background. Only normalized video enters the inference pipeline.
Tradeoffs: Async normalization introduces latency before processing begins. Accepted as a consistency-vs-latency tradeoff — predictable ML behavior outweighs the delay for manufacturing quality control use cases.
Architecture & Failure Scenarios
Corrupt or unsupported video formats fail normalization. Dead-letter queues capture failures for manual review.
Burst uploads can saturate the normalization queue. Auto-scaling workers and queue depth alarms prevent backlog buildup.
Problem & Architecture
Problem: Failure Mode and Effects Analysis (FMEA) documentation in manufacturing is time-intensive and requires domain expertise. Engineers needed a way to generate structured FMEA drafts from operational data at scale.
Solution: Integrated an LLM into the backend workflow to generate structured FMEA output from production data inputs. Prompt engineering was used to enforce structured JSON output, reducing post-processing overhead. Prompts were iteratively optimized to minimize token usage and API cost while maintaining output quality.
Tradeoffs: LLM outputs carry hallucination risk — generated FMEA content requires human review before use. The system is designed as a draft-generation assistant, not an autonomous decision-maker. Cost is managed through prompt compression and caching repeated context.
Failure Scenarios & Design Decisions
LLMs can generate plausible but incorrect failure modes. Mandatory human review gates prevent unvalidated output from entering production records.
LLM inference is slow relative to standard API calls. Async task queues decouple generation from the request lifecycle.
Verbose prompts inflate token costs at scale. Prompt compression and context caching reduce per-request cost significantly.
Built a student performance modeling system using machine learning to predict academic outcomes from historical data. Focused on feature engineering, model selection, and interpretable output for institutional decision-making.
Developed a deep learning pipeline using OpenCV and convolutional neural networks to classify facial expressions in real time. Emphasis on model accuracy, inference speed, and handling varied lighting conditions in production-like environments.
Currently based in the United Kingdom and open to Backend Engineer, Software Engineer, and Platform Engineer roles
Focused on backend systems, distributed systems, cloud infrastructure engineering, and production reliability. Interested in teams building at scale where system design and engineering ownership matter.
Python, Django, REST APIs, microservices, distributed architecture
AWS, Terraform, IAM, EC2, S3, Lambda, RDS
CI/CD, observability, deployment automation, reliability engineering