T-00:10ALT 0.0 km

↑ Profile

Mission DevSecOpsT-00:10

Launch your product securely.

DevSecOps Engineer

I turn security frameworks and compliance into platform code.

Open to remote and overseas DevSecOps rolesAvailable now

Tech stack
Languages
GoPythonBash
Cloud
AWSAzureGCP
Container
Kubernetes (EKS)HelmDocker
CI/CD
GitHub ActionsArgoCDFluxCD
IaC
Terraform
Supply chain
Sigstore/CosignSBOMTrivy
Policy
OPAKyvernoOSCAL
Secrets
VaultAWS KMS
Observability
PrometheusGrafanaLokiOpenTelemetryFluent Bit
GRC
PKIISO 27001ISMS-PEU CRANIST CSFNIST SP 800-53NIST SP 800-30NIST SSDFNIST SP 800-204

Scroll to launch ↓

T-00:10 DESIGN REVIEW

Design

I put security into the design before anything gets built.

Threat models, blast-radius maps, and requirements for three AWS reference architectures.

Personal projectstest flights2

  • Security Requirements plugin4 postsGitHub ↗ Shift-left tooling skips the first stage: what a service must satisfy 19 verifiable requirements for a paid service, 3 no NIST baseline coversSee how I fixed it Hide
    Problem
    DevSecOps preaches shift left, but requirements analysis, the first stage of the lifecycle, has almost no tooling. Nothing states what a service must satisfy before code exists.
    Solution
    A Claude Code plugin that derives requirements from the service's characteristics, operating environment, compliance obligations, and stack: FIPS 199 impact, an 800-53B baseline, STRIDE and LINDDUN threats, regulatory overlays, and verifiable requirements.
    Result
    Ran on the Lightning-paid OpenCTI scan service: 11 service-specific threats, 19 verifiable requirements, 3 of them for risks no NIST baseline control expresses.
    Lesson
    Let the model interpret; let scripts own control IDs, baselines, and approvals. A wrong recovery objective quietly rewrites dozens of requirements.
  • AWS SaaS Security Design Review29 posts One requirement set doesn't fit every AWS deployment model 3 architectures, 31 threats; ECS and EKS broke at different boundariesSee how I fixed it Hide
    Problem
    A requirements plugin is only as good as the architectures it has been run on. I needed to see it handle three different deployment models end to end, not one demo.
    Solution
    Ran the Security Requirements plugin through its whole lifecycle on three AWS reference architectures (ECS SaaS, EKS SaaS, and a serverless movie-voting API): impact, threats, blast radius, responsibility, requirements, refresh, evidence, CI/CD verification, and regulatory overlays.
    Result
    Three reviews in 29 posts, with threat models of 13 (ECS), 10 (EKS), and 8 (serverless). In the serverless review, a route-dispatch mismatch surfaced as a threat-only requirement the 800-53 baseline doesn't express.
    Lesson
    The deployment model changes the threat model, even between two container platforms. On ECS, tenant isolation broke at the routing layer: a shared mapping Lambda that could rewrite any tenant's routes, and services trusting a forged tenant header. On EKS, it broke at boundaries ECS didn't have: ingress rules routing into another tenant's namespace, namespace isolation without NetworkPolicy, and a service account picking up the wrong AWS role. One requirement set copied across all three would have missed each of these.
NIST SSDF PW.1See the code behind it, tracked live ↗

T-00:05 PAD CHECKS

Build

I build platforms that are secure before the first workload ships.

I set up the organization, environment, and activities for building software securely, based on NIST SSDF and NIST SP 800-204.

Personal projectstest flights3

  • Ethereum Hoodi Validator, running locallyValidator 1645272 on a local Kubernetes cluster: Besu, Teku, and Web3Signer, watched in Grafana.
  • Ethereum Hoodi Validator on Private EKS (earlier build)13 postsGitHub ↗ Public client images run right next to a slashable signing key Validator active on Hoodi; revoking the signer's role stopped signing at onceSee how I fixed it Hide
    Problem
    Staking operators run consensus and validator clients pulled from public registries, right next to the signing key, so a swapped image or a stolen credential means a slashable signature. Running the hardware yourself adds patching, uptime, and key custody on top.
    Solution
    Moved the node to a private EKS cluster with no public API endpoint. Every upstream client image is reviewed, pinned by digest, checked against an allowlist, and mirrored into private ECR with immutable tags and KMS encryption, published through GitHub OIDC with a single-purpose role. Kyverno admission blocks workloads that don't meet the baseline.
    Result
    Validator 1559065 went active on Hoodi and had attestations included on chain. During live rollout, admission rejected a sidecar image pinned by tag instead of digest until it was re-pinned. In a revocation drill, pulling the signer's Vault role stopped signing at once; after reactivation with the same slashing-protection volume, its next attestation was finalized.
    Lesson
    Every control has a cost. I started with about ten private registries and every scanner I could add, then cut back to the controls that answer a real risk.
  • LND node on Kuberneteslearning2 posts A Running Pod can come back as a different Lightning node Same identity, channels, and backups after Pod replacement and Helm upgradeSee what I learned Hide
    Problem
    A learning project: I wanted to see what Kubernetes actually guarantees for a stateful node, and what it doesn't. A Lightning node is its wallet, channel database, and static channel backups, so a Pod that restarts successfully can still come back as a different node.
    Solution
    Packaged LND as a Helm chart: a StatefulSet with per-node volumes, default-deny NetworkPolicy, RPC kept apart from P2P, wallet unlock left as an operator step, and optional monitoring sidecars. Then wrote a test for every claim the chart makes.
    Result
    After a forced Pod replacement and a helm upgrade, the same node identity, channels, volumes, and SCB hash came back. Reproduced on macOS arm64 and WSL amd64 from the same revision, with a synced testnet node, an active public channel, and payments both ways.
    Lesson
    For stateful workloads, Running is only where testing starts. Kubernetes gives scheduling and storage; LND still owns identity and channel state, and the operator still owns the seed.

Open source contributionsproactive minds3

NIST SSDF PW.9See the code behind it, tracked live ↗

T+01:12 STAGE 1 SEP

Deploy

I make pipelines prove their own integrity, and I fix what I find upstream.

24 controls mapped to 12 threat areas in my own CI/CD, plus contributions to SEAL, and a fuzzer bug in Trail of Bits' Gosentry fixed the same day.

Personal projectstest flights1

  • Pipeline security controls6 posts The pipeline itself can ship a forged artifact to production 24 controls; every Action and image pinned; 25 workflows → 8See how I fixed it Hide
    Problem
    The pipeline that builds and ships the validator is itself an attack path: a stolen token, a swapped action, or a forged evidence file reaches the production cluster without touching application code. NIST SP 800-218 (SSDF) and SP 800-204D say what to protect, not which controls one repository needs.
    Solution
    Mapped SSDF practices and 800-204D's CI/CD threats to 24 controls in the node-operator pipeline, each tied to the threat it answers: default-deny token permissions and SHA-pinned actions, untrusted PR code treated as data, fail-closed scanner gates, OPA policy-as-code, GitHub OIDC instead of long-lived keys, and digest-bound SBOM and provenance.
    Result
    Controls enforced in CI and release workflows, with evidence bound to the exact commit. OpenSSF Scorecard: all 84 GitHub Actions and 39 container images pinned, least-privilege tokens, no dangerous workflow patterns, and 30 of 30 merged PRs CI-tested. Consolidated 25 workflows into 8. A mirror step shown to accept a wrong image digest now rejects it.
    Lesson
    More scanners slowed delivery without making it safer; fewer tools, containerized and pinned, did more. A control earns its place by the threat it answers.

Open source contributionsproactive minds4

NIST SSDF PS.2See the code behind it, tracked live ↗

T+04:38 STAGE 2 SEP

Operate

I make running systems observable, and cheap enough to keep defending.

An incident console for an L2 rollup I run, per-outcome L402 metrics upstream in Aperture, and 28 cloud security checks in Prowler.

Personal projectstest flights2

Open source contributionsproactive minds4

NIST SSDF RV.2See the code behind it, tracked live ↗

Every control, its owner, and its evidence on one screen.

Compliance Ops dashboard: 69% coverage, 966 of 1409 requirements implemented, and status by framework for NIST SP 800-53, NIST SSDF, and a key management policy.
Compliance Ops, example data
“Know the enemy and know yourself, and you will not be imperiled in a hundred battles.”
Sun Tzu

How well do you know your organization's security activities?

T+09:00Orbit achieved

Jinsoo Yang

DevSecOps Engineer

Security controls you can read, run, and prove.

Global reach

Field notes

What Shouldn't I Miss in the AI Era? →New models and tools arrive every day. The one thing I don't want to hand over to AI is my own understanding, and the responsibility that comes with it.Study2 min readHow Do I Contribute to Open Source, and Why Do I Do It? →How I get to know an unfamiliar open-source project, and why I contribute. Open source taught me a lot, and I want other people to learn alongside me.Study3 min read

How I work

Self-starter

I get to security problems before they ship.

Maintainer of the Supply Chain section of the SEAL Frameworks, with 51 contributions and 6 security reports sent upstream.

Fast learner

I learn a new stack by running something real on it.

To learn Web3 infrastructure, I built and ran an Ethereum testnet validator on EKS. Picked up 12+ credentials along the way, Kubestronaut included.

Problem solver

I turn slow, manual work into code.

Compliance used to live in documents. I moved it into OSCAL: controls, policies, evidence, and owners in one dashboard the team can query from Slack and Jira.

Resume (PDF) ↗

Career

  1. Nov 2024 – Sep 2026

    IBM Consulting Korea

    Cybersecurity ConsultantCloud securitySupply chain (SSDF)OT security

    • Built an AWS security posture assessment tool on open-source CSPM (Prowler) and defined a cloud security maturity grading model
    • Designed and recommended automated AWS posture scanning with AWS Batch, which later detected a crypto miner in the client's environment
    • Led product security assessments based on NIST SSDF (SP 800-218) and SP 800-204D to strengthen clients' software supply chain controls and DevSecOps culture
    • Conducted OT risk assessments across 10 plant sites and implemented OT SOC solutions
    • Reviewed and implemented iDMZ architecture across global plants for semiconductor, industrial vehicle, and energy companies
    • Managed OT SOC detection rules with IBM's global SOC, leading weekly tuning meetings to propose new rules and optimize existing ones
  2. Mar 2024 – Nov 2024

    Deloitte Consulting Korea

    Sr. Security ConsultantISO 27001PKIEvaluation guide

    • Ran an ISO 27001 certification audit for a global IoT service: gap analysis, control-effectiveness testing, and remediation validation, and reported findings to global stakeholders in English
    • Audited digital-signature authentication services covering cryptographic controls, access management, and key lifecycle
    • Reviewed AWS architectures against compliance frameworks and set prioritized remediation
    • Drafted the evaluation criteria in Appendices 2–3 of Korea's Digital Signature Certification Service Evaluation Guide v1.4.0 (published in Korean)
  3. Jun 2023 – Feb 2024

    KITRI Best of the Best (BoB) 12th

    Vulnerability Analysis TrackVulnerability analysisCIEMMulti-cloud IAM

    • Selected for a national program with about a 3% acceptance rate. Trained in web and binary exploitation and reverse engineering
    • Led a multi-cloud CIEM platform with an IAM policy normalization engine for AWS, Azure, and GCP. The project was published as research and spun out as a startup
  4. Dec 2021 – Mar 2023

    Republic of Korea Army

    Signal Officer (Captain), Corps CERTCorps CERTIncident responseSplunk

    • Led first-line incident investigations for a command of about 10,000 members, in a country still under armistice, covering triage, evidence collection, timeline reconstruction, and incident reporting
    • Tuned Splunk detection rules and dashboards, reducing false positives. Built an SPL query assistant and a SIEM training platform for new analysts
    • Managed firewall, IDS, and endpoint security policies through security event analysis
    • Audited security configurations of servers, networks, PCs, and military equipment, and built a self-audit script that let users find and fix their own misconfigurations
    • Built control-level audit evidence packages and drove remediation for cybersecurity assessments
    • Went through an internal security audit by the Defense Counterintelligence Command
    • Selected for the Army's Elite 300 Cyber Warriors. Won the Ground Operations Command incident response CTF. Placed 2nd in a cybersecurity education competition with a web-based security awareness game
  5. Mar 2018 – Dec 2021

    Republic of Korea Army

    Signal Officer (Lieutenant), Network Platoon LeaderNetwork ops25-member platoon#1 of 24

    • Led a 25-member signal platoon responsible for military network availability and security. Ranked #1 of 24 signal sites in a corps-level readiness evaluation
    • Designed and tested network failover and disaster recovery procedures

Open source

Security disclosures 6

Private reports to blockchain companies. Product names and details stay private until fixes ship.

  • Blockchain Company A3
    • 3 reportssubmitted
  • Blockchain Company B1
    • 1 reportsubmitted
  • Blockchain Company C2
    • Identified a vulnerability in a digital asset issuance platform (under embargo)confirmed, fix in next release
    • Identified a vulnerability in a blockchain payment platform (under embargo)confirmed, fix in next release

Contributions 45

Merged · 34
In review · 8
Reported · 3

Credentials

Certifications

  • Kubestronaut (CKA, CKAD, CKS, KCNA, KCSA)
  • AWS Certified Security - Specialty
  • AWS Certified Solutions Architect - Professional
  • AWS Certified CloudOps Engineer - Associate
  • Engineer Information Security (정보보안기사)
  • Engineer Information Processing (정보처리기사)
  • Engineer Information & Communication (정보통신기사)
  • Certified Privacy Protection General, CPPG (개인정보관리사)

Education

  • M.S., Cyber Defense, Dakota State UniversityAug 2026 – Aug 2028
  • B.S., Civil Engineering, Korea Military AcademyFeb 2014 – Mar 2018

Highlights

  • Kubestronaut: 3 hands-on and 2 knowledge-based Kubernetes certifications.
  • Open-source contributor: 51 contributions to cloud, compliance, security, and blockchain tooling.
  • Top signal platoon leader: #1 of 24 signal platoons in a corps-level readiness evaluation.

Payload online

Ask the satellite

Portfolio only · Cited posts · Claude Haiku · No history

Typed questions go to Claude and aren't stored. No personal info, please.