41554 blogs · [ { "id": "01a08741-c6b6-7176-9f5e-b07d920ef32e", "title": "My year of reading Chinese history", "url": "https://blog.adamchalmers.com/learning-about-chinese-history/", "published_at": "2026-04-03T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d928bfc57", "title": "2025 reflections", "url": "https://blog.adamchalmers.com/2025-reflections/", "published_at": "2026-01-02T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d936d89ad", "title": "I am 34", "url": "https://blog.adamchalmers.com/i-am-34/", "published_at": "2025-11-16T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d93c8c352", "title": "2024 reflections", "url": "https://blog.adamchalmers.com/2024-reflections/", "published_at": "2025-04-01T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d940639a2", "title": "EuroRust 2024 talk: Code as contract as code", "url": "https://blog.adamchalmers.com/eurorust-2024/", "published_at": "2025-01-01T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d94764636", "title": "RustConf 2024 talk: Building a programming language for CAD", "url": "https://blog.adamchalmers.com/rustconf-2024/", "published_at": "2025-01-01T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d95524352", "title": "My Developer Voices interview", "url": "https://blog.adamchalmers.com/developer-voices/", "published_at": "2024-10-30T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d961c3027", "title": "I'm speaking at RustConf 2024!", "url": "https://blog.adamchalmers.com/im-at-rustconf-2024/", "published_at": "2024-09-06T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d967998af", "title": "My Kitty terminal config", "url": "https://blog.adamchalmers.com/kitty-terminal-config/", "published_at": "2024-05-29T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d976cdd02", "title": "Video: My VM and its time-travelling debugger", "url": "https://blog.adamchalmers.com/time-travelling-debugger/", "published_at": "2024-03-22T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d980be3ea", "title": "Free users are incredible", "url": "https://blog.adamchalmers.com/value-of-free-users/", "published_at": "2024-01-02T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d98a1d2ac", "title": "2023 reflections", "url": "https://blog.adamchalmers.com/2023-reflections/", "published_at": "2023-12-23T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9922db51", "title": "Video: Error handling", "url": "https://blog.adamchalmers.com/rust-club-error-handling/", "published_at": "2023-12-21T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d99c47c4f", "title": "Video: Analyzing performance", "url": "https://blog.adamchalmers.com/rust-club-perf-tools/", "published_at": "2023-12-05T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9a1801d3", "title": "Investigating crazy compile times", "url": "https://blog.adamchalmers.com/crazy-compile-time/", "published_at": "2023-11-28T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9a684060", "title": "Video: Parsing a programming language", "url": "https://blog.adamchalmers.com/rust-club-parse-kcl/", "published_at": "2023-11-22T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9a8be731", "title": "Interviewed at Filtra.io", "url": "https://blog.adamchalmers.com/filtra-interview/", "published_at": "2023-11-04T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9a97a15d", "title": "Video: My P99Conf talk on Rust backends", "url": "https://blog.adamchalmers.com/p99-2023/", "published_at": "2023-10-19T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9b95168b", "title": "Video: Parsing text with Winnow", "url": "https://blog.adamchalmers.com/winnow-basics/", "published_at": "2023-10-19T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9c2f5643", "title": "Rustconf 2023 recap", "url": "https://blog.adamchalmers.com/rustconf-2023-recap/", "published_at": "2023-10-02T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9c571112", "title": "Missed opportunities for git aliases", "url": "https://blog.adamchalmers.com/git-aliases/", "published_at": "2023-06-19T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9d3fcedc", "title": "Introduction to HTTP Multipart", "url": "https://blog.adamchalmers.com/multipart/", "published_at": "2023-04-25T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9d989a31", "title": "Why use Rust on the backend?", "url": "https://blog.adamchalmers.com/why-rust-on-backend/", "published_at": "2023-03-19T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9da5c431", "title": "I'm on Rustacean Station", "url": "https://blog.adamchalmers.com/rustacean-station/", "published_at": "2023-02-07T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9e96258e", "title": "Signals vs. Servers", "url": "https://blog.adamchalmers.com/signals-vs-servers/", "published_at": "2023-02-06T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9ecc4b00", "title": "2022 reflections", "url": "https://blog.adamchalmers.com/2022-reflections/", "published_at": "2023-02-05T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9f16bb21", "title": "Illegal satire about Rust", "url": "https://blog.adamchalmers.com/fake-rust-twitter/", "published_at": "2022-11-11T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9ff8fc10", "title": "Solving common problems with Kubernetes", "url": "https://blog.adamchalmers.com/kubernetes-problems/", "published_at": "2022-10-09T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07d9ffc16d4", "title": "Static streams for faster async proxies", "url": "https://blog.adamchalmers.com/streaming-proxy/", "published_at": "2022-08-26T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da0021c19", "title": "What are Rust's HTTP extensions?", "url": "https://blog.adamchalmers.com/what-are-extensions/", "published_at": "2022-07-24T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da0254dbd", "title": "What I learned from making a DNS client in Rust", "url": "https://blog.adamchalmers.com/making-a-dns-client/", "published_at": "2022-04-10T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da04df0b9", "title": "Parsing DNS headers with Nom", "url": "https://blog.adamchalmers.com/nom-dns/", "published_at": "2022-03-11T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da144048a", "title": "Parsing bitstreams with Nom", "url": "https://blog.adamchalmers.com/nom-bits/", "published_at": "2022-02-01T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da14cadea", "title": "Parsing Text with Nom", "url": "https://blog.adamchalmers.com/nom-chars/", "published_at": "2022-01-05T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da1ad5c7b", "title": "Pin, Unpin, and why Rust needs them", "url": "https://blog.adamchalmers.com/pin-unpin/", "published_at": "2021-08-23T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da21a10f9", "title": "Grids in Rust, part 2: const generics", "url": "https://blog.adamchalmers.com/grids-2/", "published_at": "2021-03-24T00:00:00+00:00" }, { "id": "01a08741-c6b6-7176-9f5e-b07da2b56b5a", "title": "Grids in Rust, part 1: nested vs. flat Vecs", "url": "https://blog.adamchalmers.com/grids-1/", "published_at": "2021-03-22T00:00:00+00:00" } ] posts Claim your blog
Back to Adam Chalmers
Blog · corpus.blog/blogs/blog.adamchalmers.com/posts

Adam Chalmers

blog.adamchalmers.com

2026

2025

2024

2023

2022

2021