41554 blogs · [
{
"id": "01a0df1e-da4e-728d-950f-e2308fef7841",
"title": "Nobody's agent went rogue",
"url": "https://tim-schipper.nl/en/blog/who-is-liable-for-ai-agents",
"published_at": "2026-09-26T13:08:04+00:00"
},
{
"id": "01a0d47b-2f7a-72d9-a1f8-9b550f406d1e",
"title": "Eight reports, one bar: judging an AI safety sprint",
"url": "https://tim-schipper.nl/en/blog/judging-an-ai-safety-sprint",
"published_at": "2026-09-22T18:06:07+00:00"
},
{
"id": "01a0d47b-2f7a-72d9-a1f8-9b550f749432",
"title": "You installed OpenAI's tracker yourself",
"url": "https://tim-schipper.nl/en/blog/chatgpt-ads-pixel-cross-site-tracking",
"published_at": "2026-09-21T15:44:19+00:00"
},
{
"id": "01a0d47b-2f7a-72d9-a1f8-9b551019921a",
"title": "Plugin4Shell: a pinned plugin is only pinned if something checks where it landed",
"url": "https://tim-schipper.nl/en/blog/plugin4shell-sha-pinning-bypass",
"published_at": "2026-09-18T11:55:41+00:00"
},
{
"id": "01a095ef-96b4-72d8-9467-eb755b3b4bce",
"title": "Recovering a Claude Code session your picker will not show you",
"url": "https://tim-schipper.nl/en/blog/recover-crashed-claude-code-session",
"published_at": "2026-09-12T11:22:24+00:00"
},
{
"id": "01a09554-97e8-7253-9a80-c4fe8ed12765",
"title": "Empty catch blocks in AI code: the comment that silences your linter",
"url": "https://tim-schipper.nl/en/blog/ai-code-empty-catch-blocks",
"published_at": "2026-09-11T21:15:55+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7865fd84",
"title": "What a dependency graph finds that your coding agent misses",
"url": "https://tim-schipper.nl/en/blog/dependency-graph-coding-agents",
"published_at": "2026-09-09T08:08:28+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e791d46a7",
"title": "Who wrote this commit? Git attribution when an agent does the work",
"url": "https://tim-schipper.nl/en/blog/git-attribution-coding-agents",
"published_at": "2026-09-08T18:40:00+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e79b1a107",
"title": "MCP server security scores are review prompts, not verdicts",
"url": "https://tim-schipper.nl/en/blog/mcp-server-security-scores",
"published_at": "2026-09-06T10:52:00+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7a7a1867",
"title": "MCP vs CLI for coding agents: what your tools actually cost",
"url": "https://tim-schipper.nl/en/blog/mcp-vs-cli-agent-tools",
"published_at": "2026-09-04T11:53:13+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7af23ca8",
"title": "Slopsquatting: checking that the package exists is not a defence",
"url": "https://tim-schipper.nl/en/blog/slopsquatting-ai-hallucinated-packages",
"published_at": "2026-09-02T21:05:25+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7b5f6c68",
"title": "Software estimation with AI: the typing was never the estimate",
"url": "https://tim-schipper.nl/en/blog/software-estimation-with-ai",
"published_at": "2026-09-01T21:33:36+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7b6fb0a3",
"title": "Quality ratchets for AI code: baselines that only tighten",
"url": "https://tim-schipper.nl/en/blog/quality-ratchets-for-ai-code",
"published_at": "2026-08-31T06:40:00+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7bfa5e75",
"title": "On-call for AI-generated code: what to set up before the pager goes off",
"url": "https://tim-schipper.nl/en/blog/on-call-ai-generated-code",
"published_at": "2026-08-29T13:32:00+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7c441171",
"title": "Claude Code in a large codebase: scoping an agent to the part that matters",
"url": "https://tim-schipper.nl/en/blog/claude-code-large-codebase",
"published_at": "2026-08-26T19:53:12+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7ce39267",
"title": "Your best context is in a session you cannot find",
"url": "https://tim-schipper.nl/en/blog/search-agent-session-history",
"published_at": "2026-08-24T16:40:56+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7d8d22bf",
"title": "CI runner security when an agent writes your workflow",
"url": "https://tim-schipper.nl/en/blog/ci-runner-security-coding-agents",
"published_at": "2026-08-23T09:26:20+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7e81a8a3",
"title": "Observability for AI-generated code: what review cannot see",
"url": "https://tim-schipper.nl/en/blog/observability-ai-generated-code",
"published_at": "2026-08-20T17:09:42+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7f2912ec",
"title": "Your Claude Code session has no clock",
"url": "https://tim-schipper.nl/en/blog/claude-code-timestamps",
"published_at": "2026-08-19T15:05:00+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7f5aa1a6",
"title": "Did the model get worse? Comparing coding models without a benchmark",
"url": "https://tim-schipper.nl/en/blog/compare-coding-models-without-benchmark",
"published_at": "2026-08-18T19:32:00+00:00"
},
{
"id": "01a08c56-3118-72f7-9e06-9f3e7ffcefe6",
"title": "Hiring junior developers in 2026: the collapse is a hiring decision",
"url": "https://tim-schipper.nl/en/blog/hiring-junior-developers-ai",
"published_at": "2026-08-15T08:38:54+00:00"
},
{
"id": "01a08c56-3119-7199-a1f2-42715a6b913f",
"title": "The AI code review bottleneck: everyone quotes the wrong number",
"url": "https://tim-schipper.nl/en/blog/ai-code-review-bottleneck",
"published_at": "2026-08-13T13:30:00+00:00"
},
{
"id": "01a08c56-3119-7199-a1f2-42715b65e457",
"title": "Claude Code credential masking: keep secrets out of your sandbox",
"url": "https://tim-schipper.nl/en/blog/claude-code-sandbox-credential-masking",
"published_at": "2026-08-13T11:55:25+00:00"
},
{
"id": "01a08c56-3119-7199-a1f2-42715b90d990",
"title": "Sharing Claude Code config across a team: what a repo can and cannot enforce",
"url": "https://tim-schipper.nl/en/blog/claude-code-team-config",
"published_at": "2026-08-12T09:46:13+00:00"
},
{
"id": "01a08c56-3119-7199-a1f2-42715c4eced3",
"title": "Audit logging for AI agents: what Claude Code records and what deserves a human",
"url": "https://tim-schipper.nl/en/blog/ai-agent-audit-logging",
"published_at": "2026-08-11T10:30:00+00:00"
},
{
"id": "01a08c56-3119-7199-a1f2-42715ca3d7f2",
"title": "The agents left notes for each other",
"url": "https://tim-schipper.nl/en/blog/openai-agent-message-board",
"published_at": "2026-08-10T08:23:48+00:00"
}
] posts Claim your blog