{"generator":"Jekyll","link":[{"@attributes":{"href":"https:\/\/christianhelle.com\/feed.xml","rel":"self","type":"application\/atom+xml"}},{"@attributes":{"href":"https:\/\/christianhelle.com\/","rel":"alternate","type":"text\/html"}}],"updated":"2026-03-31T14:43:47+00:00","id":"https:\/\/christianhelle.com\/feed.xml","title":"Christian Helle\u2019s Blog","subtitle":"This blog is dedicated to the art of building software. I write about my creations, discoveries, and solutions to problems that I encounter while building software.","entry":[{"title":"Reviving a 15 year old XNA Framework game with MonoGame","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/03\/reviving-15-year-old-xna-framework-game-with-monogame.html","rel":"alternate","type":"text\/html","title":"Reviving a 15 year old XNA Framework game with MonoGame"}},"published":"2026-03-24T00:00:00+00:00","updated":"2026-03-24T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/03\/reviving-15-year-old-xna-framework-game-with-monogame","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"MonoGame"}},{"@attributes":{"term":"XNA"}},{"@attributes":{"term":"Copilot"}},{"@attributes":{"term":"Agents"}},{"@attributes":{"term":".NET"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"From AI-Assisted Code Completion to Agentic Software Engineering","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/03\/from-ai-assisted-code-completion-to-agentic-engineering.html","rel":"alternate","type":"text\/html","title":"From AI-Assisted Code Completion to Agentic Software Engineering"}},"published":"2026-03-17T00:00:00+00:00","updated":"2026-03-17T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/03\/from-ai-assisted-code-completion-to-agentic-engineering","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"AI"}},{"@attributes":{"term":"Copilot"}},{"@attributes":{"term":"Agents"}},{"@attributes":{"term":"Refitter"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"Generate a Changelog from GitHub Actions","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/03\/generate-changelog-from-github-actions.html","rel":"alternate","type":"text\/html","title":"Generate a Changelog from GitHub Actions"}},"published":"2026-03-14T00:00:00+00:00","updated":"2026-03-14T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/03\/generate-changelog-from-github-actions","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"GitHub Actions"}},{"@attributes":{"term":"Changelog"}},{"@attributes":{"term":"CI\/CD"}},{"@attributes":{"term":"Tools"}},{"@attributes":{"term":"Automation"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"ZigFaker - A Zig library to minimize unit testing ceremony","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/03\/zigfaker.html","rel":"alternate","type":"text\/html","title":"ZigFaker - A Zig library to minimize unit testing ceremony"}},"published":"2026-03-08T00:00:00+00:00","updated":"2026-03-08T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/03\/zigfaker","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"Zig"}},{"@attributes":{"term":"Testing"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"Building a web crawler and broken link detector in Zig","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/03\/building-argiope-web-crawler-broken-link-detector.html","rel":"alternate","type":"text\/html","title":"Building a web crawler and broken link detector in Zig"}},"published":"2026-03-05T00:00:00+00:00","updated":"2026-03-05T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/03\/building-argiope-web-crawler-broken-link-detector","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"Zig"}},{"@attributes":{"term":"CLI"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"Modernizing REST API Client Code Generator with the New Visual Studio Extensibility Model","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/02\/building-rest-api-client-code-generator-with-new-vs-extensibility-model.html","rel":"alternate","type":"text\/html","title":"Modernizing REST API Client Code Generator with the New Visual Studio Extensibility Model"}},"published":"2026-02-22T00:00:00+00:00","updated":"2026-02-22T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/02\/building-rest-api-client-code-generator-with-new-vs-extensibility-model","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"Visual Studio"}},{"@attributes":{"term":"REST"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"Building a fast line of code counter app in Zig","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/02\/building-clocz-zig-line-counter.html","rel":"alternate","type":"text\/html","title":"Building a fast line of code counter app in Zig"}},"published":"2026-02-10T00:00:00+00:00","updated":"2026-02-10T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/02\/building-clocz-zig-line-counter","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"Zig"}},{"@attributes":{"term":"CLI"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"Integration Testing REST APIs with .http Files and HTTP File Runner","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2026\/01\/integration-testing-with-httprunner.html","rel":"alternate","type":"text\/html","title":"Integration Testing REST APIs with .http Files and HTTP File Runner"}},"published":"2026-01-26T00:00:00+00:00","updated":"2026-01-26T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2026\/01\/integration-testing-with-httprunner","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"Testing"}},{"@attributes":{"term":"Integration Testing"}},{"@attributes":{"term":"REST"}},{"@attributes":{"term":"HTTP"}},{"@attributes":{"term":"Rust"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"Azure Kusto with Cabazure","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2025\/12\/azure-kusto-with-cabazure.html","rel":"alternate","type":"text\/html","title":"Azure Kusto with Cabazure"}},"published":"2025-12-18T00:00:00+00:00","updated":"2025-12-18T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2025\/12\/azure-kusto-with-cabazure","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"Azure"}},{"@attributes":{"term":"Kusto"}},{"@attributes":{"term":".NET"}}],"summary":{"@attributes":{"type":"html"}}},{"title":"Building a Github Changelog Generator in Zig","link":{"@attributes":{"href":"https:\/\/christianhelle.com\/2025\/11\/building-a-github-changelog-generator-in-zig.html","rel":"alternate","type":"text\/html","title":"Building a Github Changelog Generator in Zig"}},"published":"2025-11-25T00:00:00+00:00","updated":"2025-11-25T00:00:00+00:00","id":"https:\/\/christianhelle.com\/2025\/11\/building-a-github-changelog-generator-in-zig","content":{"@attributes":{"type":"html"}},"author":{"name":"Christian Helle"},"category":[{"@attributes":{"term":"Zig"}},{"@attributes":{"term":"CLI"}}],"summary":{"@attributes":{"type":"html"}}}]}