1. 1Detect · 04:20
  2. 2Triage · 05:07
  3. 3Respond · 06:06
  4. 4Hand off · 08:00
  5. 5Learn · 14:28
UTC 00:00KST 09:00CET 02:00ET 20:00

Jinsoo Yang · Site Reliability Engineer · Open to remote and overseas roles

I make incident response work the same no matter who is on call.

What gets me paged becomes something nobody gets paged for: runbooks, tuned alerts, and SLOs with error budgets, all written down.

01

Six problems I kept running into on call

Select a solution to see how it works.

Where I ran into them

  • 5 yrsArmy Officer in charge of network support for military operations and a 24-hour surveillance network, in a country under armistice
  • 24/7/365IBM Supported a global SOC run around the clock by teams across time zones
  1. ProblemFollow-the-sun teams need two clocks in sync: the service's, and every office's.What I builtEverything in UTC, with each team's local time and offset on top.

    How it works

    • Every timestamp is stored and shown in UTC.
    • The top strip turns it into each region's local time and offset, marks the viewer's region, and counts down the current shift.
    • Shifts are defined in one file (APAC 00–08, EU 08–16, US 16–24 UTC).
    See it in the console: Hand off ↓
  2. ProblemCustom detection rules and metrics go stale, lose their history, and nobody knows which are still used.What I builtA Git repository as the single source of truth: edits open a PR from the console, and every metric shows where it is used.

    How it works

    • Alert rules, SLO rules and runbooks live in a Git repository. Edits in the console open a pull request, and apply after review, merge and the GitOps sync.
    • CI checks that every alert has a runbook (53 of 53).
    • The metric inventory reads metric names from every rule and dashboard, and marks each metric as in use, unused, or broken (referenced but not collected).
    See it in the console: Detect ↓
  3. ProblemWhen the on-call person changes, so does the quality of the response.What I builtRunbooks for every alert, and a Kagent-based AI agent that briefs the situation and the next steps.

    How it works

    • When an incident is declared, the agent reads the incident, its runbooks and live metrics.
    • It writes a briefing: situation, impact, likely cause with confidence, a severity suggestion, and next steps tied to runbook steps, each with a query to run in place.
    • Changes run only after the incident commander approves; the agent can't change the cluster itself. Kagent in the lab, the same tools built in for the public demo.
    See it in the console: Respond ↓
  4. ProblemHandoff quality varies, and the next shift ends up calling the last one.What I builtA fixed handoff format that the incoming shift acknowledges.

    How it works

    • The outgoing shift in one view: each incident's states on a timeline, plus alerts, deploys and changes.
    • What got worse and by how much, and a card per open incident with its next step and a note.
    • Written → handed over → acknowledged by the incoming shift.
    See it in the console: Hand off ↓
  5. ProblemIt's hard to see a service's state at a glance.What I builtEach service with its resources and current state, colour-coded.

    How it works

    • One topology file defines every component and link.
    • The map colours each one by state. Selecting one shows why, and what breaks downstream.
    • A banner shows whether alerts are arriving at all.
    See it in the console: Detect ↓
  6. ProblemIncidents and alerts arrive at the same time.What I builtA priority score that suggests what to handle first, and correlated alerts merged into one incident.

    How it works

    • Each alert is mapped to a component. It joins an open incident that has an alert firing on the same or a directly linked component; otherwise it starts a new candidate.
    • Probable cause: the member the others depend on.
    • Score = SLO budget at risk + downstream impact + age + trend, with the breakdown one click away. The incident commander can merge candidates by hand.
    See it in the console: Triage ↓

Built on real infrastructure

Built against a live L1 and L2 rollup I run on Kubernetes: their alerts, metrics and postmortems are what the console reads. See the nodes ↓

  • L1BesuTeku
  • L2sequencercoordinatorproverbridgeRPC

02

One incident, five stages

Set on one real day in my L2 lab: three shifts, one operator. Times in UTC; screenshots use the console's sample data.

  1. Problem

    Nobody knows which rules are still used.

    3,378 of 3,478 metrics unused

    Solution

    Git as the single source of truth, changed by PR, usage tracked.

    AI SRE Ops · DetectionOpen this page ↗
    Detection management: rules in Git, and a metric inventory of 3,478 metrics, 100 in use, 3,378 unused.

    Problem

    Running is not the same as working.

    47 min before anyone saw it

    Solution

    Every service on one map, coloured by its real state. Select one for why, its runbook, and its pods.

    AI SRE Ops · InfrastructureOpen this page ↗
    Infrastructure map with the traffic component selected: it is at risk, and the side panel shows why (a firing alert), its runbook, its pods with CPU and memory, and its connections.
  2. Problem

    Alerts fire all at once. Which one first?

    3 incidents · 2 hours · 1 on-call

    Solution

    One queue, ranked by a score you can read. Related alerts merge.

    AI SRE Ops · OverviewOpen this page ↗
    Overview: the incident queue ranked by score next to error budgets per SLO.

    Problem

    Mid-incident, nobody can tell where it stands.

    49 min from the alert to a human looking

    Solution

    One page per incident: its lifecycle state, time open, checklist, next update due, paging, and an AI summary on top.

    AI SRE Ops · IncidentOpen this page ↗
    Incident page: SEV2, mitigated, the lifecycle from detected to closed, time open, alerts, checklist, an overdue next update, paging acknowledged, an AI summary, the priority score and paging history.
  3. Problem

    The fix depends on who is on shift.

    1,125 crashes of the repair path

    Solution

    An AI briefing that follows the runbook.

    AI SRE Ops · IncidentOpen this page ↗
    Incident response: an AI briefing with situation, impact, cause and next steps tied to runbook steps.
  4. Problem

    Every team reads the clock differently.

    3 shifts · 4 time zones

    Solution

    UTC everywhere, local time on top.

    Problem

    Handoffs end in a phone call.

    3 h 14 min outage across a shift change

    Solution

    A fixed handoff format, acknowledged by the next shift.

    AI SRE Ops · HandoffOpen this page ↗
    Shift handoff: the clock strip in UTC and local time, handoff steps, shift counts and a timeline of the shift.12
  5. Problem

    Root causes get lost across separate write-ups.

    6 of 16 postmortems: alerts that reached no one

    Solution

    Every postmortem in one view for RCA: what keeps coming back, follow-ups done, how often, and each write-up's causes and action progress.

    AI SRE Ops · PostmortemsOpen this page ↗
    Postmortems dashboard: contributing factors across 16 postmortems led by alerts not reaching a person (6), action items 56% done, postmortems per day by severity, and postmortem cards with their causes and action progress.

The operator

Jinsoo Yang

Site reliability and security engineer. I run blockchain nodes on Kubernetes and the cloud, put them behind alerts and SLOs, and write down what breaks.

Nodes I run

L2 rollup

Lineth L2

Local L1 (Besu, Teku) and an L2 rollup · One Kubernetes node (kind), GitOps

Sequencer, coordinator, prover, bridge, RPC; SLOs, alerts and postmortems

All 14 posts →
Also runningHoodi validator (local) · Hoodi validator (AWS, earlier build) · LND (local)
  • Running · Local

    Hoodi validator

    Kubernetes on WSL

    • Besu
    • Teku
    • Web3Signer
    • Grafana
  • Earlier build · AWS

    Hoodi validator

    Private EKS

    • Nethermind
    • Prysm
    • Web3Signer
    • Vault
    • Kyverno
    • Validator 1559065 went active; attestations included on chain
    • Revoking the signer's Vault role stopped signing at once
    • Admission blocked a sidecar image pinned by tag, not digest
  • Running · Local

    LND

    Bitcoin testnet4 · systemd and Kubernetes

    • bitcoind
    • LND
    • lndmon
    • Prometheus
    • Same identity, channels, and backups after Pod replacement and Helm upgrade
    • Relayed a test payment through the node

Experience

  1. 2018Republic of Korea ArmySignal Officer (Lieutenant), Network Platoon LeaderMar 2018 – Dec 2021
  2. 2021Republic of Korea ArmySignal Officer (Captain), Corps CERTDec 2021 – Mar 2023
  3. 2023KITRI Best of the Best (BoB) 12thVulnerability Analysis TrackJun 2023 – Feb 2024
  4. 2024Deloitte Consulting KoreaSr. Security ConsultantMar 2024 – Nov 2024
  5. 2024IBM Consulting KoreaCybersecurity ConsultantNov 2024 – Sep 2026

Credentials · 12 certifications

Kubernetes
  • Kubestronaut
  • CKA
  • CKAD
  • CKS
  • KCNA
  • KCSA
AWS
  • Security – Specialty
  • Solutions Architect – Professional
  • CloudOps Engineer – Associate
Korea (national)
  • Engineer Information Security정보보안기사
  • Engineer Information Processing정보처리기사
  • Engineer Information & Communication정보통신기사
  • CPPG개인정보관리사
Education
  • M.S., Cyber Defense · Dakota State University · Aug 2026 – Aug 2028, in progress
  • B.S., Civil Engineering · Korea Military Academy · Feb 2014 – Mar 2018

See how I secure the platform before it ships →

↑