---
title: "Posts by Shaun Duncan | Speedscale"
description: "Browse all blog posts written by Shaun Duncan on the Speedscale blog."
canonical: "https://speedscale.com/blog/author/shaun-duncan/"
---

# Posts by Shaun Duncan

Senior engineer at Speedscale, specializing in Kubernetes and cloud native technologies. • 9 posts published

[![How We Rebuilt GitLab CI on GKE Spot VMs](https://speedscale.com/_astro/featured-image.Yj38EbKH_ZkxAu5.webp)](https://speedscale.com/blog/rebuilding-gitlab-ci-on-gke/)

Oct 1, 2026

### [How We Rebuilt GitLab CI on GKE Spot VMs](https://speedscale.com/blog/rebuilding-gitlab-ci-on-gke/)

How we moved GitLab CI to GKE with shared BuildKit caching, multiple Spot machine types, and an on-demand fallback for scarce capacity.

[DevOps](https://speedscale.com/blog/category/devops/) [Kubernetes](https://speedscale.com/blog/category/kubernetes/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

[![eBPF: Correlating rustls Plaintext to TCP Connections Without a File Descriptor](https://speedscale.com/_astro/featured-image.BGElMnA8_1GJpnM.webp)](https://speedscale.com/blog/ebpf-rustls-plaintext-tcp-correlation/)

Sep 14, 2026

### [eBPF: Correlating rustls Plaintext to TCP Connections Without a File Descriptor](https://speedscale.com/blog/ebpf-rustls-plaintext-tcp-correlation/)

Follow an eBPF debugging trail through rustls, Tokio inlining, and an empty map to learn how TLS plaintext gets matched to the right TCP connection.

[Developer tools](https://speedscale.com/blog/category/developer-tools/) [Observability](https://speedscale.com/blog/category/observability/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

[![eBPF: Preventing Garbage HTTP Payloads When Reading Kernel Scatter-Gather Buffers](https://speedscale.com/_astro/featured-image.DSXgZef9_18eVjF.webp)](https://speedscale.com/blog/ebpf-garbage-http-payloads-scatter-gather-buffers/)

Jul 28, 2026

### [eBPF: Preventing Garbage HTTP Payloads When Reading Kernel Scatter-Gather Buffers](https://speedscale.com/blog/ebpf-garbage-http-payloads-scatter-gather-buffers/)

How our nettap eBPF agent produced garbage HTTP bodies from kernel iov\_iter scatter-gather buffers, and the CO-RE plus task-local storage fix that made it correct.

[Observability](https://speedscale.com/blog/category/observability/) [Developer tools](https://speedscale.com/blog/category/developer-tools/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

[![10 Benefits of automated testing](https://speedscale.com/_astro/featured-image.9vopkwxJ_1sq7lf.webp)](https://speedscale.com/blog/benefits-of-automated-testing/)

Feb 2, 2026

### [10 Benefits of automated testing](https://speedscale.com/blog/benefits-of-automated-testing/)

After spending hours or even days manually testing your software, you may be wondering whether or not there's a better way. The good news? There is.

[API Testing](https://speedscale.com/blog/category/api-testing/) [Load Testing](https://speedscale.com/blog/category/load-testing/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

Dec 10, 2025

### [What I Learned From Building an eBPF-Based Traffic Capture Application](https://speedscale.com/blog/what-i-learned-from-building-an-ebpf-based-traffic-capture-application/)

Building a targeted eBPF network traffic capture tool reveals why a general-purpose eBPF observability agent is exponentially harder.

[Observability](https://speedscale.com/blog/category/observability/) [Cloud native](https://speedscale.com/blog/category/cloud-native/) [Kubernetes](https://speedscale.com/blog/category/kubernetes/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

Aug 22, 2025

### [Under the Hood with Go TLS and eBPF](https://speedscale.com/blog/ebpf-go-design-notes-1/)

There are many reasons why you might want to leverage eBPF for plaintext inspection of TLS traffic including security monitoring, debugging, traffic.

[Developer Productivity](https://speedscale.com/blog/category/developer-productivity/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

Aug 11, 2025

### [Is Your Main Agent Lying? Leverage Multi-agent Workflows to Improve Response Quality](https://speedscale.com/blog/is-your-agent-lying/)

Learn how to use Claude Code sub-agents to get a 'second opinion' from other LLMs and build more reliable AI applications.

[AI Development](https://speedscale.com/blog/category/ai-development/) [Developer Productivity](https://speedscale.com/blog/category/developer-productivity/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

Apr 28, 2025

### [Easy Cross-Platform cgo Builds](https://speedscale.com/blog/easy-cross-platform-cgo-builds/)

When I first started writing Go software a little over a decade ago, one of the features I found particularly intriguing was the ability to build...

[Developer Productivity](https://speedscale.com/blog/category/developer-productivity/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

[![What Is Shadow Traffic? All You Need to Know](https://speedscale.com/_astro/featured-image.DWDnnmR8_UMdUH.webp)](https://speedscale.com/blog/shadow-traffic/)

Feb 4, 2025

### [What Is Shadow Traffic? All You Need to Know](https://speedscale.com/blog/shadow-traffic/)

Production traffic can often be unpredictable, and distinguishing genuine user interactions from mere noise becomes a pivotal step in comprehensively.

[API Testing](https://speedscale.com/blog/category/api-testing/)

[by Shaun Duncan](https://speedscale.com/blog/author/shaun-duncan/)

## Try Speedscale free

Choose the desktop proxymock or the hosted cloud trial to get started.

[Free Desktop Tool](https://docs.speedscale.com/proxymock/getting-started/installation/) [Free Cloud Trial](https://app.speedscale.com/signup)
