Open source

Two CNCF projects, and the tooling around them.

The through-line is the same one every time: find the step a human repeats every release, and delete it.

Kubernetes

2025 — present

Release Team

v1.37 — v1.38
Current

Documentation Lead, v1.38

Leading the documentation workstream for the release and directing five shadows across feature-blog coordination, reference regeneration and the release-day docs freeze. Docs shadow on v1.37 first, stepping up to lead after shipping two complete reference sets end to end.

Reference tooling

kubernetes-sigs/reference-docs

Generation, from hours to minutes

Removed the hand-maintained per-release configuration that gated every build — API groups, versions and kinds are now detected directly from the OpenAPI spec.

Corrected the API reference published on kubernetes.io, which had been silently dropping enum values because the spec it was generated from omitted them.

Removed 420 duplicate and wrongly grouped pages by fixing cross-group version collisions in resource bucketing.

Opened the reference to native Hugo rendering with generator backends that coexist with the production output under byte-identical guarantees, so no existing consumer had to change.

Website

kubernetes/website

Shipping the docs everyone reads

Shipped the complete reference documentation for two releases — API, kubectl, kubeadm, component and configuration — on the release-day deadline.

Brought dark mode to kubernetes.io, leading the theme upgrade that had blocked it and carrying the site across three major versions.

Reorganised Dynamic Resource Allocation into a Resource Management section, so readers find scheduling and device documentation in one place.

Reviews contributions across the project for technical accuracy and style-guide conformance, among SIG Docs' most active reviewers.

Microcks

CNCF incubating

LFX Mentorship 2026

Microcks CLI v2

Selected for the mentorship and mentored by the project's founder and maintainers.

Into the inner loop

Running a contract test previously cost a server, credentials and a specification import, so teams learned about breakages a pull request too late. It now runs against an ephemeral container with none of that.

Failures on the diff

Machine-readable output modes emit annotations resolved to the exact failing line of the specification, so a reviewer sees drift in place instead of hunting through folded CI logs.

Exit codes CI can trust

Failures are classified — usage, connection, API, not-found, environment — so a failing contract test reports as a result rather than a tool error.

Into the editor

A Microcks VS Code extension, deliberately CLI-first so the editor never becomes a second control plane and never handles credentials.

Elsewhere

Side projects

Contract testing in the editor

A services tree, dry-run tests that drill to step-level failures, and an inspector that compares a mock against a real service.

A conference that had to take registrations

School registration across nineteen local government areas, sponsorship intake and a waitlist, on Next.js and Airtable.

Hands-on DevOps exercises

Real-world challenges for engineers learning infrastructure by building it, plus reusable Terraform modules for Azure.