Projects

Case studies, grouped by practice

Each page covers the problem, my role, the architecture, the decisions and their trade-offs, and how the result was verified. Labels say whether something is a personal project, professional work or a design that has not been built yet.

Platform

Kubernetes clusters and the platform services around them, built to be rebuilt.

  • Personal project Platform 2026

    N27 Network Lab

    A browser-based network lab. Draw a topology, cable ports in a rack, deploy it with Containerlab and configure every device from a browser terminal.

    • 15 architecture decision records
    • Browser test suites against real devices
    • Lab devices run with no network except their cables
    • Containerlab
    • Next.js
    • NestJS
    • Keycloak
    • PostgreSQL
  • Professional Platform 2026

    Talos Kubernetes on KVM: a cluster runbook verified three times

    A parameterized runbook that takes a bare Rocky Linux host to a healthy three-node Talos cluster, rebuilt from scratch until every silent failure was written down.

    • 3 clean runs, each with 3/3 nodes Ready
    • Survived a real power cycle
    • 5 silent failure modes documented
    • Talos Linux
    • Kubernetes
    • talosctl
    • KVM / libvirt
    • Rocky Linux 9

Networking & Security

Overlay networks, tenant isolation and access control, from VXLAN to RBAC.

  • Professional Networking & Security 2026

    VXLAN fabric: SONiC control plane, VPP data plane

    Private, isolated tenant networks stretched across separate dedicated servers, with SONiC running BGP and VPP doing VXLAN, gateways and ACLs. Validated path by path.

    • 13 of 13 traffic paths passed on the two-server build
    • Tenant traffic does not depend on BGP being up
    • Every command parameterized after a lost-SSH incident
    • VPP
    • SONiC
    • FRRouting
    • BGP / EVPN
    • VXLAN
  • Design Networking & Security 2026

    Kubernetes cluster access: RBAC tiers with a path to single sign-on

    A proposed access model for a cluster shared through one admin kubeconfig. Per-user identities come first and OIDC groups later, with roles that never need rewriting.

    • Roles written once; only binding subjects change
    • Positive and negative checks per role with kubectl auth can-i
    • Audit logging before access is widened
    • Kubernetes RBAC
    • X.509 client certificates
    • OIDC
    • kubelogin
    • API audit logging

CI/CD

Pipelines, runners and the gates that decide what reaches production.

  • Professional CI/CD 2025–2026

    GitLab CI/CD and Jenkins: pipelines, runners and quality gates

    How I build and run delivery pipelines, shown through a GitLab pipeline for a TypeScript monorepo, a self-hosted runner, and the Jenkins and quality-gate work around them.

    • Images tagged by commit SHA; latest moves only from the default branch
    • Services rebuild on other branches only when their code changes
    • SonarQube quality gate and Trivy threshold as blocking stages
    • GitLab CI/CD
    • GitLab Runner
    • Jenkins
    • Docker
    • Nx

About client work

Professional projects are described without client-confidential names, host names, addresses or configuration. Diagrams are redrawn from the source documents, and excerpts are rewritten rather than copied. Some of my work, such as the Jenkins setup on client infrastructure, has no public artifact at all, so it appears as scope in the CI/CD case study and under experience.