open to junior cloud / devops roles

Karim
El Atfy

Cloud & DevOps Engineer · Politecnico di Milano

I build Azure infrastructure with Terraform, Docker, Kubernetes and CI/CD pipelines. Six public projects that go from a single VM up to a full AKS GitOps platform, each one documented as I built it.

AZ-104
azure administrator associate
6
azure iac projects
L1→L6
vm to aks gitops
Milan/Varese
remote · hybrid
01 // about

Real cloud projects, built and documented in public.

I'm a Computer Engineering student at Politecnico di Milano. I work mainly with Azure, Terraform, Linux, networking and containers, and I care about keeping infrastructure clean and easy to follow.

I work in steps. The first project was a single VM. After that came segmented networks, private access and high availability. The most recent one is an AKS GitOps platform: a FastAPI service packaged with Helm, reconciled by Flux, secured with Workload Identity and shipped through OIDC pipelines. Each project adds something the previous one didn't have.

I'm preparing for AZ-104 and CCNA. I'd rather learn a service by deploying it than by reading about it, so I turn each topic into a small build and write down what broke, what worked, and what I'd change for production. That includes a single-node AKS rollout problem I had to debug and fix.

I'm early in my career and honest about that. This site is meant to show how I work: how I structure a project, and how fast I get from an idea to infrastructure that runs.

The pattern behind every project

// repeated, hardened, layer by layer
push
GitHub
source of truth, PR validation
auth
OIDC
federated, no stored secrets
gate
Checkov + Trivy
scan IaC, image & secrets
registry
ACR
image tagged by git SHA
provision
Terraform
layered remote state
run
AKS / Container Apps
Key Vault · observability

The same flow runs through the stack: Git drives the change, OIDC removes long-lived credentials, the scanners gate the merge, Terraform builds the platform, and the runtime pulls images and secrets through managed identity. Each project hardens one more part of it.

02 // the stack

Built one layer at a time.

Six Azure projects, in the order I built them. Each one takes on a new problem, from the first VM up to a Kubernetes GitOps platform, and gets a step closer to something I'd run in production.

6 deployed projects Terraform across all layers single VM AKS GitOps platform
L1
level 1 · foundation

Azure Terraform Linux VM

A first IaC deployment: one ARM64 Linux VM on Azure with custom networking, NSG rules, SSH-key access and automated Nginx provisioning via cloud-init.

+adds the baseline: resource groups, VNet, subnet, SSH access and a repeatable path from code to a running VM.

TerraformAzureLinuxcloud-initNSGNginx
view repository Terraform · Azure · cloud-init
L2
level 2 · core infrastructure

Secure Two-Tier Infrastructure

A segmented two-tier Azure environment with separate management and web subnets, subnet-scoped NSGs, a dedicated admin VM and automated provisioning across multiple VMs.

+adds subnet separation and controlled access paths, with multi-VM provisioning that keeps the code readable.

VNetSubnet designNSGMulti-VMcloud-initARM64
view repository VNet · NSG · Multi-VM
L3
level 3 · secure architecture

Secure Private Platform

Private-first infrastructure: no public VM IPs, Azure Bastion for admin access, Key Vault, Log Analytics and a modular Terraform structure with remote state.

+adds a private-by-default design, with Bastion for admin access, Key Vault for secrets and Log Analytics for logging.

Azure BastionKey VaultLog AnalyticsPrivate VNetRemote stateTF Modules
view repository Bastion · Key Vault · Log Analytics
L4
level 4 · production-oriented

Load Balanced Web Platform

A public Azure Load Balancer fronting two private ARM64 Ubuntu backends, with Bastion admin access, HTTP health probes, NSG security and cloud-init automation.

+adds the first high-availability pattern, using backend pools, health probes and traffic distribution.

Load BalancerBackend PoolHealth ProbesHigh AvailabilityBastionARM64
view repository Load Balancer · Health Probes · HA
L5
deep dive level 5 · devsecops platform

DevSecOps Container Platform

A FastAPI service running on Azure Container Apps, shipped through GitHub Actions. Terraform builds the Azure side in three separate stacks, OIDC replaces stored credentials, images land in ACR, and Checkov and Trivy check every change before a smoke-tested deploy.

+adds a full CI/CD pipeline with no stored credentials, supply-chain scanning, managed identity, and a deploy that gets verified instead of assumed.

DockerContainer AppsACRFastAPIGitHub ActionsOIDCManaged IdentityKey VaultApp InsightsCheckovTrivyPowerShell

// ci/cd pipeline

1open PR fmt, validate, docker build
2Checkov + Trivy scan IaC & image
3merge to main OIDC auth to Azure
4build + tag by git SHA push to ACR
5terraform apply three stacks
6update the Container App
smoke test /health /version 200 OK

// key decisions

  • + Two managed identities, one for runtime and one for deploy
  • + ACR admin user off, runtime gets AcrPull only
  • + Key Vault secret value stays out of Terraform state
  • + OIDC federation, no Azure client secret in GitHub
  • + Remote state on Azure Storage, modular stacks
view repository Container Apps · OIDC · Checkov · Trivy
L7
next layeron the roadmap

Private cluster & progressive delivery

Hardening toward a private AKS cluster, private endpoints for ACR & Key Vault, managed Prometheus / Grafana, policy enforcement (Kyverno / OPA Gatekeeper), Flux image automation and canary delivery. Tracked openly on GitHub.

03 // skills

The tools I use, and how far I've taken each.

Every item is tagged by how I've actually used it the core tools I lead with day-to-day, ones shipped in real projects, or foundational from my most recent work.

01

Cloud & Infrastructure as Code

// the foundation under every layer

Microsoft Azurecore
Terraformcore
Remote state · modulesshipped
Networking · VNet / NSG / LB / Bastionshipped
Bicep / ARM / JSONshipped
02

Containers & Kubernetes

// from a single image to GitOps

Docker · multi-archcore
Azure Container Appsshipped
Kubernetes / AKSfoundational
Helmfoundational
Flux v2 · GitOpsfoundational
03

CI/CD & DevSecOps

// every change validated before it ships

GitHub Actionscore
OIDC federated authshipped
Checkov · IaC scanningshipped
Trivy · image / secret scanshipped
pytest · smoke testsshipped
04

Identity & Security

// least privilege, no long-lived secrets

Managed Identitycore
Azure Key Vaultshipped
Azure RBACshipped
Workload Identityfoundational
Secrets Store CSI · NetworkPolicyfoundational
05

Observability

// know what the platform is doing

Log Analyticsshipped
Application Insightsshipped
Azure Monitor · OpenTelemetryshipped
kubectl / Flux / Helm diagnosticsfoundational
06

Linux, Languages & Scripting

// scripting and daily tooling

Git / GitHubcore
PowerShellshipped
Python · FastAPIcore
Linux · cloud-init / SSHcore
Bashshipped
core: what I lead with day-to-day shipped: used & documented in real projects foundational: built in my most recent work
04 // experience

Experience

Work I do alongside my studies. The focus is on clean records, accountability and reliable support.

Administrative & Accounting Support

Furizon APS · Third Sector / Non-profit
Since 2025

Ongoing administrative and accounting support for a non-profit in the events and community space. I look after records, invoices, member data, reconciliation and reporting, and keep the back office organised while I study engineering.

Accounting SupportData ReconciliationMember ManagementFinancial Reporting
05 // certifications

Certifications

Credentials and study tracks that line up with the projects I build in public.

AZ-900
Microsoft Azure Fundamentals
Microsoft
passed
AZ-104
Microsoft Azure Administrator
Microsoft
preparing
CCNA
Cisco Certified Network Associate
Cisco
preparing
06 // currently learning

Study tracks, tied to real builds.

What I'm working through now. Each topic connects to a project I'm building.

Azure Administration

AZ-104

Identity, governance, monitoring and day-to-day administration labs beyond the fundamentals.

Networking

CCNA

Routing, switching, VLANs, subnetting and troubleshooting, the foundation for real cloud network design.

Kubernetes Depth

applied

Beyond first AKS deploys: probes, rollout strategies, NetworkPolicy and debugging real cluster issues.

GitOps with Flux

applied

Reconciliation, HelmRelease, Kustomization and moving toward image automation and progressive delivery.

Terraform Best Practices

applied

Layered stacks, remote state, clean module boundaries and safer environment separation.

Platform Security

next

Private endpoints, policy enforcement (Kyverno / OPA), SBOM and image signing toward production hardening.

01

Working deployments

I deploy projects on real Azure and document them from setup to cleanup, including the destroy order, not just in a README.

02

Readable infrastructure

Naming, modules, state, diagrams and commit history matter, because the next person has to be able to read it.

03

Security as a habit

Identity, least privilege, private access and scanning come in early, even when the project is still small.

07 // contact

Open to junior cloud roles and good technical conversations.

Looking around Milan / Varese, remote or hybrid. Best fit: Junior Cloud Engineer, Junior DevOps, Junior System Administrator, a cloud internship, or Cloud Operations and monitoring-focused roles.

Milan / Varese · remote · Italian native · English C1 · French conversational · German & Russian learning