41554 blogs · [ { "id": "01a08c56-0d4d-7296-a00c-45e46dc89c9c", "title": "Prompt Walkthrough: Fixing my 3D printer with Codex (and Chutes & Ladders!)", "url": "https://timkellogg.me/blog/2026/08/01/printer-example", "published_at": "2026-08-01T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e46e82756f", "title": "Lanius: AI Agents Need an OS, Not a Bigger Brain", "url": "https://timkellogg.me/blog/2026/07/07/lanius", "published_at": "2026-07-07T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e46e847db6", "title": "Ambient Associative Memory", "url": "https://timkellogg.me/blog/2026/05/17/ambient-memory", "published_at": "2026-05-17T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e46ee35ab2", "title": "Agent Memory Patterns", "url": "https://timkellogg.me/blog/2026/04/27/memory-patterns", "published_at": "2026-04-27T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e46f9dd17a", "title": "Shared Nothing Engineering", "url": "https://timkellogg.me/blog/2026/04/25/hot-spots", "published_at": "2026-04-25T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e46fe4f5bc", "title": "How to forget", "url": "https://timkellogg.me/blog/2026/04/14/forgetting", "published_at": "2026-04-14T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e470dce182", "title": "Plan Mode Is A Trap", "url": "https://timkellogg.me/blog/2026/03/08/plan-mode", "published_at": "2026-03-08T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47182a37d", "title": "Stateful Agents: It's About The State, Not The LLM", "url": "https://timkellogg.me/blog/2026/01/31/variety", "published_at": "2026-01-31T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4722f55f7", "title": "The Levels of Agentic Coding", "url": "https://timkellogg.me/blog/2026/01/20/agentic-coding-vsm", "published_at": "2026-01-20T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e472c2435d", "title": "Viable Systems: How To Build a Fully Autonomous Agent", "url": "https://timkellogg.me/blog/2026/01/09/viable-systems", "published_at": "2026-01-09T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47365bee8", "title": "Is Strix Alive?", "url": "https://timkellogg.me/blog/2026/01/01/is-strix-alive", "published_at": "2026-01-01T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e474535e77", "title": "Memory Architecture for a Synthetic Being", "url": "https://timkellogg.me/blog/2025/12/30/memory-arch", "published_at": "2025-12-30T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e474682a59", "title": "What Happens When You Leave an AI Alone?", "url": "https://timkellogg.me/blog/2025/12/24/strix-dead-ends", "published_at": "2025-12-24T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47484236b", "title": "Strix the Stateful Agent", "url": "https://timkellogg.me/blog/2025/12/15/strix", "published_at": "2025-12-15T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4755d5414", "title": "MCP Colors: Systematically deal with prompt injection risk", "url": "https://timkellogg.me/blog/2025/11/03/colors", "published_at": "2025-11-03T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e475c84144", "title": "Agents are Systems Software", "url": "https://timkellogg.me/blog/2025/10/24/systems-software", "published_at": "2025-10-24T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4767f2421", "title": "AI generated code is slop, and that's a good thing", "url": "https://timkellogg.me/blog/2025/10/19/code-slop", "published_at": "2025-10-19T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e476e2e783", "title": "Don't Parse, Call", "url": "https://timkellogg.me/blog/2025/10/03/functions", "published_at": "2025-10-03T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47705046a", "title": "Does AI Get Bored?", "url": "https://timkellogg.me/blog/2025/09/27/boredom", "published_at": "2025-09-27T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4777420b4", "title": "How I Use AI", "url": "https://timkellogg.me/blog/2025/09/15/ai-tools", "published_at": "2025-09-15T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4782c639d", "title": "Link Graveyard: A snapshot of my abandoned browser tabs", "url": "https://timkellogg.me/blog/2025/09/13/link-graveyard", "published_at": "2025-09-13T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e478a2bdab", "title": "GPT-5 failed the wrong test", "url": "https://timkellogg.me/blog/2025/08/08/agents", "published_at": "2025-08-08T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4793feac0", "title": "Explainer: K2 & Math Olympiad Golds", "url": "https://timkellogg.me/blog/2025/07/19/olympiad", "published_at": "2025-07-19T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e479c60630", "title": "Do LLMs understand?", "url": "https://timkellogg.me/blog/2025/07/18/understanding", "published_at": "2025-07-18T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47a9e1375", "title": "Software Engineering", "url": "https://timkellogg.me/blog/2025/06/21/software-engineering", "published_at": "2025-06-21T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47b522f73", "title": "Layers of Memory, Layers of Compression", "url": "https://timkellogg.me/blog/2025/06/15/compression", "published_at": "2025-06-15T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47c35faa7", "title": "A2A Is For UI", "url": "https://timkellogg.me/blog/2025/06/14/a2a", "published_at": "2025-06-14T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47c4f5526", "title": "MCP Resources Are For Caching", "url": "https://timkellogg.me/blog/2025/06/05/mcp-resources", "published_at": "2025-06-05T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47cd3fa14", "title": "Agents Need Responsibility", "url": "https://timkellogg.me/blog/2025/05/25/ai-responsibility", "published_at": "2025-05-25T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47d42a147", "title": "I was wrong: AI Won't Overtake Software Engineering", "url": "https://timkellogg.me/blog/2025/05/15/golden-gate", "published_at": "2025-05-15T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47da7f07e", "title": "I was wrong: AI Won't Overtake Software Engineering", "url": "https://timkellogg.me/blog/2025/05/10/ai-code-updated", "published_at": "2025-05-10T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47df80da5", "title": "MCP is Unnecessary", "url": "https://timkellogg.me/blog/2025/04/27/mcp-is-unnecessary", "published_at": "2025-04-27T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47ef77b5f", "title": "Inner Loop Agents", "url": "https://timkellogg.me/blog/2025/04/19/inner-loops", "published_at": "2025-04-19T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47f430bb2", "title": "LLMs Are Not Security Mitigations", "url": "https://timkellogg.me/blog/2025/04/01/llm-security", "published_at": "2025-04-01T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e47f5212f7", "title": "Multi-Agents Are Out, PID Controllers Are In", "url": "https://timkellogg.me/blog/2025/03/06/pid-controllers", "published_at": "2025-03-06T15:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4800d518e", "title": "MCP Demystified", "url": "https://timkellogg.me/blog/2025/03/06/mcp", "published_at": "2025-03-06T09:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e480d5f8c9", "title": "Target Practice: Resumes, But Better", "url": "https://timkellogg.me/blog/2025/02/20/target-practice", "published_at": "2025-02-20T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4816bebc0", "title": "LLaDA: LLMs That Don't Gaslight You", "url": "https://timkellogg.me/blog/2025/02/17/diffusion", "published_at": "2025-02-17T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4823adffe", "title": "Recursive Improvement: AI Singularity Or Just Benchmark Saturation?", "url": "https://timkellogg.me/blog/2025/02/12/recursive-improvement", "published_at": "2025-02-12T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48330222d", "title": "S1: The $6 R1 Competitor?", "url": "https://timkellogg.me/blog/2025/02/03/s1", "published_at": "2025-02-03T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4836b0e5c", "title": "USA Could Win By Rolling Back AI Export Controls", "url": "https://timkellogg.me/blog/2025/01/28/deepseek", "published_at": "2025-01-28T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e483807817", "title": "Explainer: What's R1 & Everything Else?", "url": "https://timkellogg.me/blog/2025/01/25/r1", "published_at": "2025-01-25T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e483a054be", "title": "Powershell Users Like To Vomit", "url": "https://timkellogg.me/blog/2025/01/05/sh-v-psh", "published_at": "2025-01-05T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4840f31f1", "title": "Normware: The Decline of Software Engineering", "url": "https://timkellogg.me/blog/2025/01/02/normware", "published_at": "2025-01-02T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e484541614", "title": "Explainer: Latent Space Experts", "url": "https://timkellogg.me/blog/2024/12/24/latent-experts", "published_at": "2024-12-24T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e484941209", "title": "AI Engineering Primer", "url": "https://timkellogg.me/blog/2024/12/19/ai-primer", "published_at": "2024-12-19T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e484e065a5", "title": "Is ML Experience A Liability For AI Engineering?", "url": "https://timkellogg.me/blog/2024/12/10/ml-liability", "published_at": "2024-12-10T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e485a43241", "title": "How Can I Be An AI Engineer?", "url": "https://timkellogg.me/blog/2024/12/09/ai-engineer", "published_at": "2024-12-09T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e485c8db0e", "title": "Entrapix: You Should Have A ConfusedAgentError", "url": "https://timkellogg.me/blog/2024/12/08/ollama-entrapix", "published_at": "2024-12-08T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4861158c8", "title": "LRMs Are Interpretable", "url": "https://timkellogg.me/blog/2024/11/21/lrms-are-interpretable", "published_at": "2024-11-21T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48673c6a4", "title": "We need an LSP for AI", "url": "https://timkellogg.me/blog/2024/10/29/lsp-for-ai", "published_at": "2024-10-29T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4873b32e8", "title": "Cursor: How I rollback multi-file changes", "url": "https://timkellogg.me/blog/2024/10/25/cursor-dura", "published_at": "2024-10-25T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e487ae7802", "title": "Why is entropix important?", "url": "https://timkellogg.me/blog/2024/10/20/entropix-part2", "published_at": "2024-10-20T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48813a5e1", "title": "What is entropix doing?", "url": "https://timkellogg.me/blog/2024/10/10/entropix", "published_at": "2024-10-10T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48866c9c9", "title": "I Taught My 8yo Subduction Zones With NotebookLM", "url": "https://timkellogg.me/blog/2024/09/29/notebooklm", "published_at": "2024-09-29T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4891fd7dd", "title": "AI Didn't Write That Bug", "url": "https://timkellogg.me/blog/2024/09/24/ownership", "published_at": "2024-09-24T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e489f75f7f", "title": "Who Wins With Cursor & Copilot?", "url": "https://timkellogg.me/blog/2024/08/31/llm-pairing", "published_at": "2024-08-31T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48a0634d7", "title": "Does Prompt Caching Make RAG Obsolete?", "url": "https://timkellogg.me/blog/2024/08/14/prompt-caching", "published_at": "2024-08-14T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48a40eb74", "title": "Vector Stores Are Dumb", "url": "https://timkellogg.me/blog/2024/08/12/graph-ai", "published_at": "2024-08-12T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48a484cfe", "title": "Accountants Should Do Hackathons!", "url": "https://timkellogg.me/blog/2024/07/26/hackathons", "published_at": "2024-07-26T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48ad45db3", "title": "Mistral: Are LLMs Commodities Now?", "url": "https://timkellogg.me/blog/2024/07/24/mistral", "published_at": "2024-07-24T09:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48bb6abb8", "title": "Why The Llama 3.1 Announcement Is Huge", "url": "https://timkellogg.me/blog/2024/07/23/llama-3.1", "published_at": "2024-07-23T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48c3af045", "title": "Request for Meetings", "url": "https://timkellogg.me/blog/2024/07/12/ai", "published_at": "2024-07-12T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48ccb43ae", "title": "RAG Trick: Embeddings are Spheres", "url": "https://timkellogg.me/blog/2024/07/10/spheres", "published_at": "2024-07-10T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48cceab6e", "title": "How Emotional is Trump?", "url": "https://timkellogg.me/blog/2024/06/26/politics-analysis", "published_at": "2024-06-26T15:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48d0f22e9", "title": "Emopoint: Extract and measure emotion from text", "url": "https://timkellogg.me/blog/2024/06/26/emotions", "published_at": "2024-06-26T09:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48d8537de", "title": "htmx is composable??", "url": "https://timkellogg.me/blog/2024/01/17/htmx", "published_at": "2024-01-17T09:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48e1ac495", "title": "Release: Fossil 0.2", "url": "https://timkellogg.me/blog/2024/01/12/fossil-0.2", "published_at": "2024-01-12T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48ece5e73", "title": "Application Phishing", "url": "https://timkellogg.me/blog/2024/01/11/application-phishing", "published_at": "2024-01-11T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e48f986e33", "title": "Birb + Fossil: An RSS Revival?", "url": "https://timkellogg.me/blog/2024/01/03/birb", "published_at": "2024-01-03T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e490875af8", "title": "Are They Actually Afraid of AI?", "url": "https://timkellogg.me/blog/2023/12/21/alignment", "published_at": "2023-12-21T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49126a4d1", "title": "A Better Mastodon Client", "url": "https://timkellogg.me/blog/2023/12/19/fossil", "published_at": "2023-12-19T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4912c4e95", "title": "LLMs: Fake it till you make it", "url": "https://timkellogg.me/blog/2023/12/07/fake-it", "published_at": "2023-12-07T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49166e043", "title": "LLMs are Interpretable", "url": "https://timkellogg.me/blog/2023/10/01/interpretability", "published_at": "2023-10-01T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4916d57cb", "title": "On Waiting", "url": "https://timkellogg.me/blog/2023/09/14/wu-wei", "published_at": "2023-09-14T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4925b8bd2", "title": "Regex Isn't Hard", "url": "https://timkellogg.me/blog/2023/07/11/regex", "published_at": "2023-07-11T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49325878d", "title": "Sprint Driven Development", "url": "https://timkellogg.me/blog/2022/11/22/sprints", "published_at": "2022-11-22T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49378abea", "title": "Just commit more!", "url": "https://timkellogg.me/blog/2022/10/04/dura", "published_at": "2022-10-04T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49402549e", "title": "Three Plates", "url": "https://timkellogg.me/blog/2022/04/11/three-plates", "published_at": "2022-04-11T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e494b19d73", "title": "Cold Paths", "url": "https://timkellogg.me/blog/2021/01/29/cold-paths", "published_at": "2021-01-29T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e494c6b035", "title": "Why I Don't Share Baby Pictures On Facebook & Twitter", "url": "https://timkellogg.me/blog/2016/11/23/baby-pictures", "published_at": "2016-11-23T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e495366468", "title": "Your Debugger Is Obsolete", "url": "https://timkellogg.me/blog/2016/09/06/debugger-obsolete", "published_at": "2016-09-06T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4959ac3b4", "title": "Websockets Are Not Magical", "url": "https://timkellogg.me/blog/2015/03/01/websockets-are-not-magic", "published_at": "2015-03-01T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e495b753ad", "title": "Can HTTP/2 Replace MQTT?", "url": "https://timkellogg.me/blog/2015/02/20/can-http2-replace-mqtt", "published_at": "2015-02-20T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49624cbdd", "title": "Was C For Hipsters?", "url": "https://timkellogg.me/blog/2015/02/08/history-of-C", "published_at": "2015-02-08T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e496d53c35", "title": "IoT Startups Will Fail Without Standards", "url": "https://timkellogg.me/blog/2015/01/27/iot-needs-standards", "published_at": "2015-01-27T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e497658af6", "title": "ThingMonk 2014: Toward a more intelligent IoT", "url": "https://timkellogg.me/blog/2014/12/05/thingmonk-recap", "published_at": "2014-12-05T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e497e72703", "title": "Why Open Source May Not Always Work For IoT", "url": "https://timkellogg.me/blog/2014/10/20/open-source-iot", "published_at": "2014-10-20T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e4982e41f1", "title": "FP For The Working Programmer: Why Is null Bad?", "url": "https://timkellogg.me/blog/2014/06/24/why-is-null-bad", "published_at": "2014-06-24T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49865dafd", "title": "MQTT - Another Implementor's Perspective", "url": "https://timkellogg.me/blog/2014/06/02/MQTT-another-implementors-perspective", "published_at": "2014-06-02T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e498ecd72b", "title": "Why I'm Not Going To Stop Posting Go Links", "url": "https://timkellogg.me/blog/2014/01/19/I-get-excited-about-go", "published_at": "2014-01-19T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49994878e", "title": "An Unbiased Comparison of F# and Scala", "url": "https://timkellogg.me/blog/2013/06/22/comparing-scala-to-fsharp", "published_at": "2013-06-22T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49a24990a", "title": "The Single Point of Failure", "url": "https://timkellogg.me/blog/2013/06/09/dist-sys-antipatterns", "published_at": "2013-06-09T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49ab2da5e", "title": "Value Types and Memory Usage", "url": "https://timkellogg.me/blog/2012/11/28/sorting-on-value-types", "published_at": "2012-11-28T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49b6b238c", "title": "Jump-Location: autojump for Windows", "url": "https://timkellogg.me/blog/2012/08/21/introducing-Jump-Location", "published_at": "2012-08-21T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49ba9d405", "title": "How to use AutoFactories in StructureMap", "url": "https://timkellogg.me/blog/2012/06/12/AutoFactories-In-StructureMap", "published_at": "2012-06-12T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49be36d21", "title": "Trappings: An easier way to do functional testing", "url": "https://timkellogg.me/blog/2012/06/10/Trappings", "published_at": "2012-06-10T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49cc4481f", "title": "Why don't more developers contribute to open source?", "url": "https://timkellogg.me/blog/2012/05/03/open-source-meetup-group", "published_at": "2012-05-03T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49dabb450", "title": "Why Open Source Is Worth Your Time", "url": "https://timkellogg.me/blog/2012/04/22/why-open-source-is-worth-your-time", "published_at": "2012-04-22T00:00:00+00:00" }, { "id": "01a08c56-0d4d-7296-a00c-45e49e243dd4", "title": "Alternate Code Coverage Metrics", "url": "https://timkellogg.me/blog/2012/04/18/code-coverage-metrics", "published_at": "2012-04-18T00:00:00+00:00" } ] posts Claim your blog
Back to timkellogg.me
Blog · corpus.blog/blogs/timkellogg.me/posts

timkellogg.me

timkellogg.me

2026

2025

2024

2023

2022

2021

2016

2015

2014

2013

2012