41554 blogs · [ { "id": "01a08740-d3d8-71f0-ad4b-0008388b586c", "title": "The Wheels We Keep Reinventing", "url": "https://blainsmith.com/articles/reinventing-the-wheel/", "published_at": "2026-07-31T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a1de7228", "title": "Tracing HTTP Requests with Rust", "url": "https://blainsmith.com/articles/tracing-http-requests-with-rust/", "published_at": "2026-07-02T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a24837a5", "title": "Prioritizing Recent Messages with Go Channels", "url": "https://blainsmith.com/articles/prioritizing-recent-messages-with-go-channels/", "published_at": "2026-06-25T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a33a56e4", "title": "RFC 10008: The HTTP QUERY Method", "url": "https://blainsmith.com/articles/rfc-10008-http-query-method/", "published_at": "2026-06-17T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a3a96287", "title": "Tracing HTTP Requests with Go's net/http/httptrace", "url": "https://blainsmith.com/articles/httptrace-with-go/", "published_at": "2026-05-26T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a3c809a2", "title": "Constraints Breed Discipline", "url": "https://blainsmith.com/essays/constraints-breed-discipline/", "published_at": "2026-05-11T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a4c02747", "title": "NATS Pub/Sub in Hare", "url": "https://blainsmith.com/articles/nats-pub-sub-in-hare/", "published_at": "2026-05-10T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a5023627", "title": "Just Fucking Use Go", "url": "https://blainsmith.com/articles/just-fucking-use-go/", "published_at": "2026-05-08T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a51411dc", "title": "Unbounded Concurrency is a Foot Gun", "url": "https://blainsmith.com/articles/unbounded-concurrency-is-a-foot-gun/", "published_at": "2026-04-16T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a59988bb", "title": "Wired for Fairness", "url": "https://blainsmith.com/essays/wired-for-fairness/", "published_at": "2026-04-13T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a5fe9953", "title": "Building Go APIs with Huma, sqlc, and Goose", "url": "https://blainsmith.com/articles/building-go-apis-with-huma-slqc-and-goose/", "published_at": "2026-04-07T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a630f399", "title": "Vendoring Modules in Hare", "url": "https://blainsmith.com/articles/vendoring-modules-in-hare/", "published_at": "2026-03-28T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a71b6484", "title": "Crocker's Rules", "url": "https://blainsmith.com/articles/crockers-rules/", "published_at": "2026-03-23T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a7fb1ee5", "title": "Humanities in the Machine", "url": "https://blainsmith.com/essays/humanities-in-the-machine/", "published_at": "2026-03-13T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a8d6908f", "title": "10th Person", "url": "https://blainsmith.com/articles/10th-person/", "published_at": "2026-02-13T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41a9ced9be", "title": "30 Years of Programming at 44 Years Old", "url": "https://blainsmith.com/articles/30-years-of-programming-at-44-years-old/", "published_at": "2026-01-13T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41aa20fc18", "title": "Read the Fucking Manual", "url": "https://blainsmith.com/articles/read-the-fucking-manual/", "published_at": "2025-11-19T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41aa742194", "title": "How I Write HTTP Servers", "url": "https://blainsmith.com/articles/how-i-write-http-servers/", "published_at": "2025-10-31T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41aab8b87d", "title": "I Don't Care", "url": "https://blainsmith.com/articles/i-dont-care/", "published_at": "2025-10-28T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ab85c959", "title": "Excitement is Relative", "url": "https://blainsmith.com/articles/excitement-is-relative/", "published_at": "2025-09-30T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ac556d58", "title": "AI Coding", "url": "https://blainsmith.com/articles/ai-coding/", "published_at": "2025-09-12T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ad0cc566", "title": "Allergic to Unnecessary Complexity", "url": "https://blainsmith.com/articles/allergic-to-unnecessary-complexity/", "published_at": "2025-08-18T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ad3a7c9c", "title": "Bare Essentials Development Tools", "url": "https://blainsmith.com/articles/bare-essentials-development-tools/", "published_at": "2025-08-01T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ad6be80a", "title": "Software Engineering Discipline and Posture", "url": "https://blainsmith.com/articles/software-engineering-discipline-and-posture/", "published_at": "2025-07-23T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41adfadb73", "title": "Towards Teaching", "url": "https://blainsmith.com/articles/towards-teaching/", "published_at": "2025-07-10T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ae1d7b31", "title": "Introducting: Hare by Example", "url": "https://blainsmith.com/articles/introducing-hare-by-example/", "published_at": "2025-07-02T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41aecf9f18", "title": "Block Non-Human Crawlers with Go", "url": "https://blainsmith.com/articles/block-non-human-crawlers-with-go/", "published_at": "2025-04-23T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41af24d9ae", "title": "Limeleaf Co-op", "url": "https://blainsmith.com/articles/limeleaf-co-op/", "published_at": "2025-01-17T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41af488083", "title": "\"Rot Economy\" and Software Bloat is Increasing the Digital Divide", "url": "https://blainsmith.com/articles/rot-economy-software-bloat-digital-divide/", "published_at": "2024-03-25T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41afd4de6e", "title": "Done", "url": "https://blainsmith.com/articles/done/", "published_at": "2024-03-19T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b01bb46e", "title": "static-httpd", "url": "https://blainsmith.com/articles/static-httpd/", "published_at": "2024-03-01T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b0ac1b5a", "title": "Writing Bitcask in Hare", "url": "https://blainsmith.com/articles/writing-bitcask-in-hare/", "published_at": "2023-10-06T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b16ee099", "title": "Auto-Generating an OpenAPI Specification for gRPC and gRPC Gateway", "url": "https://blainsmith.com/articles/go-grpc-gateway-openapi/", "published_at": "2022-07-29T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b1f1f0c5", "title": "Network Programming with Hare", "url": "https://blainsmith.com/articles/network-programming-with-hare/", "published_at": "2022-05-10T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b2192b55", "title": "40", "url": "https://blainsmith.com/articles/40/", "published_at": "2022-01-13T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b30733ee", "title": "Software I'm Thankful For", "url": "https://blainsmith.com/articles/software-im-thankful-for/", "published_at": "2021-11-29T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b326a3a4", "title": "How I Write HTTP Clients", "url": "https://blainsmith.com/articles/how-i-write-http-clients/", "published_at": "2021-11-09T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b3cd6813", "title": "Why Do You Lift?", "url": "https://blainsmith.com/articles/why-do-you-lift/", "published_at": "2021-08-25T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b4135882", "title": "Programming is Easy, Software Engineering is Hard", "url": "https://blainsmith.com/articles/programming-is-easy-software-engineering-is-hard/", "published_at": "2021-06-15T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b4c94f4b", "title": "Hugo to Zola", "url": "https://blainsmith.com/articles/hugo-to-zola/", "published_at": "2021-03-06T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b530405f", "title": "Easy Profiling Go Benchmark Tests with Bash", "url": "https://blainsmith.com/articles/easy-profiling-go-benchmark-tests-with-bash/", "published_at": "2021-02-18T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b5435f14", "title": "Plain Text Protocols", "url": "https://blainsmith.com/articles/plain-text-protocols/", "published_at": "2020-09-01T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b62c18ac", "title": "Reverting Back to a Simpler Time", "url": "https://blainsmith.com/articles/reverting-back-to-a-simpler-time/", "published_at": "2020-06-23T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b6dd3b4d", "title": "The 20 Year 5 School Bachelor's Degree", "url": "https://blainsmith.com/articles/the-20-year-5-school-bachelors-degree/", "published_at": "2020-05-10T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b6eae8aa", "title": "Signing JWTs with Go's crypto/ed25519", "url": "https://blainsmith.com/articles/signing-jwts-with-gos-crypto-ed25519/", "published_at": "2019-12-07T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b7b77159", "title": "Linux System Metrics with collectd", "url": "https://blainsmith.com/articles/linux-system-metrics-with-collectd/", "published_at": "2018-08-03T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b8506991", "title": "Go Made Me Return to College", "url": "https://blainsmith.com/articles/go-made-me-return-college/", "published_at": "2017-09-12T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b85d8dee", "title": "Fuck Your Hustle", "url": "https://blainsmith.com/articles/fuck-your-hustle/", "published_at": "2017-02-06T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41b92ab1f2", "title": "Go, Go import \"container/list\"!", "url": "https://blainsmith.com/articles/go-go-import-container-list/", "published_at": "2017-02-01T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ba03e6a7", "title": "3 Years at MadGlory", "url": "https://blainsmith.com/articles/3-years-at-madglory/", "published_at": "2015-10-07T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41ba42d6d2", "title": "Side Projects", "url": "https://blainsmith.com/articles/side-projects/", "published_at": "2015-02-27T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41bb0846b6", "title": "Single Command Static File Web Server", "url": "https://blainsmith.com/articles/single-command-static-file-web-server/", "published_at": "2014-03-12T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41bb4fef0b", "title": "Farewell to Harvard and Onward to MadGlory", "url": "https://blainsmith.com/articles/farewell-to-harvard-and-onward-to-madglory/", "published_at": "2012-10-15T00:00:00+00:00" }, { "id": "01a08740-d3d9-728d-87e7-2e41bc28b502", "title": "Convention Over Configuration Web Servers", "url": "https://blainsmith.com/articles/convention-over-configuration-web-servers/", "published_at": "2012-07-13T00:00:00+00:00" } ] posts Claim your blog
Back to Blain Smith
Blog · corpus.blog/blogs/blainsmith.com/posts

Blain Smith

blainsmith.com

2026

2025

2024

19 Mar 2024

2023

2022

13 Jan 2022

2021

2020

2019

2018

2017

2015

2014

2012