Odniesienia · Twoje notatki Evident, nie CV

Doświadczenie — co użyć na rozmowie

To nie jest lista zadań z daily. To mapowanie Twojej roboty w EvidentID na JD Pliant. Źródło: Daily Notes 2024–2026, weekly wrapy i raporty (Auth0 Terraform, Atlas, EKS). Gdzie coś jest planem, a nie shipem — jest tak nazwane.

Jak tego używać Weź cztery historie poniżej i ćwicz je na głos. Reszta winów to zaplecze, gdy panel dopyta. Nie recytuj stacku Azure+AWS. Recytuj decyzję, trade-off i wynik.

Czym się realnie zajmujesz

DevOps w EvidentID, mały zespół, szeroki ownership: design → Terraform/Ansible → CI → deploy → pager → support automation. To jest bliżej „platform + ops” niż „DevOps od ticketów” — ale ticket hell istnieje i sam go obcinasz skryptami.

WarstwaCo masz na produkcji (z notatek)
ComputeAzure AKS (dev/staging/prod) + AWS EC2 przez Ansible (submit-api, web-services, ap-*, sslproxy)
AWSRDS Postgres, S3, CloudFront, EFS, Lambda, VPC, IAM. State Terraform: S3 evident-terraform-states + DynamoDB evident-terraform-locks, us-west-2
IaCTerraform (AWS + Auth0), Ansible, Helm
CI/CDMigracja Jenkins → GitHub Actions; shared repo evidentid/actions (define-variables, helm-deploy)
IdentityAuth0 w Terraform, SSO klientów (m.in. Amazon OIDC)
Data / kolejkiMongoDB Atlas, CloudAMQP/RabbitMQ, Redis
K8sEmissary, nginx-ingress, KEDA, cert-manager, kube-prometheus-stack. Prod: AKS 1.33.3
ObservabilityPrometheus, Logz.io, Sentry→JIRA, CloudAMQP alerts, CloudWatch — nie Datadog
Pythoneid-support-automation, automation-hub, data pulls, cleanup Atlas
ComplianceDRATA / SOC2 (failed tests, Annual Access Review GIS-390). PCI nie występuje w notatkach

Mapa JD Pliant → Twoje evidence

Punkt JDCo mówiszSiła
Terraform modules, state, driftMigracja providera Auth0 (DEVOPS-4975) przez 6 tenantów do prod. State repair, import, guardrail na error_page/sso. Backend S3+Dynamo.Mocne. To jest Twoja horror story.
GitHub Actions at scaleShared actions, reusable workflow_call, migracje repo (ap-insurance, evidentid-web, eid-notifications, cron-jobs…). Workaround AWS deploy z GHA (2026-05-28).Mocne. OIDC do AWS — luka, nie udawaj.
Kubernetes / ECS→EKSProd K8s na AKS, upgrade do 1.33.3, node pools staging/dev. Plan EKS+multi-account napisany (2026-07-24), execution nie wystartował. ECS nie masz — analogia: EC2/Ansible pets → EKS + AKS → EKS.Ops mocne, migracja EKS = projekt. Mów wprost.
AWS VPC, IAM, RDS, LambdaPeering prod→Atlas mimo kolizji CIDR. RDS snapshot restore. Lambda CSP headers. IAM/DRATA unused keys. Konto dziś praktycznie jedno — Organizations w planie.Dobre. Multi-account PCI = design, nie prod.
Observability + on-callP0 Acuant, P0 RabbitMQ disk, P1 submitapi, Sentry→JIRA, alert reminder CloudAMQP. Nie ma formalnej rotacji — jesteś pagerem zespołu.Mocne historie, słaby formalizm SLO.
Python toolingautomation-hub na prod, data_pull ×5 szybciej (DEVOPS-4672), duplicates (wayfair/trustedhouse), Mongo cleanup.Mocne. Go — nie claimuj.
PCI / SOC2 / self-service IAMSOC2/DRATA i access review — tak. PCI — nie. Self-service: automation-hub zamiast ticketów Support, nie IAM portal.SOC2 analogia; PCI ucz się z lekcji.
AI dailyRaporty Auth0/Atlas/EKS pisane z Claude, runbooki, analiza. To jest w Twoim workflow.Pasuje do JD. Guardrails PCI — zaprojektuj, nie zmyślaj że masz.
Spacelift / Roles AnywhereBrak. Analogia: gated replay skryptów Auth0 + S3 lock. Roles Anywhere: „nie używałem, znam problem, zaprojektowałbym tak”.Dorosła luka.

Win-y, które sprzedajesz

Kolejność na rozmowie: 1–4 to rdzeń. 5–8 gdy dopytają. Reszta nie wchodzi do pitchu.

Win 1 · Terraform · DEVOPS-4975 / 5003

Migracja providera Auth0 do prod

29 lipca 2026 zwykły terraform apply padł: Auth0 usunęło enabled_clients z API, stary provider alexkappa/auth0 0.26.2 wysyłał je bezwarunkowo. Poprzednia próba DEVOPS-3637 była porzucona. Zaprojektowałeś fazy, runbook, idempotentne skrypty, naprawę stanu. Domknąłeś dev → int → staging → demo → prod (prod 12 sierpnia, DEVOPS-5003). Na int: 19 imported, 0 added, 3 changed, 0 destroyed, plan No changes. Guardrail: Terraform chciał skasować error_page i sso, bo pole nie było w module — pin + hard gate zamiast „apply i zobaczymy”.

Na głos w Pliant: „Zepsuty state / drift w shared module — to właśnie to. 6 tenantów, jeden kontrakt, zero destroy na prod.”

Win 2 · CI/CD

Jenkins → GitHub Actions + shared actions

Od czerwca 2025 budujesz repo evidentid/actions (define-variables, helm-deploy z extra_helm_args). Migracje m.in. ap-insurance (success workflow, sprint XI 2025), evidentid-web, evidentid-py, eid-k8s-cron-jobs, ap-boating, ap-certification, eid-notifications (lipiec 2026). Workaround AWS deploy z GHA przetestowany 28 maja 2026. Jenkins sunset w toku (~145h remaining, luty 2026) — nie mów, że Jenkins nie żyje.

Luka vs JD: w snippetach wciąż widać aws-access-key-id w secrets. OIDC do AWS to zdanie „tu bym zaczął u Was”, nie „już tak robię”.

Win 3 · On-call

Dwa P0, które domknąłeś sam

Acuant, 10 czerwca 2026. Vendor zmienił format odpowiedzi, ID verification padło. Fix w eid-acuant-client, release ap-images-preprocessing v0.3.4 i ap-idverify v1.5.6, promocja int → staging → prod. Wrap: production restored, no lingering fallout.

RabbitMQ, 1 czerwca 2026. Dysk CloudAMQP pełny, kolejka FAILURES ~2 GB. Purge, restart, DBET catchup na oknie 04:30–13:00 UTC. Potem: reminder interval 1h na alertach dysku (wcześniej cicho po pierwszym strzale), swap 4 GB + vm.swappiness=10 na rpweb OOM, reboot instancji insurance przy Redis BusyLoading.

Na rozmowie weź Acuant jako czysty E2E, RabbitMQ gdy zapytają o observability/guardrail po incydencie.

Win 4 · AWS networking + FinOps

Peering Atlas i program kosztu Mongo

Tydzień 13 lipca: prywatny VPC peering AWS prod (vpc-prodcred) → Atlas. Kolizja CIDR z vpc-svcs — nowy subnet, NIC, route tables, cutover. Timeouty po cutoverze naprawione 17 lipca.

28 lipca: rachunek Atlas $13 891.68 / mies (czerwiec), produkcja 87%. Indeksy wstawione (CPU = główny driver M50↔M80). Decyzja: klaster zostaje na AWS, nie migrujemy Atlas na Azure. Potencjał $7–11k/mies z analizy — nie cytuj jako zaoszczędzone. Cleanup/retention zablokowane na decyzję legal/product.

Win 5–8 · zaplecze

Gdy dopytają

  • Automation-hub na prod (21–24 lipca): executable → Job z UI, Support zamyka tickety bez Ciebie. Self-service, ticket volume. Multi-env jeszcze prod-only.
  • COI re-extraction (tydzień 13 lipca): Docker image −60%, release prod, handover. Python + ship pod interrupt load.
  • data_pull ×5 (25 lutego, DEVOPS-4672): skrypty z laptopa na prod-prodcred-insurance, README w eid-support-automation.
  • AKS prod 1.33.3 (listopad 2025) + nowe node pools Staging-01 i Development-02 (21 kwietnia 2026). Upgrade 1.33→1.34 = plan, nie win.
  • SOC2/DRATA (marzec 2026): Annual Access Review, evidence w DRATA, GIS-390. Analogia compliance, nie PCI.

Cztery historie STAR — gotowe do nagrania

Format z raportu: sytuacja → Twój call → trade-off → wynik. Ownership language.

1. Terraform horror (Auth0)

Sytuacja. 29 lipca apply w auth0/terraform/dev — 400 na connectionach, enabled_clients wyrzucone z API. Stary provider, 6 tenantów, porzucona próba z 2024.

Twój call. Nie big-bang. Fazy: TF 1.5.7, oficjalny provider, import rodzin, weryfikacja z Management API nie z planu. Tenant po tenancie. Runbook + skrypt idempotentny z CONFIRM=yes.

Trade-off. Na int niezadeklarowane pole = Terraform chce usunąć error_page i sso. Dodałem pin w module i hard gate zamiast iść dalej. Wolniejszy rollout, zero destroy na prod.

Wynik. Dev/int No changes. Prod 12 sierpnia, DEVOPS-5003. 19 importów na int, 0 destroy.

Most do Pliant. „U Was shared module dla 20 teamów. Znam drift i state, który kłamie po zmianie API. Guardrail w kodzie, nie w pamięci.”

2. CI/CD, który skalował (GHA)

Sytuacja. Flota na Jenkins. Każde repo z własnym snowflake’iem. Potrzeba wspólnego kontraktu.

Twój call. Repo evidentid/actions: define-variables, helm-deploy. Migracja repo po repo, nie big-bang wyłączenia Jenkinsa. Reusable workflow_call.

Trade-off. Jenkins zostaje, dopóki sunset nie zejdzie do zera (~145h w lutym 2026). Nie udaję, że CI jest „już tylko GHA”.

Wynik. Kluczowe serwisy na GHA (ap-insurance success workflow XI 2025, dalej cron-jobs, notifications, web). Shared helm-deploy z extra args.

Most. „JD: 20+ Java/Kotlin. Znam reusable workflow i cache, który kłamie. OIDC do AWS u Was bym wstawił w Q1 — dziś część jobów jeszcze na kluczach.”

3. Incydent (Acuant P0)

Sytuacja. 10 czerwca Acuant zmienia response. ID verification na prod leży.

Twój call. Diagnoza w kliencie, nie w infra. Cut release dwóch serwisów, promocja int→staging→prod tego samego dnia.

Trade-off. COI automation (plan tygodnia) spada. Wrap to przyznaje. Nie heroics o 3:00 — sequential roll.

Wynik. Prod restored. v0.3.4 / v1.5.6. Brak lingering fallout.

System po. Jeśli dopytają: RabbitMQ — dodałem reminder na dysk, bo alert był jednorazowy. To jest guardrail, nie „byłem dostępny”.

4. Powiedziałeś „nie” (Atlas na Azure)

Sytuacja. Atlas ~$14k/mies, egress Azure AKS ↔ Atlas AWS ~$3k płaskiego ruchu. Pokusa: przenieść bazę do Azure.

Twój call. 28 lipca: klaster zostaje na AWS. Atakujemy bajty (indeksy, peering, retencja), nie migrację 2 TB. Wcześniej nie forsowałem złego peeringu przy kolizji CIDR — najpierw nowy subnet.

Trade-off. Nie obiecuję $7–11k, dopóki legal nie puści retencji. Indexes i peering idą bez tej decyzji.

Wynik. Indeksy live, peering prod live. Program z sekwencją. EKS/single-cloud jako właściwa odpowiedź na egress — nie pochopna migracja bazy.

Most. „Product chce wyjątek IAM na już / przenieść CDE. Wyjątek bez expiry to nowy baseline. Tu analogicznie: nie ruszam 2 TB, żeby ukryć złe zapytanie.”

Pitch 60 sekund

W EvidentID biorę platformę end-to-end: AKS + AWS (EC2/Ansible, RDS, S3),
Terraform ze state w S3/Dynamo, Auth0, Atlas, RabbitMQ, GHA.

Ostatnio przeprowadziłem migrację Terraform Auth0 z porzuconego
providera na oficjalny 1.53 przez wszystkie tenanty do prod —
z importem, runbookiem i guardrailem, bo plan chciał skasować error_page.

Po AWS: prywatny peering prod→Atlas mimo kolizji CIDR.
CI: Jenkins→GitHub Actions i shared actions.
Pager: P0 Acuant z fixem i releasem do prod tego samego dnia.

Zaprojektowałem multi-account + EKS — execution dopiero startuje.
Prod Kubernetes mam na AKS 1.33, nie na EKS. ECS nie używałem:
analogia to EC2 pets i AKS → EKS.

U Was w Q1 chcę wziąć domain CI albo Terraform modules —
bo to już owned, a PCI/EKS umiem zaplanować bez kłamania
że już je miałem na prod.

Jak odpowiadać na ich pytania Twoimi faktami

Pytanie z raportuTwoja kotwica
AWS account + network + PCIRysujesz wzorzec z lekcji. Dowód z życia: jedno konto dziś, plan Organizations + nonprod (lipiec 2026), peering i kolizja CIDR. PCI: „nie miałem CDE, SOC2/DRATA tak — segmentację konta znam z whitepapera i z tego designu”.
Reusable Terraform module dla 20 teamówAuth0 module + pin wersji + guardrail pól. Shared helm-deploy analogia po stronie CI.
Pipeline pada na jednym serwisie w matrixie21 kwietnia: ap-insurance GHA, ci.sh stuck / zła wersja — refactor workflow. Cache/Python deps. To jest Twoja kolejka diagnostyczna.
Migracja 20 serwisów ECS→EKS„ECS nie mam. Pets na EC2 i ~19 workloadów na AKS. Plan: Phase 0 puste EKS, Phase 1 EC2→EKS (cięższe), Phase 2 AKS lift-and-shift. Factory Helm, ten sam obraz, weighted cutover. Execution nie wystartował — Jim miał zacząć, 3 sierpnia still not done. Umiem obronić plan, nie kłamię że zrobione.”
Wyjątek IAM „na już”Atlas-na-Azure + Auth0 error_page gate + automation-hub zamiast ręcznego skryptu na prod. „Daję time-bound albo feature w module.”
SLO na CI i APINie masz spisanych SLO. Mów rząd z lekcji i: „dziś budzę się na P0/P1 i na dysk kolejki, nie na CPU 80%. U Was wstawiłbym burn rate na auth path i na infra CI.”
Najgorszy incydentAcuant albo RabbitMQ — patrz STAR 3. Puenta systemowa, nie heroics.

Czego nie claimować

Stop — to wyjdzie na whiteboardzie
  • „Zmigrowałem nas na EKS / multi-account” — plan 24 lipca, execution slipped, 3 sierpnia Jim miał zacząć.
  • „Upgrade AKS do 1.34” — tylko plan.
  • „Zaoszczędziłem 7–11 tys. dolarów miesięcznie na Mongo” — potencjał z analizy; indexes i peering tak, cleanup nie.
  • „Wyłączyłem Jenkins” — sunset w toku.
  • „Zastąpiłem nginx-ingress Traefikiem” — research + upgrade cert-manager/nginx, migracja kontrolera nie shipped.
  • PCI, Spacelift, ECS, Datadog, Kafka, Go Lambdy, Roles Anywhere — brak w notatkach.
  • Peering Azure↔Atlas jako zrobiony — shipped jest peering AWS prod.
Źródło tej strony Daily Notes EvidentID (2024-05 → 2026-08), weekly wrapy czerwca–lipca 2026, raporty Auth0 Terraform, Mongo Atlas, AWS EKS design (2026-07-24), AKS 1.33→1.34 plan, sprint review 2025-11-20 (GHA). Nic tu nie jest z CV — tylko z Twoich notatek. Jeśli liczba nie pada w nocie, nie ma jej w tekście.