SENIOR CLOUD · DEVOPS · PLATFORM ENGINEERING

Engineering the Cloud.
Automating Everything.

I’m Todor Shopov, a Senior Cloud / DevOps / Platform Engineer. I design, migrate, and operate cloud-native systems—Kubernetes, infrastructure as code, GitOps, security, and production operations—on AWS and Azure.

9+ yearsEngineering experienceAWS & AzureCloud infrastructureGitOps & KubernetesPlatforms and operations BulgariaInternational remote
LAYER A · SOFTWARE DELIVERY · GITOPSLAYER D · OBSERVABILITYLAYER B · HYPOTHETICAL AWS RUNTIMELAYER C · PRIVATE DATAReviewed commit pushed to GitCI checks out the Git revisionCI publishes an immutable image digestFlux reconciles desired state from GitKubernetes pulls the digest named by GitFlux applies the Deployment to the clusterUser traffic enters at the load balancerLoad balancer forwards to the ingressIngress routes to Ready Service endpointsReady pods join the ServiceApplication reads and writes private object storageApplication reads and writes the private cacheApplication reads and writes the private databaseApplication telemetryKubernetes telemetryLoad balancer telemetryDevelopergit pushGit repositorymain · a7c93e1CI pipelineGitHub ActionsImage registryimmutable digestFlux CDGitOps reconcileObservabilitymetrics · logs · tracesMetricsLogsTracesAlertsInternetinbound usersLoad balancerALBTLS terminates at the load balancerTLSIngress / gatewaycluster entryKubernetesEKS · DeploymentWorkload identity for AWS APIs. Not a static access key.IAMApp serviceReady endpointsSecret mounted at runtime. Not baked into the image.SECRETDatabaseRDSNo public endpoint. Reachable from the application network only.PRIVATECacheRedisNo public endpoint. Reachable from the application network only.PRIVATEObject storageS3No public endpoint. Reachable from the application network only.PRIVATE

Operate · Healthy baseline

EDUCATIONAL SIMULATION
DeliveryRuntime trafficTelemetryIAM workload identitySECRET runtime mountPRIVATE no public endpointTLS at the edge

Operate Healthy baseline. Illustrative GitOps model using Flux CD.

Scenario
Successful deployment
Stage
Healthy baseline
Status
idle
Revision
api:v1@sha256:9c1a…a41d
Ready replicas
3 / 3
Simulated rps
42
Service health
healthy
CAPABILITIES, NOT A TOOL DUMP

Technology stack

Primary expertise is the daily architectural and operational practice. Hands-on experience is work delivered and operated. Familiarity is working knowledge without a production specialty claim.

Cloud platforms

Account structure, identity, networking, and managed services for production environments on AWS and Azure.

Primary expertise

  • Amazon Web Services
  • Microsoft Azure

Familiarity

  • Google Cloud

Kubernetes and containers

Managed Kubernetes operating models, image delivery, and workload identity rather than cluster novelty.

Primary expertise

  • Kubernetes
  • Amazon EKS
  • Azure Kubernetes Service
  • Docker
  • Helm
  • Kustomize
  • Ingress and autoscaling
  • Workload identity

Hands-on experience

  • Amazon ECS / Fargate

Infrastructure as Code

Reviewable, modular infrastructure with environment promotion instead of Console-built snowflakes.

Primary expertise

  • Terraform
  • Terragrunt
  • Python
  • Bash
  • Linux automation

Hands-on experience

  • Pulumi

GitOps and CI/CD

Build, scan, sign, and promote artifacts; reconcile desired state; roll back without rebuilding history.

Primary expertise

  • Flux CD
  • GitHub Actions
  • GitLab CI/CD
  • Container registries
  • Artifact promotion
  • Rollback automation

Hands-on experience

  • Azure DevOps Pipelines
  • Jenkins

Cloud networking

Private connectivity, DNS, load balancing, and service entry so workloads are reachable by design, not by exception.

Primary expertise

  • VPC and VNet architecture
  • Subnet, routing, and NAT
  • Load balancing and DNS
  • Private endpoints
  • TLS and mTLS
  • Ingress controllers
  • API gateways

Hands-on experience

  • Istio

Familiarity

  • Kong
  • KrakenD

Security and DevSecOps

Least privilege, secret handling, and supply-chain checks in the delivery path rather than a later audit.

Primary expertise

  • IAM and RBAC
  • Workload identity
  • AWS KMS
  • AWS Secrets Manager
  • Azure Key Vault
  • External Secrets
  • SOPS
  • Certificate lifecycle
  • Container scanning

Hands-on experience

  • HashiCorp Vault

Observability

Metrics, logs, and traces that explain user impact, with alerts that have owners and a next step.

Primary expertise

  • OpenTelemetry
  • Grafana
  • Prometheus
  • Loki
  • Amazon CloudWatch
  • Alerting and investigation

Hands-on experience

  • Grafana Tempo

Data and messaging

Managed stores and queues as platform dependencies: backup, identity, network path, and failure domains.

Primary expertise

  • Amazon S3

Hands-on experience

  • PostgreSQL
  • MySQL / Aurora
  • Redis
  • Amazon SQS
  • Apache Kafka
  • NATS JetStream
  • MongoDB
  • MinIO

Platform and operations

Linux, Git, registries, and the operating habits that keep a platform consistent as teams grow.

Primary expertise

  • Linux
  • Git
  • Cost optimization
  • Reliability engineering
  • Platform standardization

Hands-on experience

  • Artifactory
  • Nexus
  • Serverless architecture
01 / THE DELIVERY LIFECYCLE

From code to production.

Explore how cloud-native applications move from a reviewed change to a verified, observable service.

SDLC / EDUCATIONAL SIMULATION
STAGE 08 / 10 · Successful deployment

Operate

Route traffic to ready replicas and validate application behavior in the target environment.

ReadinessRunbooksOn-call

Challenge: A running container is not necessarily a working service.

Practice: Verify dependencies and use application-level smoke tests.

Read the technical guide
$ pipeline run --environment demo

Waiting for a simulated deployment…
No cloud resources will be created.

Ready to run.

02 / ENGINEERING EXPERTISE

Connected disciplines.
Reliable foundations.

Cloud architecture, Kubernetes, delivery automation, security, observability, and cost—connected disciplines, not a résumé list.

EDUCATIONAL EXAMPLES

Reference architectures

Educational examples of how the disciplines connect. They are not client projects, case studies, or measured results.

Educational reference

AWS multi-environment Kubernetes platform

Educational layout for isolated accounts, private EKS workloads, and GitOps promotion. Not a client topology.

Components
Separate AWS accounts for development, staging, and production, with a shared services account for identity and DNS.
VPC with public subnets for load balancers only; private subnets for EKS nodes, and data stores with no public IPs.
EKS with IRSA, AWS Load Balancer Controller, and Flux reconciling from a protected Git repository.
ECR as the image registry; digest-pinned promotion between environments.
Design decisions
Environment isolation at the account boundary so a leaked development credential cannot apply production Terraform.
GitOps pulls desired state; CI publishes an image digest and never holds cluster-admin keys.
NAT or VPC endpoints are explicit outbound paths. Default internet from private nodes is treated as a defect.
Security
OIDC from the pipeline to a role that can push one repository and tag one digest.
Secrets from Secrets Manager or External Secrets using the workload identity, not Kubernetes Secrets committed to Git.
Security groups allow the application port from the load-balancer group only; the cluster API is private.
Trade-offs
Multi-AZ nodes and a multi-AZ data store raise cross-AZ cost and reduce zone-loss blast radius. Choose RTO before replica count.
A shared cluster is cheaper than cluster-per-team and needs stronger tenancy, quotas, and network policy.

Educational reference

Azure private AKS architecture

Educational private-cluster pattern: VNet isolation, private API, Key Vault, and private endpoints. A teaching counterpart to the AWS network figure.

Components
Hub-and-spoke VNets or a dedicated application VNet with NSGs on subnet boundaries.
AKS with a private API server, Azure CNI or equivalent pod networking, and Azure RBAC mapped to Kubernetes roles.
Azure Key Vault plus CSI or External Secrets; private endpoints to Key Vault, ACR, and data services.
Ingress on an internal load balancer; DNS in a private zone. No public node IPs.
Design decisions
Private cluster API so kubectl and automation enter through a jump path or private endpoint, not the public internet.
Managed identities for node pools and workloads instead of service-principal secrets on disk.
Terraform state in a locked, per-environment storage account—not a shared development backend.
Security
Key Vault firewall and private endpoint; the cluster identity can get secrets, not manage the vault.
ACR with pull-only identities per namespace or node pool. Mutable tags are not a promotion mechanism.
Network Security Groups plus Kubernetes NetworkPolicy. One control is not a substitute for the other.
Trade-offs
A private API improves the attack surface and complicates break-glass and CI connectivity. Document the jump path before locking the API.
Azure CNI consumes VNet IPs; overlay networking conserves addresses and changes packet paths. Size the VNet for the chosen model.

Educational reference

GitOps microservices delivery

Educational delivery path: one digest, scan policy, Flux reconciliation, and rollback as Git plus cluster health.

Components
Pull-request pipeline without production credentials: tests, SAST, and image scan.
Protected branch publishes a digest to a registry. Flux watches an environment overlay in Git.
Helm chart or Kustomize overlay supplies probes, requests, and a PodDisruptionBudget.
Staging and production consume the same digest with different configuration and identity.
Design decisions
Build once. Environment differences live in config and IAM, not in a second compile.
Flux is the cluster actuator. CI does not kubectl apply to production.
Rollback is revert of the Git revision Flux already reconciled, after checking crash loops and ingress errors.
Security
OIDC-scoped deploy identity: one registry, one namespace, no IAM user creation.
Admission or pipeline policy blocks critical exploitable findings before Flux is allowed to see a new tag.
SOPS or a secrets controller for runtime secrets. The Git repo holds encrypted material or references, not raw tokens.
Trade-offs
GitOps makes drift visible and makes emergency hotfixes slower unless a documented break-glass overlay exists.
Helm versions a product interface; Kustomize patches environment differences. Two unowned sources of truth will fight.
03 / THE KNOWLEDGE HUB

Engineering, explained.

All technical guides
ON-CALL CHALLENGE

A deployment has degraded a hypothetical service.

Inspect the symptoms, choose a likely cause, then choose a recovery. Score comes from the decision, not from speed. There is no leaderboard and no live infrastructure.

Open the challenge
LET’S BUILD WHAT’S NEXT

Good engineering starts with a conversation.

Let’s connect