56,966 blogs · [
{
"id": "01a08c62-b103-7145-bbf3-8dca8f66a03d",
"title": "How to use Confidential Computing to prove what code is on your server",
"url": "https://www.willem.dev/articles/prove-what-code-your-system-is-running/",
"published_at": "2026-06-18T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca8fd409ce",
"title": "Compliance as a runtime problem",
"url": "https://www.willem.dev/articles/compliance-as-a-runtime-problem/",
"published_at": "2026-06-03T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca902fea1d",
"title": "Dear HTTP service, how can I trust you not to break my heart?",
"url": "https://www.willem.dev/articles/openpcc-short-intro/",
"published_at": "2026-03-12T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca90c3cce0",
"title": "Writing Benchmarks: Performance testing in Go/Golang",
"url": "https://www.willem.dev/articles/benchmarks-performance-testing/",
"published_at": "2024-10-24T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca91261ba6",
"title": "Avoid inaccurate tests: Use httptest when testing HTTP handlers in Go/Golang",
"url": "https://www.willem.dev/articles/testing-http-handlers-using-httptest/",
"published_at": "2024-10-03T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca92030a0b",
"title": "Sets in Go/Golang – Using Maps and Recommended Packages",
"url": "https://www.willem.dev/articles/sets-in-golang/",
"published_at": "2024-09-19T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca8cde4041",
"title": "No string interpolation in Go/Golang. Use these alternatives",
"url": "https://www.willem.dev/articles/string-interpolation/",
"published_at": "2024-07-03T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca9238ede1",
"title": "Devlog I: The foundations of a Go/Golang web application",
"url": "https://www.willem.dev/articles/may-househunt-update/",
"published_at": "2024-05-02T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca92a583e4",
"title": "Prevent sensitive data from leaking in Go/Golang",
"url": "https://www.willem.dev/articles/prevent-sensitive-data-from-leaking/",
"published_at": "2024-03-28T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca92f0237e",
"title": "Maps of functions in Go (Golang)",
"url": "https://www.willem.dev/articles/maps-of-functions/",
"published_at": "2024-03-21T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca930c0d84",
"title": "Documented Example Project: Go/Golang Web Application",
"url": "https://www.willem.dev/articles/example-web-application-project/",
"published_at": "2024-03-13T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca939da1bf",
"title": "Composable HTTP Handlers using generics in Go/Golang",
"url": "https://www.willem.dev/articles/generic-http-handlers/",
"published_at": "2024-02-27T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca9498c888",
"title": "URL path parameters and variables in Go (Golang) 1.22 and later",
"url": "https://www.willem.dev/articles/url-path-parameters-in-routes/",
"published_at": "2024-02-15T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca955fd588",
"title": "Change JSON Time and Date format in Go/Golang",
"url": "https://www.willem.dev/articles/change-time-format-json/",
"published_at": "2024-01-25T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca96536509",
"title": "How to Compare Time or Date in Go/Golang with example code",
"url": "https://www.willem.dev/articles/how-to-compare-time-date/",
"published_at": "2024-01-18T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca96f7bb0c",
"title": "Get the Current Time: The Monotonic Clock in Go/Golang",
"url": "https://www.willem.dev/articles/time-now-monotonic-clock/",
"published_at": "2024-01-11T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca97398cac",
"title": "Time and Location Explained in Go/Golang",
"url": "https://www.willem.dev/articles/time-location-explained/",
"published_at": "2023-12-21T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca8e902d2e",
"title": "How to Parse a Time or Date using time.Parse in Go/Golang",
"url": "https://www.willem.dev/articles/how-to-parse-time-date/",
"published_at": "2023-11-23T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca97ff5d13",
"title": "Anonymous structs in Go (Golang): What, How and When",
"url": "https://www.willem.dev/articles/anonymous-structs/",
"published_at": "2023-11-16T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca9816d907",
"title": "Type safe way to add a value to a Go/Golang context",
"url": "https://www.willem.dev/articles/how-to-add-values-to-context/",
"published_at": "2023-11-12T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca98e1c7b6",
"title": "Should you store *that value* in a Go/Golang context?",
"url": "https://www.willem.dev/articles/what-values-store-in-context/",
"published_at": "2023-11-12T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca8bc44a53",
"title": "Dealing with large structs in (table) tests in Go/Golang",
"url": "https://www.willem.dev/articles/large-structs-in-table-tests/",
"published_at": "2023-09-07T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca98f08f5b",
"title": "Make, Literals and Re-slicing - Go/Golang slice fundamentals",
"url": "https://www.willem.dev/articles/build-your-own-slice-make-literal-reslice/",
"published_at": "2023-08-30T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca8dd894a2",
"title": "Should you use a slice of pointers to structs in Go/Golang?",
"url": "https://www.willem.dev/articles/slice-of-pointers-structs/",
"published_at": "2023-08-20T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca8c0b6c82",
"title": "Should you use pointers to slices in Go/Golang?",
"url": "https://www.willem.dev/articles/should-you-use-pointers-to-slices/",
"published_at": "2023-08-03T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca99c351f2",
"title": "Append and Copy - Go/Golang slice fundamentals",
"url": "https://www.willem.dev/articles/build-your-own-slice-append-copy/",
"published_at": "2023-07-18T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca99f726d9",
"title": "Arrays and slices - Go/Golang slice fundamentals",
"url": "https://www.willem.dev/articles/build-your-own-slice-start-here/",
"published_at": "2023-06-26T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca9a2e28a6",
"title": "Choosing between context.Background() and context.TODO() in Go/Golang",
"url": "https://www.willem.dev/articles/context-todo-or-background/",
"published_at": "2023-04-14T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca9abba930",
"title": "Context cancellation: Don't waste resources on aborted requests in Go/Golang",
"url": "https://www.willem.dev/articles/context-cancellation-explained/",
"published_at": "2023-03-23T00:00:00+00:00"
},
{
"id": "01a08c62-b103-7145-bbf3-8dca8b5be8bf",
"title": "Confused by http.HandlerFunc? This post makes it click - Learn Go/Golang",
"url": "https://www.willem.dev/articles/http-handler-func/",
"published_at": "2023-03-02T00:00:00+00:00"
}
] posts Claim your blog