Marcin Mozolewski — Senior Cloud Platform Engineer

Profile

guest@mozolewski.eu~/whoami
[ OK ] Mounted /home/marcin
guest@mozolewski.eu:~$neofetch
marcin@mozolewski
I build the layer other engineers build on.
RoleSenior Cloud Platform Engineer HostProcter & Gamble Uptimecommercial since 2021 · five years self-taught before that KernelCloud · Terraform · Kubernetes · Computing · Optimization · AI ShellPython · Rust · Go · HCL · SQL Providersdaily: google-cloudworked with: azure · aws · oci · ibm-cloud · alibaba-cloud · digitalocean · cloudflare LocationWarsaw, Poland LanguagesPolish (native) · English (professional) Off-clockopen source · OSINT · sailing · iceboating · brain teasers Contactcontact@mozolewski.eu
clouds[]1 of 8 in daily use certs[]{{ certGauge }}

Selected work

guest@mozolewski.eu~/work
[ OK ] Started work.target — the three most recent
guest@mozolewski.eu:~/work$head sys-0*.md
==> sys-01.md <==
# A network foundation shared by two clouds and a data center
Every team solved connectivity in its own way, and there was no highly available path between Google Cloud, on-premises and a second public cloud.
I helped design and build a redundant interconnect foundation with geo-redundant failover, and a pattern that lets spoke networks attach to it without one-off engineering. It is in production with disaster recovery in a second region, engineered for 20 Gbps against a four-nines target, and the first applications are running over it — about 25% better than the path they left.
result: in production · DR in a second region · 20 Gbps, four nines by design · ~25% better on the traffic moved
tags: cloud-interconnect cloud-router vpc terraform
==> sys-02.md <==
# Egress policy that runs inside the request, not beside it
Traffic arriving over Private Service Connect carries nothing that identifies the consumer behind it, so egress policy cannot be enforced per consumer — and no managed service offered it at the time, which I established before building anything.
I built a control plane that resolves each connection's consumer and decides allow or deny in-process inside the proxy, fail-closed, with no network round trip on the decision path. It runs across two regions and is operated hands-off through GitOps. Other teams adopt it through a Terraform provider I wrote.
result: two regions · fail-closed · no network round trip on the decision path
tags: envoy rust-wasm go postgresql kubernetes flux
==> sys-03.md <==
# One path for every new project
New projects, their Terraform workspaces and their infrastructure repositories were created ad hoc, with no consistent model to inherit.
I designed the automated path they all take now — creation, labeling, perimeter placement, identity federation, multi-environment support — and the API in front of it. Since 2026 it is the only way a new project is created, not one route among several, and hundreds of applications have been provisioned on one uniform model.
result: every new project since 2026 · hundreds of applications on one uniform model
tags: terraform terraform-cloud google-cloud open-policy-agent

Career

guest@mozolewski.eu~/career
[ OK ] Replayed career/ — 5 commits
guest@mozolewski.eu:~$git log --graph career/
*
2024-10 — now10/24—now
Senior Cloud Platform Engineer — Procter & Gamble (HEAD -> main)
cloud network and platform architecture, egress security, policy as code, cost optimization; mentoring the engineers who build on it
*
2023-05 — 2024-0905/23—09/24
Cloud Platform Engineer — Procter & Gamble
terraform modules and blueprints for the platform; VPC, DNS and folder standardization; the first version of the provisioning path
*
2021-07 — 2023-0407/21—04/23
Junior Cloud Developer — PKO BP Finat
Google Cloud infrastructure provisioning
*
2019-08 — 2019-0908/19—09/19
Java Developer (intern) — eService
Java and Spring Boot
*
2017 — 20222017—2022
MSc Eng & BEng, Computer Science — Warsaw University of Technology (root)
Faculty of Electronics and Information Technology

Stack

guest@mozolewski.eu~/stack
[ OK ] Loaded stack.modules
guest@mozolewski.eu:~$tree ~/stack -L 2
~/stack
  • workload/
    • kubernetes
    • docker
    • envoy
  • platform/
    • terraform
    • terraform-cloud
    • open-policy-agent
    • flux
    • github-actions
  • observability/
    • managed-prometheus
    • cloud-trace
  • providers/
    • google-cloud daily
    • azure
    • aws
    • oci
    • ibm-cloud
    • alibaba-cloud
    • digitalocean
    • cloudflare
  • constants/
    • linux
    • git
5 directories, 20 files

Certifications

guest@mozolewski.eu~/certs
[ OK ] {{ certOk }}
guest@mozolewski.eu:~/certs$ls -l
{{ certTotal }}
-rw-r--r--1 marcin{{ c.issued }}{{ c.name }}{{ c.name }} {{ c.note }}
verify: each name links to its own badge — except the microsoft-* entries, which are held on Microsoft Learn. profile: credly.com/users/marcin-mozolewski

What this page can see about you

guest@mozolewski.eu~/visitor
[ OK ] Read local environment
guest@mozolewski.eu:~$whois $REMOTE_ADDR
# every site can do this without asking. this one asks. what happens to it
{{ vNote }}
read from your browser timezone{{ vTz }} browser{{ vClient }}
read from ipapi.co / ipwho.is ip{{ vIp }} city{{ vCity }} network{{ vNet }}
the map is drawn from openstreetmap.org
once you run the lookup
no tiles requested yet
openstreetmap tiles · approximate
location unavailable — no coordinates to plot

Contact

guest@mozolewski.eu~/contact
[ OK ] Listening on mailto:contact@mozolewski.eu
guest@mozolewski.eu:~$cat contact.txt
# write in English or Polish, whichever is easier.
locationWarsaw, Poland
languagesPolish (native) · English (professional)

Interactive shell

bash — interactive try: help · ls · cd work · sudo hire marcin
# this prompt works. up recalls, tab completes, help lists everything.
guest@mozolewski.eu:~${{ h.cmd }}
{{ h.out }}
{{ h.out }}
guest@mozolewski.eu:~$