41554 blogs · [ { "id": "01a0d59c-b06f-73e0-92ca-1d7276432ba1", "title": "The hidden cost of sync.Pool", "url": "https://blog.howardjohn.info/posts/pool-cost/", "published_at": "2026-09-18T00:00:00+00:00" }, { "id": "01a0874b-00d6-72a7-95d3-05e6a2529a1d", "title": "The hidden cost of mpsc channels", "url": "https://blog.howardjohn.info/posts/mpsc-cost/", "published_at": "2026-05-12T00:00:00+00:00" }, { "id": "01a0874b-00d6-72a7-95d3-05e6a25d9fb0", "title": "Better Kubernetes CRD Docs", "url": "https://blog.howardjohn.info/posts/better-crd-docs/", "published_at": "2026-05-11T00:00:00+00:00" }, { "id": "01a0874b-00d6-72a7-95d3-05e6a2d765b9", "title": "Envoy Quirks Part 2: Filter Chain Match", "url": "https://blog.howardjohn.info/posts/envoy-gotcha-2-filter-chain-match/", "published_at": "2026-04-17T00:00:00+00:00" }, { "id": "01a0874b-00d6-72a7-95d3-05e6a2f1de23", "title": "Fast GitHub Actions with Blacksmith", "url": "https://blog.howardjohn.info/posts/blacksmith-gha/", "published_at": "2026-04-10T00:00:00+00:00" }, { "id": "01a0874b-00d6-72a7-95d3-05e6a3cd5f84", "title": "Stop picking my Go version for me", "url": "https://blog.howardjohn.info/posts/go-mod-version/", "published_at": "2026-03-27T00:00:00+00:00" }, { "id": "01a0874b-00d6-72a7-95d3-05e6a3d9860c", "title": "Exploring ListenerSets in Gateway API v1.5", "url": "https://blog.howardjohn.info/posts/listenerset/", "published_at": "2026-03-25T00:00:00+00:00" }, { "id": "01a0874b-00d6-72a7-95d3-05e6a489e347", "title": "Envoy Quirks Part 1: Clear Route Cache", "url": "https://blog.howardjohn.info/posts/envoy-gotcha-1-clear-route-cache/", "published_at": "2026-03-05T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072cebfcad", "title": "Async DAGs in Bash", "url": "https://blog.howardjohn.info/posts/bash-dag/", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072d919ede", "title": "Interpreting near native speeds with CEL and Rust", "url": "https://blog.howardjohn.info/posts/cel-fast/", "published_at": "2026-03-04T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072d9e806e", "title": "Sharing Rust Build Cache", "url": "https://blog.howardjohn.info/posts/shared-rust-build/", "published_at": "2026-02-18T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072e23101f", "title": "Kubernetes v1.35 Pod Certificates won't help your service mesh", "url": "https://blog.howardjohn.info/posts/pod-certs/", "published_at": "2025-12-22T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072e23434f", "title": "Body-Based Routing in Agentgateway", "url": "https://blog.howardjohn.info/posts/bbr-agentgateway/", "published_at": "2025-11-26T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072eac65c4", "title": "Agentgateway at Home", "url": "https://blog.howardjohn.info/posts/agentgateway-at-home/", "published_at": "2025-11-20T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072f0a3598", "title": "CEL is a great language (you are using it wrong)", "url": "https://blog.howardjohn.info/posts/cel-is-good/", "published_at": "2025-10-08T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072f2f4c52", "title": "How to build a scalable control plane", "url": "https://blog.howardjohn.info/posts/scaling-control-plane/", "published_at": "2025-09-16T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072f9fc1d3", "title": "Rust vs Go", "url": "https://blog.howardjohn.info/posts/rust-vs-go/", "published_at": "2025-09-16T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072fbfe42b", "title": "You should buy a faster CPU", "url": "https://blog.howardjohn.info/posts/buy-a-cpu/", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b072fdb04be", "title": "Your AI workloads still need a service mesh", "url": "https://blog.howardjohn.info/posts/ai-mesh/", "published_at": "2025-08-05T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b07301ceaec", "title": "[Solo.io Blog] Gloo Mesh, The 100 Million Pod Mesh", "url": "https://blog.howardjohn.info/posts/external-100m-pod-mesh/", "published_at": "2025-02-05T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b073039777e", "title": "Exploring the new \"go tool\" support in Go 1.24", "url": "https://blog.howardjohn.info/posts/go-tools-command/", "published_at": "2025-01-20T00:00:00+00:00" }, { "id": "01a0874b-00d7-7393-b410-7b0730504279", "title": "Ztunnel through two lenses", "url": "https://blog.howardjohn.info/posts/ztunnel-compute-traffic-view/", "published_at": "2025-01-16T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b1425ba938", "title": "[Solo.io Blog] Introducing Ambient Multi-Cluster Mode to Gloo Mesh", "url": "https://blog.howardjohn.info/posts/external-solo-ambient-multicluster/", "published_at": "2025-01-15T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b1426813f3", "title": "What happens when Ztunnel shuts down?", "url": "https://blog.howardjohn.info/posts/ztunnel-shutdown/", "published_at": "2024-12-20T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b142f82827", "title": "[AWS Blog] Transforming Istio into an enterprise-ready service mesh for Amazon ECS", "url": "https://blog.howardjohn.info/posts/external-aws-ecs/", "published_at": "2024-11-27T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14381a7cd", "title": "Scaling Ambient In Your Sleep", "url": "https://blog.howardjohn.info/posts/scaling-ambient/", "published_at": "2024-11-15T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b143a7cb8e", "title": "\"Zero to Value\" in two steps with Istio ambient mode", "url": "https://blog.howardjohn.info/posts/zero-to-value/", "published_at": "2024-11-05T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b1443c704e", "title": "Looking back on \"Building Better Controllers\" 2 years later", "url": "https://blog.howardjohn.info/posts/krt-recap/", "published_at": "2024-11-03T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b144fa7a2c", "title": "[Cloud Native Now Blog] How Istio Ambient is Revolutionizing Cloud Connectivity", "url": "https://blog.howardjohn.info/posts/external-cloudnativenow-ambient/", "published_at": "2024-11-01T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b145a17edb", "title": "On-Demand Development Environments", "url": "https://blog.howardjohn.info/posts/lazy-dev-env/", "published_at": "2024-10-22T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b145dc7c9f", "title": "Inline (YAML) Langauge Injection in JetBrains IDEs", "url": "https://blog.howardjohn.info/posts/jetbrains-yaml/", "published_at": "2024-09-27T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b146da2989", "title": "[Solo.io Blog] Egress Gateways Made Easy", "url": "https://blog.howardjohn.info/posts/external-solo-egress-gateways-made-easy/", "published_at": "2024-08-19T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14798b987", "title": "[Solo.io Blog] HTTP Observability Without Compromises", "url": "https://blog.howardjohn.info/posts/external-solo-http-observability-without-compromises/", "published_at": "2024-08-13T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b147e504fe", "title": "I just want mTLS on Kubernetes", "url": "https://blog.howardjohn.info/posts/mtls-kubernetes/", "published_at": "2024-08-12T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b148a890e0", "title": "NetworkPolicy: the wrong solution to the right problem", "url": "https://blog.howardjohn.info/posts/netpol-api/", "published_at": "2024-08-09T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b148ea3b31", "title": "Stop Trusting Your Nodes", "url": "https://blog.howardjohn.info/posts/node-zerotrust/", "published_at": "2024-08-09T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b1496deda2", "title": "The Past, Present, and Future of Istio Installation", "url": "https://blog.howardjohn.info/posts/past-present-future-istio-install/", "published_at": "2024-08-09T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b149b99f1f", "title": "Shipping Anything On Go Infrastructure", "url": "https://blog.howardjohn.info/posts/go-arbitrary-binary/", "published_at": "2024-07-05T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b149e548bd", "title": "Service Mesh Adoption Curve", "url": "https://blog.howardjohn.info/posts/flattening-curve/", "published_at": "2024-06-24T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14a32178e", "title": "Everything you need to know about Istio installation", "url": "https://blog.howardjohn.info/posts/istio-install/", "published_at": "2024-06-07T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14a83d7be", "title": "Ambient and the SPOF Myth", "url": "https://blog.howardjohn.info/posts/ambient-spof/", "published_at": "2024-06-04T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14ab6a56c", "title": "Grafana Dashboard Development Workflow", "url": "https://blog.howardjohn.info/posts/grafana-dashboard-dev/", "published_at": "2024-05-30T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14acbd14a", "title": "Podless Kubernetes", "url": "https://blog.howardjohn.info/posts/podless-kubernetes/", "published_at": "2024-05-07T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14b6d628d", "title": "Testing a Kubernetes Networking Implementation Without Kubernetes", "url": "https://blog.howardjohn.info/posts/ztunnel-testing/", "published_at": "2024-04-25T00:00:00+00:00" }, { "id": "01a0874b-00d8-722e-9074-67b14c545bf2", "title": "Securing Prometheus with Istio Ambient", "url": "https://blog.howardjohn.info/posts/securing-prometheus/", "published_at": "2024-04-15T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e4388024451", "title": "Building a better Kubernetes Client", "url": "https://blog.howardjohn.info/posts/kube-client/", "published_at": "2024-03-23T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438840537a", "title": "Advanced Helm Techniques", "url": "https://blog.howardjohn.info/posts/advanced-helm/", "published_at": "2024-02-27T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e4388e18afb", "title": "Opinionated Istio Feature Recommendations", "url": "https://blog.howardjohn.info/posts/opinionated-istio/", "published_at": "2024-02-06T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e4389b15bd9", "title": "Analyzing Go Binary Sizes", "url": "https://blog.howardjohn.info/posts/go-binary-size/", "published_at": "2024-01-06T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e4389f0d362", "title": "Truly Extensible Proxies", "url": "https://blog.howardjohn.info/posts/proxy-extensibility/", "published_at": "2023-10-13T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438a076f49", "title": "Proxy Layers", "url": "https://blog.howardjohn.info/posts/proxy-layers/", "published_at": "2023-10-12T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438a9bf379", "title": "Service Mesh Proxy Classes", "url": "https://blog.howardjohn.info/posts/proxy-types/", "published_at": "2023-10-11T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438b07e8fe", "title": "User space isn't slow", "url": "https://blog.howardjohn.info/posts/wireguard-tls/", "published_at": "2023-09-10T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438bd7c118", "title": "An optimal CI/CD system", "url": "https://blog.howardjohn.info/posts/ideal-ci/", "published_at": "2023-09-06T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438be4003a", "title": "Istio Ambient is not a \"Node Proxy\"", "url": "https://blog.howardjohn.info/posts/ambient-not-node-proxy/", "published_at": "2023-08-22T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438c053c4a", "title": "Waypoint Proxies The Hard Way", "url": "https://blog.howardjohn.info/posts/waypoint-the-hard-way/", "published_at": "2023-08-22T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438cf3a13a", "title": "Building a lot of docker images", "url": "https://blog.howardjohn.info/posts/docker-builder/", "published_at": "2023-08-04T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438cf80de6", "title": "GOMAXPROCS and GOMEMLIMIT in Kubernetes", "url": "https://blog.howardjohn.info/posts/gomaxprocs/", "published_at": "2023-07-31T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438dad609b", "title": "Saying No In Open Source", "url": "https://blog.howardjohn.info/posts/saying-no/", "published_at": "2023-07-27T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438dc12ec4", "title": "Useful tools for Kubernetes", "url": "https://blog.howardjohn.info/posts/kube-helpers/", "published_at": "2023-07-12T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438e1250cd", "title": "Tracing shell scripts with OpenTelemetry", "url": "https://blog.howardjohn.info/posts/shell-tracing/", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438e7b66ed", "title": "Zero allocations metrics with opentelemetry-go", "url": "https://blog.howardjohn.info/posts/zero-alloc-otel/", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438e7c7c69", "title": "Analyzing Go Build Times", "url": "https://blog.howardjohn.info/posts/go-build-times/", "published_at": "2023-06-24T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438f3b3ed9", "title": "CRD Versioning", "url": "https://blog.howardjohn.info/posts/crd-versioning/", "published_at": "2023-06-07T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e438ff9d73d", "title": "LTS and Rolling Releases", "url": "https://blog.howardjohn.info/posts/lts/", "published_at": "2023-05-26T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e439076df5a", "title": "Outbound sidecars are not secure enforcement points", "url": "https://blog.howardjohn.info/posts/bypass-egress/", "published_at": "2023-05-22T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e43914447e9", "title": "Ergonomic Map in Go", "url": "https://blog.howardjohn.info/posts/go-map/", "published_at": "2023-01-31T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e43923962e7", "title": "Building Docker Images Fast (by not using Docker)", "url": "https://blog.howardjohn.info/posts/docker-builds/", "published_at": "2023-01-23T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e4392a6120e", "title": "Kubernetes Operators", "url": "https://blog.howardjohn.info/posts/operators/", "published_at": "2022-12-19T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e43937db7e7", "title": "Local Gateway", "url": "https://blog.howardjohn.info/posts/local-gateway/", "published_at": "2021-03-12T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e439387239b", "title": "Istio PR Approvers", "url": "https://blog.howardjohn.info/posts/pr-approvers/", "published_at": "2021-03-06T00:00:00+00:00" }, { "id": "01a0874b-00d9-7353-b3ca-0e4393d3d849", "title": "Talks", "url": "https://blog.howardjohn.info/talks/", "published_at": null } ] posts Claim your blog
Back to howardjohn's blog
Blog · corpus.blog/blogs/blog.howardjohn.info/posts

howardjohn's blog

blog.howardjohn.info

2026

2025

2024

2023

2022

2021

Undated