41554 blogs · [ { "id": "01a0c52c-147c-71b7-a777-0f395b9519c6", "title": "Giving My AI Agents Access to My RSS Reader", "url": "https://markphelps.me/posts/giving-ai-agents-access-to-rss-reader/", "published_at": "2026-09-20T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3aaa644b5", "title": "Building an LLM-Powered Code Review Sidebar", "url": "https://markphelps.me/posts/building-llm-powered-code-review-sidebar/", "published_at": "2026-03-07T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3ab25e16a", "title": "Running AI Agents in Devcontainers", "url": "https://markphelps.me/posts/running-ai-agents-in-devcontainers/", "published_at": "2026-02-19T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3ab9cbefc", "title": "Dependency Injection Explained", "url": "https://markphelps.me/archive/dependency-injection/", "published_at": "2022-01-15T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3abb69a2f", "title": "Trying Out Generics in Go", "url": "https://markphelps.me/archive/trying-generics-in-go/", "published_at": "2021-12-16T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3ac60b6b5", "title": "Switching My gRPC Project to Use Buf", "url": "https://markphelps.me/archive/switching-my-grpc-project-to-buf/", "published_at": "2021-12-01T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3ace6ae57", "title": "4 Things to Consider When Choosing a Go API Framework", "url": "https://markphelps.me/archive/4-things-choosing-go-api-framework/", "published_at": "2021-11-15T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3ada1bfdc", "title": "Writing Tests for Your Database Code in Go", "url": "https://markphelps.me/archive/db-tests-in-go/", "published_at": "2021-11-04T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3ae6f8426", "title": "Reading 26 Books a Year", "url": "https://markphelps.me/archive/reading-26-books-a-year/", "published_at": "2020-12-30T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3aecc4725", "title": "Handling Errors in Your HTTP Handlers", "url": "https://markphelps.me/archive/handling-errors-in-your-http-handlers/", "published_at": "2020-04-13T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3af1e887a", "title": "Profiling to Reduce Memory Allocations", "url": "https://markphelps.me/archive/profiling-to-reduce-memory-allocations/", "published_at": "2019-11-11T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3afdeea27", "title": "Speed Up Your Go Builds With Actions Cache", "url": "https://markphelps.me/archive/speed-up-your-go-builds-with-actions-cache/", "published_at": "2019-11-01T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b0c55412", "title": "Migrating From Travis to GitHub Actions", "url": "https://markphelps.me/archive/migrating-from-travis-to-github-actions/", "published_at": "2019-09-18T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b15e1d52", "title": "How to Take Three Years to Finish Your Side Project", "url": "https://markphelps.me/archive/how-to-take-three-years-to-finish-your-side-project/", "published_at": "2019-04-20T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b192c006", "title": "Testing API Clients in Go", "url": "https://markphelps.me/archive/testing-api-clients-in-go/", "published_at": "2017-09-24T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b1abeb5f", "title": "Option Types with go generate", "url": "https://markphelps.me/archive/optional-types-with-go-generate/", "published_at": "2017-08-20T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b1f0f97d", "title": "Functions as State", "url": "https://markphelps.me/archive/functions-as-state/", "published_at": "2016-11-03T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b2d334e6", "title": "Writing a Ray Tracer in Go - Part 5", "url": "https://markphelps.me/archive/writing-a-ray-tracer-in-go-5/", "published_at": "2016-07-24T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b360dcd3", "title": "Writing a Ray Tracer in Go - Part 4", "url": "https://markphelps.me/archive/writing-a-ray-tracer-in-go-4/", "published_at": "2016-06-03T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b44a399e", "title": "Writing A Ray Tracer in Go - Part 3", "url": "https://markphelps.me/archive/writing-a-ray-tracer-in-go-3/", "published_at": "2016-05-08T00:00:00+00:00" }, { "id": "01a087a0-8106-725d-8c41-7ca3b5100ab4", "title": "Writing A Ray Tracer in Go - Part 2", "url": "https://markphelps.me/archive/writing-a-ray-tracer-in-go-2/", "published_at": "2016-03-26T00:00:00+00:00" } ] posts Claim your blog
Back to markphelps.me
Blog · corpus.blog/blogs/markphelps.me/posts

markphelps.me

markphelps.me

2026

2022

2021

2020

2019

2017

2016