Fabrizio De Cicco Résumé (PDF)

Fabrizio De Cicco

I run the cloud infrastructure behind 50,000+ connected devices — and build the AI tooling that helps ship it.

Infrastructure Architect at Culligan International · Azure, Kubernetes, Terraform, Datadog · Turin, Italy — open to remote

  • devices · prod50,000+
  • scaling to~300,000
  • years infra10+
  • certifiedCKA · LFCS · AZ‑104 · AZ‑400
fabrizio@infra: ~ — zsh connected
// selected work · sheet 02/07

Multi-agent engineering assistant

A multi-agent AI system that helps a platform team review, test, ship, and operate software with more consistency and less toil — adopted across the lead engineering team.

High-level architecture, drawn as built — tap any block

control

↓ dispatches to specialists

specialist agents

↑ all built on a shared foundation

shared

↕ connected to the toolchain via MCP

integrations · MCP

Source & PRsIssuesCI/CD Code qualityObservabilityChat
projectengineering-assistant
roledesign & build
built withClaude Code · MCP · TS
scale7 agents · 50 skills
statusin daily use

Each agent owns one workflow and carries only the context it needs — organised by workflow, not by role.

engineering-assistant — review
$ review --pr 1487
→ orchestrator fans out specialists in parallel
 code review — standards + pipeline impact
 qa — branch checkout + tests
 release — promotion readiness
 reliability — SLOs + incident signals
 verify — 2 findings confirmed, 1 refuted
 review ready — 0 blocking, 2 suggestions

Problem

Across a growing set of repositories, code review, QA, release coordination, and reliability monitoring were largely manual — slow to perform, hard to keep consistent, and a constant pull on senior engineers' time.

Approach

I designed and built a set of specialist AI agents in Claude Code, each owning a single workflow and sharing a common library of reusable skills. The orchestrator composes them into dynamic workflows that fan work out in parallel and adversarially verify findings before anything is surfaced. They integrate with the team's existing toolchain through MCP, sit behind safety guardrails that gate anything destructive, and the read-only ones run as scheduled loops that catch drift and post a summary — never acting unattended. The newest layer points the other way — hooks and skills that sharpen the engineer's side of the loop: reframing vague prompts at session start, surfacing blindspots before unfamiliar work, and quizzing the author on their own change before it ships.

four decisions that shaped it
  • Organise agents by workflow, not by role — so each carries only the context it needs.
  • Push shared conventions into a skills layer — so knowledge isn't duplicated across agents.
  • Make orchestration a workflow, not a script — fan out, verify, then synthesize.
  • Tier model capability by stage, like infrastructure — cheap executors for mechanical work, a top-tier advisor consulted on demand, and security-critical stages pinned so no cost tier can downgrade them.

Outcome

Rolled out to the lead engineering team and in daily use — seven specialist agents sharing a 50-skill library, behind guardrails that gate anything destructive. Review quality has visibly improved and developer feedback has been consistently positive; the next iteration adds the numbers I want to manage it by — cycle time and defect leakage — because adoption should be measured, not assumed.

The fan-out, quantified

Modeled as a two-phase workflow: fan out → adversarially verify.

Best speedup 8.0× vs running them one after another

The cap — not the count — sets the wall-clock; a pipeline skips the barrier's idle wave.

// how I build · sheet 03/07

How I build

Six positions I'll defend about building and scaling a platform — opinionated on purpose.

platform baseline

Ship identity, updates, and observability before a single feature.

For connected products, the platform's job is to keep a fleet secure, updatable, and visible — not to ship features on day one. Device identity, over-the-air update, and end-to-end telemetry are the load-bearing walls; bolt them on later and you're rebuilding the foundation under a live fleet.

first moveidentity + OTA + telemetry pipeline, before product features.
standardization

Pick the boring defaults before the team is big enough to argue.

The cheapest time to standardize IaC modules, secret management, pipelines, and an SLO convention is at two repos, not twenty. Every week you wait, divergence compounds and migration turns political. Standardization isn't bureaucracy — it's the paved road that lets people stop reinventing plumbing.

first movea Terraform module library + one pipeline template + one observability convention.
kubernetes

Don't run Kubernetes until the problem is Kubernetes-shaped.

AKS is right when you have many services, real scaling needs, and a team that can own the operational surface. For a handful of services it's a tax — managed container platforms ship the same outcome with a fraction of the ops. Complexity should be earned by load, not adopted for the résumé.

first movejustify the cluster against service count and on-call capacity.
reliability vs cost

An SLO is a budget — spend it, don't gold-plate.

Chasing more nines than users actually feel just burns money and engineering time. Define the SLO from real user experience, then spend the error budget: ship faster while it's healthy, slow down and harden when it's not. Reliability and cost aren't opposites — the error budget is the dial that trades them on purpose.

first moveset SLOs from user-felt signals, then let the budget drive pace.
AI in delivery

Let agents propose; never let them push unattended.

AI agents are a force-multiplier on review, QA, and release prep — but anything destructive stays behind a human gate and a guardrail. Compose them into workflows that fan out and self-verify, give them a shared skills layer so conventions don't drift, and run the read-only ones on a schedule so problems surface on their own. The win is consistency and removed toil, not autonomy for its own sake.

first moveagents behind guardrails, gated on anything irreversible.
leadership

If the team can't ship without me, I've failed.

A lead who hoards context becomes the bottleneck: the team stalls whenever they're unavailable, and burnout follows. My job is to make myself progressively unnecessary — mentor, document, pave the road — so the team moves faster than any one person could.

first movewrite it down, hand it over, and stay off the critical path.
// experience · sheet 04/07

Where I've built things

  • Infrastructure Architect (prev. DevOps Engineer)

    Jul 2023 — present
    Culligan InternationalMilan · IoT · water
    • Lead IoT infrastructure architecture & reliability for the Culligan IoT Platform.
    • Own end-to-end infra design & operations — scalability, security, cost.
    • Mentor the DevOps/SRE team; evolve CI/CD, IaC & Datadog across global IoT.
  • DevOps Engineer

    Mar 2022 — Jul 2023
    MSC Mediterranean ShippingTurin · containers · scale
    • Built & maintained scalable CI/CD pipelines on Azure DevOps (YAML).
    • Automated provisioning with Ansible, Bicep & Rundeck — less manual config.
    • Stood up observability & logging with Datadog for faster detection.
  • Support Supervisor → Software Engineer

    Aug 2015 — Mar 2022
    DeltatreTurin · sports · real-time
    • Supervised a 12-person application support team.
    • Built backend & web apps (C#, SQL, ASP.NET, Angular) — Agile / TDD.
    • Kept microservices highly available on Azure with Docker & Kubernetes.
// the lab · sheet 05/07

The lab

Templates I actually use — de-identified and free to take — plus the number behind every "we need more nines" conversation.

Engineering artifacts

adr-template.md a decision, its context, and the trade-offs — so future-you knows why. Download
slo-definition.md SLI, target, error budget, and the burn-rate alerts that back it. Download
incident-review.md blameless postmortem: timeline, impact, root cause, actions with owners. Download
terraform-module-checklist.md the production-readiness gate before a module joins the paved road. Download
skill-template.md a Claude Code skill scaffold — trigger description, progressive disclosure, guardrails. Download

Each is a real .md in the /lab folder of this site's repo.

adr-template.md markdown · template

        

Error-budget calculator

Pick an availability target and see how much downtime it actually buys you.

%
Error budget 0.100% of the time you're allowed to be down
per day
1.44 min
per week
10.1 min
per month
43.2 min
per quarter
2.16 h
per year
8.76 h
// skills · sheet 06/07

Skills & certifications

Cloud & containers

Azure · AKS · Container Apps · Kubernetes · Docker · Helm

IoT & messaging

IoT Hub · Event Hub · MQTT · CoAP · LWM2M · device identity · OTA

IaC & CI/CD

Terraform · Terragrunt · Bicep · Ansible · Azure DevOps · YAML pipelines

Observability & SRE

Datadog · Grafana · Prometheus · SLOs · error budgets · incident response

AI-assisted delivery

Claude Code · MCP · multi-agent orchestration · model tiering · TypeScript

Certifications

CKA Certified Kubernetes Administrator (2022) · LFCS Linux Foundation Certified Sysadmin (2023) · AZ-104 Azure Administrator (2023) · AZ-400 DevOps Solutions (2023)

// contact · sheet 07/07

Let's build something reliable.

Architecture, platform reliability, or AI-assisted delivery — if any of that is on your plate, I'm happy to talk.

based in Turin, Italy · open to remote