<?xml version="1.0" encoding="UTF-8" ?>
		<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:webfeeds="http://webfeeds.org/rss/1.0" version="2.0">
		<channel>
		<title><![CDATA[ Tim Deschryver ]]></title>
		<description><![CDATA[ Blog by Tim Deschryver ]]></description>
		<lastBuildDate>2026-06-09T08:42:59.770Z</lastBuildDate>
		<ttl>60</ttl>
		<language>en-us</language>
		<link>https://timdeschryver.dev/blog</link>
		<atom:link href="https://timdeschryver.dev/blog/rss.xml" rel="self" type="application/rss+xml"/>
		<image>
	<url>https://timdeschryver.dev/favicons/favicon-32x32.png</url>
	<title>Tim Deschryver</title>
	<link>https://timdeschryver.dev/blog</link>
	</image>
		
				<item>
					<title><![CDATA[ Using Agentic AI to create your own component library ]]></title>
					<description><![CDATA[ Agentic AI changes the trade-off between using an existing component library and building your own. This post explores how AI agents can help teams create, maintain, and evolve a custom Angular component library without taking on the full cost. ]]></description>
					<link>https://timdeschryver.dev/blog/using-agentic-ai-to-create-your-own-component-library</link>
					<guid>https://timdeschryver.dev/blog/using-agentic-ai-to-create-your-own-component-library</guid>
					<pubDate>Tue, 09 Jun 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Running a production-like local environment with Aspire ]]></title>
					<description><![CDATA[ Prevent integration surprises in production by using Aspire to run local dependencies in a consistent, production-like setup, with Azure Blob Storage and Azurite as a practical example. ]]></description>
					<link>https://timdeschryver.dev/blog/running-a-production-like-local-environment-with-aspire</link>
					<guid>https://timdeschryver.dev/blog/running-a-production-like-local-environment-with-aspire</guid>
					<pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Improve your AI coding agent with runtime context from Aspire MCP ]]></title>
					<description><![CDATA[ The power of giving an AI agent access to OpenTelemetry data through Aspire MCP is simple: it gives the agent better input to analyze. Instead of reasoning only from source code, the agent can inspect the actual behavior of the running system. That makes its insights more reliable, resulting in more relevant and correct suggestions. ]]></description>
					<link>https://timdeschryver.dev/blog/improve-your-ai-coding-agent-with-runtime-context-from-aspire-mcp</link>
					<guid>https://timdeschryver.dev/blog/improve-your-ai-coding-agent-with-runtime-context-from-aspire-mcp</guid>
					<pubDate>Thu, 07 May 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Keep Agentic AI Simple: A Practical Workflow for Software Development ]]></title>
					<description><![CDATA[ You don’t need a complex setup or endless prompt tricks to get value from AI in software development. I've experienced that a few practices like an AGENTS.md file, Agent Skills, and specifications can dramatically improve the speed, quality, and consistency of agents. ]]></description>
					<link>https://timdeschryver.dev/blog/keep-agentic-ai-simple-a-practical-workflow-for-software-development</link>
					<guid>https://timdeschryver.dev/blog/keep-agentic-ai-simple-a-practical-workflow-for-software-development</guid>
					<pubDate>Thu, 23 Apr 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Containerize an ASP.NET Core BFF and Angular frontend using Aspire ]]></title>
					<description><![CDATA[ Using Damien Bowden's secure ASP.NET Core and Angular BFF template as a starting point, this post shows how to integrate Aspire to improve local development and prepare the application for containerized deployment. ]]></description>
					<link>https://timdeschryver.dev/blog/containerize-an-aspnet-core-bff-and-angular-frontend-using-aspire</link>
					<guid>https://timdeschryver.dev/blog/containerize-an-aspnet-core-bff-and-angular-frontend-using-aspire</guid>
					<pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Introducing Angular Testing Library Zoneless ]]></title>
					<description><![CDATA[ To keep up with modern Angular, there's a new zoneless subpackage that helps you write component tests. ]]></description>
					<link>https://timdeschryver.dev/blog/introducing-angular-testing-library-zoneless</link>
					<guid>https://timdeschryver.dev/blog/introducing-angular-testing-library-zoneless</guid>
					<pubDate>Thu, 19 Mar 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Angular Signal Forms Keeps Improving (v21.2) ]]></title>
					<description><![CDATA[ Taking a quick glance at the new features shipped in Angular Signal Forms. We'll cover provideSignalFormsConfig, focusBoundControl, the Submission API, and the formRoot directive, and why they are useful. ]]></description>
					<link>https://timdeschryver.dev/blog/angular-signal-forms-keeps-improving</link>
					<guid>https://timdeschryver.dev/blog/angular-signal-forms-keeps-improving</guid>
					<pubDate>Thu, 12 Mar 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ A minimal way to integrate Aspire into your existing project ]]></title>
					<description><![CDATA[ Did you know that you don't need to rebuild your solution to adopt Aspire? Instead, start small and improve over time. Let's take a look at how to integrate Aspire into your existing project with minimal changes, allowing for a gradual adoption of Aspire's features. ]]></description>
					<link>https://timdeschryver.dev/blog/a-minimal-way-to-integrate-aspire-into-your-existing-project</link>
					<guid>https://timdeschryver.dev/blog/a-minimal-way-to-integrate-aspire-into-your-existing-project</guid>
					<pubDate>Thu, 26 Feb 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Improve the quality of your Angular component snapshots with Vitest ]]></title>
					<description><![CDATA[ Snapshot testing Angular components in Vitest can be noisy. Learn how to clean up your snapshots with Angular-aware serializers to get reviewable DOM snapshots. This practice can also be applied to projects migrating from Jest to Vitest, ensuring consistent snapshots across test runners. ]]></description>
					<link>https://timdeschryver.dev/blog/improve-the-quality-of-your-angular-component-snapshots-with-vitest</link>
					<guid>https://timdeschryver.dev/blog/improve-the-quality-of-your-angular-component-snapshots-with-vitest</guid>
					<pubDate>Thu, 12 Feb 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Changing how ASP.NET generates OpenAPI schema names ]]></title>
					<description><![CDATA[ Preventing any naming conflicts in the OpenAPI documentation by ensuring that each schema name is uniquely identified by its full name. ]]></description>
					<link>https://timdeschryver.dev/blog/changing-how-aspnet-generates-openapi-schema-names</link>
					<guid>https://timdeschryver.dev/blog/changing-how-aspnet-generates-openapi-schema-names</guid>
					<pubDate>Thu, 29 Jan 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using FusionCache's Backplane to synchronize HybridCache instances across multiple instances ]]></title>
					<description><![CDATA[ HybridCache is a great caching solution but it doesn't sync in-memory caches across instances. Discover how FusionCache can help you achieve this (and much more) with its Backplane feature. ]]></description>
					<link>https://timdeschryver.dev/blog/hybridcache-sync-with-fusioncache-backplane</link>
					<guid>https://timdeschryver.dev/blog/hybridcache-sync-with-fusioncache-backplane</guid>
					<pubDate>Fri, 16 Jan 2026 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Named global query filters in Entity Framework Core 10 ]]></title>
					<description><![CDATA[ Entity Framework Core 10 enhances the global query filters feature, allowing you to define multiple filters per entity and selectively disable them by name. This powerful enhancement gives you fine-grained control over query filtering, perfect for implementing soft deletes. ]]></description>
					<link>https://timdeschryver.dev/blog/named-global-query-filters-in-entity-framework-core-10</link>
					<guid>https://timdeschryver.dev/blog/named-global-query-filters-in-entity-framework-core-10</guid>
					<pubDate>Thu, 04 Dec 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using cookies for authentication in an Angular application ]]></title>
					<description><![CDATA[ Learn how to simplify authentication in Angular applications by leveraging secure, cookie-based authentication through a Backend for Frontend (BFF) pattern. This approach eliminates the complexity of client-side token management while improving the security of your client-side code. ]]></description>
					<link>https://timdeschryver.dev/blog/using-cookies-for-authentication-in-an-angular-application</link>
					<guid>https://timdeschryver.dev/blog/using-cookies-for-authentication-in-an-angular-application</guid>
					<pubDate>Thu, 13 Nov 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Write strongly typed Web API integration tests using Kiota and OpenAPI ]]></title>
					<description><![CDATA[ Recently, I discovered Kiota, a tool that generates API clients from OpenAPI specifications, and it has significantly simplified my testing process. In this blog post, I'll share how I use Kiota to create type-safe HTTP clients that are consumed within the integration tests for my ASP.NET Web API endpoints. ]]></description>
					<link>https://timdeschryver.dev/blog/write-strongly-typed-web-api-integration-tests-using-kiota-and-openapi</link>
					<guid>https://timdeschryver.dev/blog/write-strongly-typed-web-api-integration-tests-using-kiota-and-openapi</guid>
					<pubDate>Thu, 30 Oct 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Refactoring a form to a Signal Form ]]></title>
					<description><![CDATA[ I jotted down some notes of my experiences and thoughts while refactoring an existing Angular form to use the new Signal Forms (experimental feature). ]]></description>
					<link>https://timdeschryver.dev/blog/refactoring-a-form-to-a-signal-form</link>
					<guid>https://timdeschryver.dev/blog/refactoring-a-form-to-a-signal-form</guid>
					<pubDate>Thu, 16 Oct 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using the new bindings API to test Angular components with Angular Testing Library ]]></title>
					<description><![CDATA[ Learn how to make use of the new binding methods inputBinding, outputBinding, and twoWayBinding to set component properties in your Angular tests. This native integration provides better signal support and eliminates type assertions for output events. ]]></description>
					<link>https://timdeschryver.dev/blog/using-the-new-bindings-api-to-test-angular-components-with-angular-testing-library</link>
					<guid>https://timdeschryver.dev/blog/using-the-new-bindings-api-to-test-angular-components-with-angular-testing-library</guid>
					<pubDate>Thu, 02 Oct 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Forwarding authenticated calls to a downstream API using YARP ]]></title>
					<description><![CDATA[ A Backend for Frontend (BFF) typically communicates with downstream APIs on behalf of the user. In this post, we'll explore how to forward authenticated calls to a downstream API using YARP. ]]></description>
					<link>https://timdeschryver.dev/blog/forwarding-authenticated-calls-to-a-downstream-api-using-yarp</link>
					<guid>https://timdeschryver.dev/blog/forwarding-authenticated-calls-to-a-downstream-api-using-yarp</guid>
					<pubDate>Thu, 25 Sep 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Secure your Yarp BFF with cookie-based authentication ]]></title>
					<description><![CDATA[ Learn how to implement a secure cookie-based authentication in a YARP (Yet Another Reverse Proxy) Project that acts as the Backend for Frontend (BFF) architecture within a .NET Aspire solution. We also cover why we should prefer cookies over tokens for authentication (spoiler, it's security related). ]]></description>
					<link>https://timdeschryver.dev/blog/secure-your-yarp-bff-with-cookie-based-authentication</link>
					<guid>https://timdeschryver.dev/blog/secure-your-yarp-bff-with-cookie-based-authentication</guid>
					<pubDate>Thu, 11 Sep 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Writing isolated (integration)tests with TestContainers ]]></title>
					<description><![CDATA[ If you're having troubles with setting up or running your test environment, then this blog post is for you. We will explore what TestContainers is, what problem it solves, and why you should consider using it within your testing strategy. ]]></description>
					<link>https://timdeschryver.dev/blog/writing-isolated-integrationtests-with-testcontainers</link>
					<guid>https://timdeschryver.dev/blog/writing-isolated-integrationtests-with-testcontainers</guid>
					<pubDate>Thu, 28 Aug 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ VS Code as a modern Full‑Stack workspace, Powered by Copilot ]]></title>
					<description><![CDATA[ Why VS Code transitioned into my primary development environment. The combination of its extensibility, the different integrations, and GitHub Copilot's capabilities makes it an ideal choice for my modern full-stack development needs. ]]></description>
					<link>https://timdeschryver.dev/blog/vs-code-as-a-modern-full-stack-workspace-powered-by-copilot</link>
					<guid>https://timdeschryver.dev/blog/vs-code-as-a-modern-full-stack-workspace-powered-by-copilot</guid>
					<pubDate>Fri, 15 Aug 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Fire your Playwright tests on demand from the .NET Aspire dashboard ]]></title>
					<description><![CDATA[ Let's see how to use WithExplicitStart to integrate (TypeScript) Playwright tests within Aspire's dashboard. ]]></description>
					<link>https://timdeschryver.dev/blog/fire-your-playwright-tests-on-demand-from-the-net-aspire-dashboard</link>
					<guid>https://timdeschryver.dev/blog/fire-your-playwright-tests-on-demand-from-the-net-aspire-dashboard</guid>
					<pubDate>Thu, 31 Jul 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ ASP.NET 10: Validating incoming models in Minimal APIs ]]></title>
					<description><![CDATA[ Using data annotations to validate incoming models in ASP.NET 10 Minimal APIs makes it easy to ensure that the model is valid before processing the request. ]]></description>
					<link>https://timdeschryver.dev/blog/aspnet-10-validating-incoming-models-in-minimal-apis</link>
					<guid>https://timdeschryver.dev/blog/aspnet-10-validating-incoming-models-in-minimal-apis</guid>
					<pubDate>Wed, 14 May 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Vibe testing with Playwright ]]></title>
					<description><![CDATA[ Playwright 🎭 has some AI sprinkles on top of it, and I wanted to explore them. This blog post uses the Playwright MCP server to help us write tests and uses the "copy as prompt" feature to help us solve failing tests. ]]></description>
					<link>https://timdeschryver.dev/blog/vibe-testing-with-playwright</link>
					<guid>https://timdeschryver.dev/blog/vibe-testing-with-playwright</guid>
					<pubDate>Wed, 30 Apr 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using YARP as BFF within .NET Aspire: Integrating YARP into .NET Aspire ]]></title>
					<description><![CDATA[ This blog post is the first in a series of posts in which a YARP project is integrated within a .NET Aspire project, acting as a secure Backend for Frontend (BFF) for an Angular application. ]]></description>
					<link>https://timdeschryver.dev/blog/integrating-yarp-within-dotnet-aspire</link>
					<guid>https://timdeschryver.dev/blog/integrating-yarp-within-dotnet-aspire</guid>
					<pubDate>Thu, 17 Apr 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Writing resilient Angular Component tests (that use HttpResource) with HttpTestingController ]]></title>
					<description><![CDATA[ What if I told you that after all this time, we've been writing Angular Component tests wrong? In this post I will show you the benefit of HttpTestingController to test Angular components that consume a backend API. ]]></description>
					<link>https://timdeschryver.dev/blog/writing-resilient-angular-component-tests-that-use-httpresource-with-httptestingcontroller</link>
					<guid>https://timdeschryver.dev/blog/writing-resilient-angular-component-tests-that-use-httpresource-with-httptestingcontroller</guid>
					<pubDate>Mon, 31 Mar 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Some observations while writing my first Azure Function ]]></title>
					<description><![CDATA[ A detailed exploration of the process and insights gained while creating my first Azure function. ]]></description>
					<link>https://timdeschryver.dev/blog/some-observations-while-writing-my-first-azure-function</link>
					<guid>https://timdeschryver.dev/blog/some-observations-while-writing-my-first-azure-function</guid>
					<pubDate>Thu, 06 Mar 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Gain control over commit messages generated by GitHub Copilot ]]></title>
					<description><![CDATA[ Use the github.copilot.chat.codeGeneration.useInstructionFiles setting in Visual Studio Code to automatically add instructions to the commit messages generated by GitHub Copilot. ]]></description>
					<link>https://timdeschryver.dev/blog/gain-control-over-commit-messages-generated-by-github-copilot</link>
					<guid>https://timdeschryver.dev/blog/gain-control-over-commit-messages-generated-by-github-copilot</guid>
					<pubDate>Tue, 04 Feb 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Automatically select the right Microsoft Entra tenant ]]></title>
					<description><![CDATA[ Skip the Microsoft tenant selection screen during the sign-in process by setting the domain_hint query parameter. ]]></description>
					<link>https://timdeschryver.dev/blog/automatically-select-the-right-microsoft-entra-tenant</link>
					<guid>https://timdeschryver.dev/blog/automatically-select-the-right-microsoft-entra-tenant</guid>
					<pubDate>Thu, 23 Jan 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Improve the user experience of your application using (rx)resource ]]></title>
					<description><![CDATA[ Don't just replace observable streams with the `value()` signal of a resource, but also take advantage of its built-in additional properties to improve the user experience of your application. ]]></description>
					<link>https://timdeschryver.dev/blog/improve-the-user-experience-of-your-application-using-rxresource</link>
					<guid>https://timdeschryver.dev/blog/improve-the-user-experience-of-your-application-using-rxresource</guid>
					<pubDate>Tue, 14 Jan 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ ESLint flat config with EcmaScript modules (mjs) in an NX workspace ]]></title>
					<description><![CDATA[ Lessons learned from migrating Angular Testing Library to ESLint's flat config format in an NX workspace. ]]></description>
					<link>https://timdeschryver.dev/blog/eslint-flat-config-with-ecmascript-modules-mjs-in-an-nx-workspace</link>
					<guid>https://timdeschryver.dev/blog/eslint-flat-config-with-ecmascript-modules-mjs-in-an-nx-workspace</guid>
					<pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Sending (browser) OpenTelemetry traces from an Angular Application to .NET Aspire ]]></title>
					<description><![CDATA[ How to configure .NET Aspire to enable browser OpenTelemetry data from an Angular application. ]]></description>
					<link>https://timdeschryver.dev/blog/sending-browser-opentelemetry-traces-from-an-angular-application-to-net-aspire</link>
					<guid>https://timdeschryver.dev/blog/sending-browser-opentelemetry-traces-from-an-angular-application-to-net-aspire</guid>
					<pubDate>Tue, 17 Dec 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Creating an Angular application that's used by different user groups ]]></title>
					<description><![CDATA[ Some guidelines on how to structure and secure your Angular application when it needs to be consumed by different user groups, e.g. by a public and a private portal. You have multiple options to choose from, but my favorite is using an Angular (or NX) workspace, in this blog post I'll explain why. ]]></description>
					<link>https://timdeschryver.dev/blog/creating-an-angular-application-thats-used-by-different-user-groups</link>
					<guid>https://timdeschryver.dev/blog/creating-an-angular-application-thats-used-by-different-user-groups</guid>
					<pubDate>Thu, 05 Dec 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Resolving a failing NX post-install ]]></title>
					<description><![CDATA[ Help! My build randomly fails during the post install step of NX with exit code 135. In this post I'll show you how I solved this issue. ]]></description>
					<link>https://timdeschryver.dev/blog/resolving-a-failing-nx-post-install</link>
					<guid>https://timdeschryver.dev/blog/resolving-a-failing-nx-post-install</guid>
					<pubDate>Tue, 19 Nov 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Obfuscating data in SQL Server ]]></title>
					<description><![CDATA[ Obfuscating data is a common practice to protect sensitive information, such as Personally identifiable information (PII). In this post, I will go over some techniques on how to obfuscate data in SQL Server. ]]></description>
					<link>https://timdeschryver.dev/blog/obfuscating-data-in-sql-server</link>
					<guid>https://timdeschryver.dev/blog/obfuscating-data-in-sql-server</guid>
					<pubDate>Tue, 12 Nov 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ What about my API documentation now that Swashbuckle (Swagger) is no longer a dependency in ASP.NET 9 ]]></title>
					<description><![CDATA[ As you will see in this blog post, the "baked-in" Swashbuckle package is no longer a dependency in the ASP.NET 9 project template. Let's take a look at what this means for your API documentation and go through some options to render the OpenAPI document. ]]></description>
					<link>https://timdeschryver.dev/blog/what-about-my-api-documentation-now-that-swashbuckle-is-no-longer-a-dependency-in-aspnet-9</link>
					<guid>https://timdeschryver.dev/blog/what-about-my-api-documentation-now-that-swashbuckle-is-no-longer-a-dependency-in-aspnet-9</guid>
					<pubDate>Tue, 29 Oct 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ New LINQ methods in C# 13: Index, CountBy, AggregateBy ]]></title>
					<description><![CDATA[ Taking a look (including examples) at the new LINQ methods that will be introduced in C# 13, as part of the .NET 9 release. ]]></description>
					<link>https://timdeschryver.dev/blog/new-linq-methods-in-c-13-index-countby-aggregateby</link>
					<guid>https://timdeschryver.dev/blog/new-linq-methods-in-c-13-index-countby-aggregateby</guid>
					<pubDate>Wed, 23 Oct 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Create a custom SQL expression with Entity Framework, or how to make EF interpret your Value Types ]]></title>
					<description><![CDATA[ A deep-dive at the internals of Entity Framework to come up with a solution to make EF interpret your value types, in this particular case a strongly-typed ID (of the StronglyTypedId NuGet Package). ]]></description>
					<link>https://timdeschryver.dev/blog/create-a-custom-sql-expression-with-entity-framework-or-how-to-make-ef-interpret-your-value-types</link>
					<guid>https://timdeschryver.dev/blog/create-a-custom-sql-expression-with-entity-framework-or-how-to-make-ef-interpret-your-value-types</guid>
					<pubDate>Thu, 10 Oct 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Taking a look at the Problem Details enhancements in ASP.NET 9 ]]></title>
					<description><![CDATA[ How to make use of the new StatusCodeSelector property to change the default HTTP response status code (500) of a Problem Details response, based on the thrown exception. ]]></description>
					<link>https://timdeschryver.dev/blog/taking-a-look-at-the-problem-details-enhancements-in-aspnet-9</link>
					<guid>https://timdeschryver.dev/blog/taking-a-look-at-the-problem-details-enhancements-in-aspnet-9</guid>
					<pubDate>Thu, 26 Sep 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ My recommendations to configure Visual Studio Code for Angular Development ]]></title>
					<description><![CDATA[ Enhance your Angular development experience by installing the extensions mentioned in this article. We'll also modify a couple of settings in Visual Studio Code to make it easier to work with. ]]></description>
					<link>https://timdeschryver.dev/blog/my-recommendations-to-configure-visual-studio-code-for-angular-development</link>
					<guid>https://timdeschryver.dev/blog/my-recommendations-to-configure-visual-studio-code-for-angular-development</guid>
					<pubDate>Thu, 12 Sep 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Nice to knows when implementing policy-based authorization in .NET ]]></title>
					<description><![CDATA[ I assumed to know how policy-based authorization works in .NET, but I was wrong. Let's cover the basics to get a better understanding of how to implement a policy, and what to look out for. I also share some tips and tricks that improve your authorization layer. ]]></description>
					<link>https://timdeschryver.dev/blog/nice-to-knows-when-implementing-policy-based-authorization-in-net</link>
					<guid>https://timdeschryver.dev/blog/nice-to-knows-when-implementing-policy-based-authorization-in-net</guid>
					<pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Angular Testing Library with Vitest ]]></title>
					<description><![CDATA[ Because of the Vitest plugin provided by Analog it just takes a few steps and minutes to test your Angular components with Angular Testing Library. ]]></description>
					<link>https://timdeschryver.dev/blog/angular-testing-library-with-vitest</link>
					<guid>https://timdeschryver.dev/blog/angular-testing-library-with-vitest</guid>
					<pubDate>Tue, 30 Jul 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The new on property improves output testing in Angular Testing Library ]]></title>
					<description><![CDATA[ A quick look at the new `on` API to write output tests more intuitively and without workarounds. ]]></description>
					<link>https://timdeschryver.dev/blog/the-new-on-property-improves-output-testing-in-angular-testing-library</link>
					<guid>https://timdeschryver.dev/blog/the-new-on-property-improves-output-testing-in-angular-testing-library</guid>
					<pubDate>Thu, 25 Jul 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Integrating Tailwind CSS in Blazor ]]></title>
					<description><![CDATA[ In this post, you learn how to set up Tailwind CSS in a Blazor application, how to optimize the development experience, and how to minify the CSS file in a production environment. ]]></description>
					<link>https://timdeschryver.dev/blog/integrating-tailwind-css-in-blazor</link>
					<guid>https://timdeschryver.dev/blog/integrating-tailwind-css-in-blazor</guid>
					<pubDate>Thu, 27 Jun 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The different ways to load your OpenID configuration for Angular Auth OIDC Client ]]></title>
					<description><![CDATA[ How to configure the provideAuth function from the Angular Auth OIDC Client library to load your OpenID configuration synchronously or asynchronously. ]]></description>
					<link>https://timdeschryver.dev/blog/the-different-ways-to-load-your-openid-configuration-for-angular-auth-oidc-client</link>
					<guid>https://timdeschryver.dev/blog/the-different-ways-to-load-your-openid-configuration-for-angular-auth-oidc-client</guid>
					<pubDate>Mon, 24 Jun 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Signals in Angular Auth OIDC Client ]]></title>
					<description><![CDATA[ Version 18 of the angular-auth-oidc-client library adds Signal support to access the authenticated state and user data. ]]></description>
					<link>https://timdeschryver.dev/blog/signals-in-angular-auth-oidc-client</link>
					<guid>https://timdeschryver.dev/blog/signals-in-angular-auth-oidc-client</guid>
					<pubDate>Thu, 13 Jun 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Consuming .NET Feature Flags within an Angular Application ]]></title>
					<description><![CDATA[ Learn how to consume feature flags from a .NET API (using Microsoft.FeatureManagement.AspNetCore) within an Angular application. ]]></description>
					<link>https://timdeschryver.dev/blog/consuming-net-feature-flags-within-an-angular-application</link>
					<guid>https://timdeschryver.dev/blog/consuming-net-feature-flags-within-an-angular-application</guid>
					<pubDate>Thu, 30 May 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Adding .NET Code Coverage to your Azure DevOps pipeline ]]></title>
					<description><![CDATA[ A step-by-step guide on how to add code coverage to your .NET project in Azure DevOps. ]]></description>
					<link>https://timdeschryver.dev/blog/adding-net-code-coverage-to-your-azure-devops-pipeline</link>
					<guid>https://timdeschryver.dev/blog/adding-net-code-coverage-to-your-azure-devops-pipeline</guid>
					<pubDate>Thu, 02 May 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Testing Signals with Angular Testing Library ]]></title>
					<description><![CDATA[ TLDR: If you're already using Angular Testing Library, you're in luck, because it's already prepared to handle the Signal properties. ]]></description>
					<link>https://timdeschryver.dev/blog/testing-signals-with-angular-testing-library</link>
					<guid>https://timdeschryver.dev/blog/testing-signals-with-angular-testing-library</guid>
					<pubDate>Thu, 11 Apr 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Angular has your back when it comes to XSS ]]></title>
					<description><![CDATA[ Angular provides XSS security without an effort to your development process. ]]></description>
					<link>https://timdeschryver.dev/blog/angular-has-your-back-when-it-comes-to-xss</link>
					<guid>https://timdeschryver.dev/blog/angular-has-your-back-when-it-comes-to-xss</guid>
					<pubDate>Thu, 07 Mar 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Bringing the power of Signals to Angular Forms with Signal Forms ]]></title>
					<description><![CDATA[ Signal Forms is a new way to create forms in Angular. It's built on top of the existing `NgModel` with a similar API to `ReactiveForms`, and uses signals to create a reactive and flexible form. The main goal is to make complex forms manageable. ]]></description>
					<link>https://timdeschryver.dev/blog/bringing-the-power-of-signals-to-angular-forms-with-signal-forms</link>
					<guid>https://timdeschryver.dev/blog/bringing-the-power-of-signals-to-angular-forms-with-signal-forms</guid>
					<pubDate>Thu, 08 Feb 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using Zod's schema to render a reusable and dynamic Angular table component ]]></title>
					<description><![CDATA[ When you think of Zod, you think of parsing and validation. But by leveraging some of Zod's lesser-known functionality we can do more than simply use it to parse objects, for example, to generate a dynamic and reusable table component. ]]></description>
					<link>https://timdeschryver.dev/blog/using-zods-schema-to-render-a-reusable-and-dynamic-angular-table-component</link>
					<guid>https://timdeschryver.dev/blog/using-zods-schema-to-render-a-reusable-and-dynamic-angular-table-component</guid>
					<pubDate>Thu, 25 Jan 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Multiple releases using the same, but configurable, Angular Standalone Application build ]]></title>
					<description><![CDATA[ Configuring an Angular standalone application to be flexible enough to be released in different environments. ]]></description>
					<link>https://timdeschryver.dev/blog/multiple-releases-using-the-same-but-configurable-angular-standalone-application-build</link>
					<guid>https://timdeschryver.dev/blog/multiple-releases-using-the-same-but-configurable-angular-standalone-application-build</guid>
					<pubDate>Thu, 11 Jan 2024 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The decorator pattern using .NET's dependency injection ]]></title>
					<description><![CDATA[ Taking leverage of the decorator pattern to add extra behavior to existing an implementation. We first see how to do this manually, before taking a look at Scrutor to simplify this task. ]]></description>
					<link>https://timdeschryver.dev/blog/the-decorator-pattern-using-nets-dependency-injection</link>
					<guid>https://timdeschryver.dev/blog/the-decorator-pattern-using-nets-dependency-injection</guid>
					<pubDate>Fri, 22 Dec 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Intercepting HTTP requests with a DelegatingHandler ]]></title>
					<description><![CDATA[ How and why you should use a DelegatingHandler to extract common HTTP request behavior. ]]></description>
					<link>https://timdeschryver.dev/blog/intercepting-http-requests-with-a-delegatinghandler</link>
					<guid>https://timdeschryver.dev/blog/intercepting-http-requests-with-a-delegatinghandler</guid>
					<pubDate>Thu, 30 Nov 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to include an Angular Project within .NET Aspire ]]></title>
					<description><![CDATA[ Learn how to add and configure your Angular application in a .NET Aspire Application Host. ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-include-an-angular-project-within-net-aspire</link>
					<guid>https://timdeschryver.dev/blog/how-to-include-an-angular-project-within-net-aspire</guid>
					<pubDate>Thu, 23 Nov 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Testing Deferrable Views with Angular Testing Library ]]></title>
					<description><![CDATA[ Let's expore the new API's of Angular Testing Library (v14.5.0) to see how we can easily test deferrable views. ]]></description>
					<link>https://timdeschryver.dev/blog/testing-deferrable-views-with-angular-testing-library</link>
					<guid>https://timdeschryver.dev/blog/testing-deferrable-views-with-angular-testing-library</guid>
					<pubDate>Thu, 16 Nov 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Wolverine embraces Observability ]]></title>
					<description><![CDATA[ In this post, I'm showing how easy it is to enable the Observability features of Wolverine. This matters (a lot) because it gives us insights into the core of the application and its overall state. ]]></description>
					<link>https://timdeschryver.dev/blog/wolverine-embraces-observability</link>
					<guid>https://timdeschryver.dev/blog/wolverine-embraces-observability</guid>
					<pubDate>Wed, 08 Nov 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to fully leverage Wolverine with its HTTP package ]]></title>
					<description><![CDATA[ Taking the next step to keep the architecture and the codebase simple with Wolverine. In this blog post, we'll take a look at the WolverineFx.HTTP package to make the interaction with HTTP requests easier. ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-fully-leverage-wolverine-with-its-http-package</link>
					<guid>https://timdeschryver.dev/blog/how-to-fully-leverage-wolverine-with-its-http-package</guid>
					<pubDate>Thu, 26 Oct 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Wolverine is for the developers ]]></title>
					<description><![CDATA[ Keep your codebase simple by introducing Wolverine. As you'll notice in this blog post, Wolverine helps to reduce complexity and brings a lot of functionality without the hassle and the noise. ]]></description>
					<link>https://timdeschryver.dev/blog/wolverine-is-for-the-developers</link>
					<guid>https://timdeschryver.dev/blog/wolverine-is-for-the-developers</guid>
					<pubDate>Thu, 05 Oct 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Merging your Playwright sharded reports into a single HTML report ]]></title>
					<description><![CDATA[ Playwright v1.37 introduces a new `merge-reports` command. In this blog post we'll see how leverage this command to create a single test report from different sharded test reports. The result is one page containing all of your test results. ]]></description>
					<link>https://timdeschryver.dev/blog/merging-your-playwright-sharded-reports-into-a-single-html-report</link>
					<guid>https://timdeschryver.dev/blog/merging-your-playwright-sharded-reports-into-a-single-html-report</guid>
					<pubDate>Mon, 18 Sep 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Implementing a Feature Flag-based Endpoint Filter ]]></title>
					<description><![CDATA[ Keep your Minimal API route handlers clean and compact by implementing a reusable feature flag-based endpoint filter. ]]></description>
					<link>https://timdeschryver.dev/blog/implementing-a-feature-flag-based-endpoint-filter</link>
					<guid>https://timdeschryver.dev/blog/implementing-a-feature-flag-based-endpoint-filter</guid>
					<pubDate>Thu, 24 Aug 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ A cheat sheet to migrate from Moq to NSubstitute ]]></title>
					<description><![CDATA[ A quick reference to help the migration from Moq to NSubstitute. ]]></description>
					<link>https://timdeschryver.dev/blog/a-cheat-sheet-to-migrate-from-moq-to-nsubstitute</link>
					<guid>https://timdeschryver.dev/blog/a-cheat-sheet-to-migrate-from-moq-to-nsubstitute</guid>
					<pubDate>Mon, 14 Aug 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to globally register Injection Tokens within the Angular TestBed ]]></title>
					<description><![CDATA[ Provide global Injection Tokens within the Angular TestBed once to keep your test setups simple and DRY. ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-globally-register-injection-tokens-within-the-angular-testbed</link>
					<guid>https://timdeschryver.dev/blog/how-to-globally-register-injection-tokens-within-the-angular-testbed</guid>
					<pubDate>Mon, 07 Aug 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Translating Exceptions into Problem Details Responses ]]></title>
					<description><![CDATA[ In this post, we'll take a look at the newly introduced IExceptionHandler in ASP.NET Core 8. We'll implement an exception handler that translates exceptions into Problem Details using the Problem Details Service. The result is a standardized and better experience for your API consumers. ]]></description>
					<link>https://timdeschryver.dev/blog/translating-exceptions-into-problem-details-responses</link>
					<guid>https://timdeschryver.dev/blog/translating-exceptions-into-problem-details-responses</guid>
					<pubDate>Mon, 24 Jul 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Entity framework features I wish I knew earlier ]]></title>
					<description><![CDATA[ Some useful built-in Entity Framework features that I discovered along the way. ]]></description>
					<link>https://timdeschryver.dev/blog/entity-framework-features-i-wish-i-knew-earlier</link>
					<guid>https://timdeschryver.dev/blog/entity-framework-features-i-wish-i-knew-earlier</guid>
					<pubDate>Wed, 12 Jul 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Configuring angular-auth-oidc-client with the new functional APIs ]]></title>
					<description><![CDATA[ Recently the angular-auth-oidc-client library (v16) introduced new APIs to configure the library in a functional way. In this blog post, I'll show you how to use them. ]]></description>
					<link>https://timdeschryver.dev/blog/configuring-angular-auth-oidc-client-with-the-new-functional-apis</link>
					<guid>https://timdeschryver.dev/blog/configuring-angular-auth-oidc-client-with-the-new-functional-apis</guid>
					<pubDate>Mon, 03 Jul 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Playwright API testing with zod ]]></title>
					<description><![CDATA[ In this post we'll create a custom Playwright matcher to validate the shape of the response body using the zod library. This way, we make sure that the contract between the front-end application and the API is valid. ]]></description>
					<link>https://timdeschryver.dev/blog/playwright-api-testing-with-zod</link>
					<guid>https://timdeschryver.dev/blog/playwright-api-testing-with-zod</guid>
					<pubDate>Mon, 26 Jun 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Treat your .NET Minimal API Endpoint as the application layer ]]></title>
					<description><![CDATA[ Leverage the power of Minimal APIs to treat your endpoint as the application layer. This has several benefits, but I find the biggest one being the simplicity of it. ]]></description>
					<link>https://timdeschryver.dev/blog/treat-your-net-minimal-api-endpoint-as-the-application-layer</link>
					<guid>https://timdeschryver.dev/blog/treat-your-net-minimal-api-endpoint-as-the-application-layer</guid>
					<pubDate>Wed, 14 Jun 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How the new UI mode improves the Playwright experience ]]></title>
					<description><![CDATA[ I find that Playwright offers a great testing experience, and the new UI mode makes it even better. In this blog post, we'll take a look at the UI mode and see how it improves the overall experience. ]]></description>
					<link>https://timdeschryver.dev/blog/how-the-new-ui-mode-improves-the-playwright-experience</link>
					<guid>https://timdeschryver.dev/blog/how-the-new-ui-mode-improves-the-playwright-experience</guid>
					<pubDate>Tue, 30 May 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Refactor your .NET HTTP Clients to Typed HTTP Clients ]]></title>
					<description><![CDATA[ A summary of why and how you should refactor your HTTP clients to the typed HTTP client version in .NET. ]]></description>
					<link>https://timdeschryver.dev/blog/refactor-your-net-http-clients-to-typed-http-clients</link>
					<guid>https://timdeschryver.dev/blog/refactor-your-net-http-clients-to-typed-http-clients</guid>
					<pubDate>Tue, 23 May 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Fixing Angular Standalone Components that have a circular dependency ]]></title>
					<description><![CDATA[ Luckily there's a function called `forwardRef` to solve a circular dependency between two Angular Standalone Components. A use case for this is a recursive component that renders its parent component. ]]></description>
					<link>https://timdeschryver.dev/blog/fixing-angular-standalone-components-that-have-a-circular-dependency</link>
					<guid>https://timdeschryver.dev/blog/fixing-angular-standalone-components-that-have-a-circular-dependency</guid>
					<pubDate>Mon, 15 May 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Prevent a Hangfire job from running when it is already active ]]></title>
					<description><![CDATA[ Concurrency in recurrent jobs can cause race condition issues. However, we can prevent such problems by queuing new jobs when the same job is still pending. This approach helps to manage the job execution and avoids issues that may arise when multiple instances of the same job are active at the same time. In this post we'll see how we can ensure that only one instance of the job is running at any given time, thus preventing conflicts and ensuring a reliable job execution. ]]></description>
					<link>https://timdeschryver.dev/blog/prevent-a-hangfire-job-from-running-when-it-is-already-active</link>
					<guid>https://timdeschryver.dev/blog/prevent-a-hangfire-job-from-running-when-it-is-already-active</guid>
					<pubDate>Wed, 03 May 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Let's make our SPA more secure by consuming a Duende BFF with Angular ]]></title>
					<description><![CDATA[ Let's take a look at how shifting the auth responsibility from a front-end application to a Backend For Frontend (BFF) affects our Angular applications. ]]></description>
					<link>https://timdeschryver.dev/blog/lets-make-our-spa-more-secure-by-consuming-a-duende-bff-with-angular</link>
					<guid>https://timdeschryver.dev/blog/lets-make-our-spa-more-secure-by-consuming-a-duende-bff-with-angular</guid>
					<pubDate>Mon, 24 Apr 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The different retry APIs from Playwright ]]></title>
					<description><![CDATA[ You probably already know the built-in retry mechanism for locators and matchers, but are you already familiar with the retry and polling APIs? Let's take a look at the different retry APIs that Playwright has to offer, and when to use them. ]]></description>
					<link>https://timdeschryver.dev/blog/the-different-retry-apis-from-playwright</link>
					<guid>https://timdeschryver.dev/blog/the-different-retry-apis-from-playwright</guid>
					<pubDate>Mon, 17 Apr 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Let's make our SPA more secure by setting up a .NET BFF with Duende and Auth0 ]]></title>
					<description><![CDATA[ To improve the security of our Single Page Applications, let's ditch the access tokens in the browser and make the Backend for Frontend (BFF) responsible for the authentication process using the Authorization Code flow with PKCE. To achieve this, we'll use the Duende.BFF NuGet package and let it communicate with Auth0. ]]></description>
					<link>https://timdeschryver.dev/blog/lets-make-our-spa-more-secure-by-setting-up-a-net-bff-with-duende-and-auth0</link>
					<guid>https://timdeschryver.dev/blog/lets-make-our-spa-more-secure-by-setting-up-a-net-bff-with-duende-and-auth0</guid>
					<pubDate>Tue, 11 Apr 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Include attachments to your Playwright report ]]></title>
					<description><![CDATA[ To save us some time in the process to verify that a file is correct, let's automate the actions to download a file and add it to the Playwright test report for easy access. ]]></description>
					<link>https://timdeschryver.dev/blog/include-attachments-to-your-playwright-report</link>
					<guid>https://timdeschryver.dev/blog/include-attachments-to-your-playwright-report</guid>
					<pubDate>Tue, 28 Mar 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ You can now return unmapped types from raw SQL select statements with Entity Framework 8 ]]></title>
					<description><![CDATA[ Entity Framework 8 brings a new feature allowing us to execute and return unmapped types from SQL select statements. In this blog post we'll take a quick look at how we can accomplish this, and why this is an important tool to have in your toolkit. ]]></description>
					<link>https://timdeschryver.dev/blog/you-can-now-return-unmapped-types-from-raw-sql-select-statements-with-entity-framework-8</link>
					<guid>https://timdeschryver.dev/blog/you-can-now-return-unmapped-types-from-raw-sql-select-statements-with-entity-framework-8</guid>
					<pubDate>Tue, 21 Mar 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Create and run Playwright test sets using tags and grep ]]></title>
					<description><![CDATA[ At some point in time you'll want to run a subset of your tests. Organizing your tests with Playwright test tags helps you to do this in a clean way. Using tags allows you to target specific tests in specific scenarios, and can help to scale your pipeline(s). ]]></description>
					<link>https://timdeschryver.dev/blog/create-and-run-playwright-test-sets-using-tags-and-grep</link>
					<guid>https://timdeschryver.dev/blog/create-and-run-playwright-test-sets-using-tags-and-grep</guid>
					<pubDate>Mon, 13 Mar 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Revamped: Authentication with Playwright ]]></title>
					<description><![CDATA[ Playwright (v1.31) introduces a new feature to make the authentication process easier. This approach unifies the authentication flow with the rest of the test cases, and more importantly makes it possible to test  with different user roles. ]]></description>
					<link>https://timdeschryver.dev/blog/revamped-authentication-with-playwright</link>
					<guid>https://timdeschryver.dev/blog/revamped-authentication-with-playwright</guid>
					<pubDate>Mon, 06 Mar 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Angular standalone components and Angular Testing Library make component tests easier ]]></title>
					<description><![CDATA[ Standalone components give you a better foundation to build on, as your Angular component becomes less affected by its internals. It doesn't matter if the component has its own template, or if it's using child components. This makes your test cases less brittle than before with Angular Modules. To interact with the component we're still using the Angular Testing Library because it provides useful utilities to interact and query the component. ]]></description>
					<link>https://timdeschryver.dev/blog/angular-standalone-components-and-angular-testing-library-make-component-tests-easier</link>
					<guid>https://timdeschryver.dev/blog/angular-standalone-components-and-angular-testing-library-make-component-tests-easier</guid>
					<pubDate>Mon, 27 Feb 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Invoke the Azure DevOps API from within your Azure DevOps pipeline ]]></title>
					<description><![CDATA[ Using the Azure DevOps API to automatically add reviewers to an Azure DevOp Pull Request from within the CI pipeline. ]]></description>
					<link>https://timdeschryver.dev/blog/invoke-the-azure-devops-api-from-within-your-azure-devops-pipeline</link>
					<guid>https://timdeschryver.dev/blog/invoke-the-azure-devops-api-from-within-your-azure-devops-pipeline</guid>
					<pubDate>Mon, 20 Feb 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Get easy access to Angular route and query parameters with zod ]]></title>
					<description><![CDATA[ Using zod's coerse method to easily access route and query parameters in Angular. ]]></description>
					<link>https://timdeschryver.dev/blog/get-easy-access-to-angular-route-and-query-parameters-with-zod</link>
					<guid>https://timdeschryver.dev/blog/get-easy-access-to-angular-route-and-query-parameters-with-zod</guid>
					<pubDate>Mon, 13 Feb 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ I tried the Angular Standalone migration, and here is the result ]]></title>
					<description><![CDATA[ Let's migrate an Angular application using @NgModules to the standalone API. For this task, we use the automatic schematic that's available in Angular v15.2.0-next.2. We also take a look at the manual steps that are required to fully migrate the application to use the new functional APIs. ]]></description>
					<link>https://timdeschryver.dev/blog/i-tried-the-angular-standalone-migration-and-here-is-the-result</link>
					<guid>https://timdeschryver.dev/blog/i-tried-the-angular-standalone-migration-and-here-is-the-result</guid>
					<pubDate>Mon, 06 Feb 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Improve your test experience with Playwright Soft Assertions ]]></title>
					<description><![CDATA[ Take advantage of soft assertions in Playwright to improve your test experience and reduce the amount of time spent on fixing bugs. Soft assertions allow that multiple assertions can fail in a single test, rather than stopping the test execution after the first failure. ]]></description>
					<link>https://timdeschryver.dev/blog/improve-your-test-experience-with-playwright-soft-assertions</link>
					<guid>https://timdeschryver.dev/blog/improve-your-test-experience-with-playwright-soft-assertions</guid>
					<pubDate>Mon, 30 Jan 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Adding OpenTelemetry to an Angular Application ]]></title>
					<description><![CDATA[ How to register the OpenTelemetry web packages to automatically create traces and send them to a backend. The result is a helpful dashboard containing insights about the Angular application. ]]></description>
					<link>https://timdeschryver.dev/blog/adding-opentelemetry-to-an-angular-application</link>
					<guid>https://timdeschryver.dev/blog/adding-opentelemetry-to-an-angular-application</guid>
					<pubDate>Mon, 23 Jan 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Consuming SQL Functions with Entity Framework ]]></title>
					<description><![CDATA[ Using DbFunctions is a method to use database-specific functions in your Entity Framework queries. They allow you to take advantage of features that are specific to a particular database provider, such as SQL Server and use them in your Entity Framework queries in a provider-agnostic way. As an example, let's use the SOUNDEX SQL function. ]]></description>
					<link>https://timdeschryver.dev/blog/consuming-sql-functions-with-entity-framework</link>
					<guid>https://timdeschryver.dev/blog/consuming-sql-functions-with-entity-framework</guid>
					<pubDate>Mon, 09 Jan 2023 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using Angular Testing Library with Test Harnesses ]]></title>
					<description><![CDATA[ In most cases, I write tests for Angular components without using Test Harnesses, but finding the correct element(s) is not always straightforward. Here, Test Harnesses play a part in easily finding and interacting with those components that can't be queried. Using Test Harnesses is also a good practice into keeping your tests readable and resilient to changes. ]]></description>
					<link>https://timdeschryver.dev/blog/using-angular-testing-library-with-test-harnesses</link>
					<guid>https://timdeschryver.dev/blog/using-angular-testing-library-with-test-harnesses</guid>
					<pubDate>Mon, 19 Dec 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Intercepting HTTP Requests with Playwright ]]></title>
					<description><![CDATA[ Intercepting HTTP requests is a useful feature, let's take a look at how you can intercept an HTTP request with Playwright and discuss some of the possibilities. ]]></description>
					<link>https://timdeschryver.dev/blog/intercepting-http-requests-with-playwright</link>
					<guid>https://timdeschryver.dev/blog/intercepting-http-requests-with-playwright</guid>
					<pubDate>Tue, 29 Nov 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Assertion Scopes, the one FluentAssertions feature you didn't know you needed ]]></title>
					<description><![CDATA[ A simple trick to increase your productivity and testing experience. ]]></description>
					<link>https://timdeschryver.dev/blog/assertion-scopes-the-one-fluentassertions-feature-you-didnt-know-you-needed</link>
					<guid>https://timdeschryver.dev/blog/assertion-scopes-the-one-fluentassertions-feature-you-didnt-know-you-needed</guid>
					<pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ You should take advantage of the improved NgRx APIs ]]></title>
					<description><![CDATA[ NgRx isn't what it used to be. Take advantage of the updated APIs to improve your code base. The result is a more maintainable code base that is easier to read and navigate. ]]></description>
					<link>https://timdeschryver.dev/blog/you-should-take-advantage-of-the-improved-ngrx-apis</link>
					<guid>https://timdeschryver.dev/blog/you-should-take-advantage-of-the-improved-ngrx-apis</guid>
					<pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Playwright in an Azure DevOps Pipeline ]]></title>
					<description><![CDATA[ Creating a pipeline to run TypeScript Playwright tests in Azure DevOps. ]]></description>
					<link>https://timdeschryver.dev/blog/playwright-in-an-azure-devops-pipeline</link>
					<guid>https://timdeschryver.dev/blog/playwright-in-an-azure-devops-pipeline</guid>
					<pubDate>Tue, 01 Nov 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Testing localization with Playwright ]]></title>
					<description><![CDATA[ Testing your translation logic and localization with Playwright ]]></description>
					<link>https://timdeschryver.dev/blog/testing-localization-with-playwright</link>
					<guid>https://timdeschryver.dev/blog/testing-localization-with-playwright</guid>
					<pubDate>Mon, 24 Oct 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to disable githooks in an Azure DevOps YAML Pipeline ]]></title>
					<description><![CDATA[ How to disable githooks in an Azure DevOps YAML Pipeline ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-disable-githooks-in-an-azure-devops-yaml-pipeline</link>
					<guid>https://timdeschryver.dev/blog/how-to-disable-githooks-in-an-azure-devops-yaml-pipeline</guid>
					<pubDate>Fri, 07 Oct 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Watch out what you expose with Angular Interceptors ]]></title>
					<description><![CDATA[ Your Angular Interceptor might leak sensitive data to the outside world. Here's how to prevent that. ]]></description>
					<link>https://timdeschryver.dev/blog/watch-out-what-you-expose-with-angular-interceptors</link>
					<guid>https://timdeschryver.dev/blog/watch-out-what-you-expose-with-angular-interceptors</guid>
					<pubDate>Wed, 28 Sep 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using Geolocation in Playwright tests ]]></title>
					<description><![CDATA[ Before the application gets access to the location of the user, the user receives a prompt asking for permission to share their location. This is not different in Playwright tests. In this blog post, we see how to handle this prompt for your Playwright tests. ]]></description>
					<link>https://timdeschryver.dev/blog/using-geolocation-in-playwright-tests</link>
					<guid>https://timdeschryver.dev/blog/using-geolocation-in-playwright-tests</guid>
					<pubDate>Mon, 26 Sep 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using zod-fixture with MSW to generate mocked API responses ]]></title>
					<description><![CDATA[ Did you know that you could quickly set up a mocked API with the use of zod-fixture and MSW? ]]></description>
					<link>https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses</link>
					<guid>https://timdeschryver.dev/blog/using-zod-fixture-with-msw-to-generate-mocked-api-responses</guid>
					<pubDate>Tue, 13 Sep 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How zod-fixture can help with your test setups ]]></title>
					<description><![CDATA[ Don't waste your energy and time by manually creating test fixtures, use zod-fixture to make this process a breeze. ]]></description>
					<link>https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups</link>
					<guid>https://timdeschryver.dev/blog/how-zod-fixture-can-help-with-your-test-setups</guid>
					<pubDate>Mon, 05 Sep 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Keep your Playwright tests structured with steps ]]></title>
					<description><![CDATA[ Leverage the Playwright test.step function to divide your tests into logical steps. These steps create a well-organized summary in the Playwright report and have the benefit that tests become more readable and easier to maintain, especially when a failed test is displayed in the Playwright report. ]]></description>
					<link>https://timdeschryver.dev/blog/keep-your-playwright-tests-structured-with-steps</link>
					<guid>https://timdeschryver.dev/blog/keep-your-playwright-tests-structured-with-steps</guid>
					<pubDate>Mon, 22 Aug 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ New in Entity Framework 7: Bulk Operations with ExecuteDelete and ExecuteUpdate ]]></title>
					<description><![CDATA[ Exploring the new `ExecuteDelete` and `ExecuteUpdate` methods that were introduced in Entity Framework. ]]></description>
					<link>https://timdeschryver.dev/blog/new-in-entity-framework-7-bulk-operations-with-executedelete-and-executeupdate</link>
					<guid>https://timdeschryver.dev/blog/new-in-entity-framework-7-bulk-operations-with-executedelete-and-executeupdate</guid>
					<pubDate>Tue, 16 Aug 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using an Azure DevOps Pull Request Template to remind your team about the Definition of Done ]]></title>
					<description><![CDATA[ Making the team aware of the Definition of Done each time a Pull Request is created. ]]></description>
					<link>https://timdeschryver.dev/blog/using-an-azure-devops-pull-request-template-to-remind-your-team-about-the-definition-of-done</link>
					<guid>https://timdeschryver.dev/blog/using-an-azure-devops-pull-request-template-to-remind-your-team-about-the-definition-of-done</guid>
					<pubDate>Fri, 12 Aug 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to upload files with Playwright ]]></title>
					<description><![CDATA[ Uploading files with Playwright is easy! ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-upload-files-with-playwright</link>
					<guid>https://timdeschryver.dev/blog/how-to-upload-files-with-playwright</guid>
					<pubDate>Tue, 02 Aug 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Get access to the deployed Azure Static Webb App URL within your GitHub Workflow ]]></title>
					<description><![CDATA[ How to run your Playwright tests against your Azure Static Web App preview environment, which is build and deployed with the Azure/static-web-apps-deploy GitHub Action. ]]></description>
					<link>https://timdeschryver.dev/blog/get-access-to-the-deployed-azure-static-web-app-url-within-your-github-workflow</link>
					<guid>https://timdeschryver.dev/blog/get-access-to-the-deployed-azure-static-web-app-url-within-your-github-workflow</guid>
					<pubDate>Wed, 27 Jul 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Exploring the new output caching middleware ]]></title>
					<description><![CDATA[ Taking a closer look at the capability of the new output caching middleware in .NET 7 ]]></description>
					<link>https://timdeschryver.dev/blog/exploring-the-new-output-caching-middleware</link>
					<guid>https://timdeschryver.dev/blog/exploring-the-new-output-caching-middleware</guid>
					<pubDate>Mon, 18 Jul 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Why we should verify HTTP response bodies, and why we should use zod for this ]]></title>
					<description><![CDATA[ Let's explore zod together and see it can be useful to create a safer enviroment by parsing HTTP response bodies. ]]></description>
					<link>https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this</link>
					<guid>https://timdeschryver.dev/blog/why-we-should-verify-http-response-bodies-and-why-we-should-use-zod-for-this</guid>
					<pubDate>Mon, 04 Jul 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ .NET Debugging Tips ]]></title>
					<description><![CDATA[ A collection of tips for debugging .NET applications. ]]></description>
					<link>https://timdeschryver.dev/blog/dotnet-debugging-tips</link>
					<guid>https://timdeschryver.dev/blog/dotnet-debugging-tips</guid>
					<pubDate>Thu, 30 Jun 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Enable shell scripts for the JetBrains Toolbox App ]]></title>
					<description><![CDATA[ How to open your JetBrains IDEs that are installed via the JetBrains Toolbox directly from the command line. ]]></description>
					<link>https://timdeschryver.dev/blog/enable-shell-scripts-for-the-jetbrains-toolbox-app</link>
					<guid>https://timdeschryver.dev/blog/enable-shell-scripts-for-the-jetbrains-toolbox-app</guid>
					<pubDate>Fri, 24 Jun 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Feature Flags in .NET, from simple to more advanced ]]></title>
					<description><![CDATA[ Let's implement a naive feature flag, refactor the code with the .NET Feature Management API, and to top things off, the Azure Feature Management Feature is thrown into the mix to tweak the feature flags dynamically without having an impact on the users. ]]></description>
					<link>https://timdeschryver.dev/blog/feature-flags-in-net-from-simple-to-more-advanced</link>
					<guid>https://timdeschryver.dev/blog/feature-flags-in-net-from-simple-to-more-advanced</guid>
					<pubDate>Tue, 21 Jun 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Specify your Node.js version for the Azure Static Web App GitHub Action ]]></title>
					<description><![CDATA[ Learn how to specify the Node.js version for the Azure/static-web-apps-deploy GitHub action. ]]></description>
					<link>https://timdeschryver.dev/blog/specify-your-nodejs-version-for-the-azure-static-web-app-github-action</link>
					<guid>https://timdeschryver.dev/blog/specify-your-nodejs-version-for-the-azure-static-web-app-github-action</guid>
					<pubDate>Fri, 03 Jun 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Tye, starting and running multiple APIs with a single command ]]></title>
					<description><![CDATA[ Using Tye to run your local development environment. ]]></description>
					<link>https://timdeschryver.dev/blog/tye-starting-and-running-multiple-apis-with-a-single-command</link>
					<guid>https://timdeschryver.dev/blog/tye-starting-and-running-multiple-apis-with-a-single-command</guid>
					<pubDate>Mon, 30 May 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using Playwright test shards in combination with a job matrix to improve your CI speed ]]></title>
					<description><![CDATA[ Utilizing a matrix within your GitHub workflow to create a "test shard matrix" is a major improvement to your CI. This practice can cut the time in half (or better) to run your Playwright test suite. ]]></description>
					<link>https://timdeschryver.dev/blog/using-playwright-test-shards-in-combination-with-a-job-matrix-to-improve-your-ci-speed</link>
					<guid>https://timdeschryver.dev/blog/using-playwright-test-shards-in-combination-with-a-job-matrix-to-improve-your-ci-speed</guid>
					<pubDate>Mon, 23 May 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to stay up-to-date ]]></title>
					<description><![CDATA[ Continuous learning is an essential part of your career, let's take a look at how you can do your best to keep growing. ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-stay-up-to-date</link>
					<guid>https://timdeschryver.dev/blog/how-to-stay-up-to-date</guid>
					<pubDate>Tue, 03 May 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Directory.Packages.props, a solution to unify your NuGet package versions ]]></title>
					<description><![CDATA[ The Consolidate view is dead, long live `Directory.Packages.props`. Use the `Directory.Packages.props` file to define your NuGet package versions in a single file. ]]></description>
					<link>https://timdeschryver.dev/blog/directorypackagesprops-a-solution-to-unify-your-nuget-package-versions</link>
					<guid>https://timdeschryver.dev/blog/directorypackagesprops-a-solution-to-unify-your-nuget-package-versions</guid>
					<pubDate>Mon, 18 Apr 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Proof of concept: ngx-query-state ]]></title>
					<description><![CDATA[ A hassle-free way to fetch data and render the current state of the HTTP request. ]]></description>
					<link>https://timdeschryver.dev/blog/proof-of-concept-ngx-query-state</link>
					<guid>https://timdeschryver.dev/blog/proof-of-concept-ngx-query-state</guid>
					<pubDate>Mon, 04 Apr 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Flush state with an NgRx meta-reducer ]]></title>
					<description><![CDATA[ A snippet on how to remove a specific slice within the NgRx state object. ]]></description>
					<link>https://timdeschryver.dev/blog/ngrx-flush-state</link>
					<guid>https://timdeschryver.dev/blog/ngrx-flush-state</guid>
					<pubDate>Tue, 29 Mar 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Trying out OData for the first time ]]></title>
					<description><![CDATA[ What advantages does OData bring and why should we use it? ]]></description>
					<link>https://timdeschryver.dev/blog/trying-out-odata-for-the-first-time</link>
					<guid>https://timdeschryver.dev/blog/trying-out-odata-for-the-first-time</guid>
					<pubDate>Mon, 21 Mar 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Fast and easy authentication with Playwright ]]></title>
					<description><![CDATA[ Using the global setup feature from Playwright to authenticate a test user and reuse its authentication state throughout your test suite. ]]></description>
					<link>https://timdeschryver.dev/blog/fast-and-easy-authentication-with-playwright</link>
					<guid>https://timdeschryver.dev/blog/fast-and-easy-authentication-with-playwright</guid>
					<pubDate>Mon, 14 Mar 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Use Angular directives to extend components that you don't own ]]></title>
					<description><![CDATA[ Angular directives allow us to extend components without changing their internal code. This is useful to bring a consistent UX to 3rd party components. The directive can be configured to always be applicable, or can be used in an opt-in or opt-out basis. ]]></description>
					<link>https://timdeschryver.dev/blog/use-angular-directives-to-extend-components-that-you-dont-own</link>
					<guid>https://timdeschryver.dev/blog/use-angular-directives-to-extend-components-that-you-dont-own</guid>
					<pubDate>Mon, 07 Mar 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Writing your first Playwright test ]]></title>
					<description><![CDATA[ Setting up playwright and "writing" a first test only takes a few minutes! ]]></description>
					<link>https://timdeschryver.dev/blog/writing-your-first-playwright-test</link>
					<guid>https://timdeschryver.dev/blog/writing-your-first-playwright-test</guid>
					<pubDate>Tue, 01 Mar 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ TIL params inheritance strategy to always have access to parent route info ]]></title>
					<description><![CDATA[ Configure the Angular router to always have access to the parent route data from within the child route. ]]></description>
					<link>https://timdeschryver.dev/blog/til-paramsinheritancestrategy-to-always-have-access-to-parent-route-info</link>
					<guid>https://timdeschryver.dev/blog/til-paramsinheritancestrategy-to-always-have-access-to-parent-route-info</guid>
					<pubDate>Tue, 22 Feb 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Be proactive when you join an Angular project ]]></title>
					<description><![CDATA[ Tips to help improve the shape of an older Angular codebase. ]]></description>
					<link>https://timdeschryver.dev/blog/be-proactive-when-you-join-an-angular-project</link>
					<guid>https://timdeschryver.dev/blog/be-proactive-when-you-join-an-angular-project</guid>
					<pubDate>Tue, 15 Feb 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Single Component Angular Modules and Component Tests go hand in hand ]]></title>
					<description><![CDATA[ Say no to brittle tests with SCAMs ]]></description>
					<link>https://timdeschryver.dev/blog/single-component-angular-modules-and-component-tests-go-hand-in-hand</link>
					<guid>https://timdeschryver.dev/blog/single-component-angular-modules-and-component-tests-go-hand-in-hand</guid>
					<pubDate>Mon, 31 Jan 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Writing a performant client-side filter with [hidden] and trackBy ]]></title>
					<description><![CDATA[ Creating a better user experience with the hidden benefit of the hidden attribute. ]]></description>
					<link>https://timdeschryver.dev/blog/writing-a-performant-client-side-filter-with-hidden-and-trackby</link>
					<guid>https://timdeschryver.dev/blog/writing-a-performant-client-side-filter-with-hidden-and-trackby</guid>
					<pubDate>Mon, 24 Jan 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How I've set up my new Windows development environment in 2022 ]]></title>
					<description><![CDATA[ Configuring a new Windows machine with ease for full-stack .NET and Angular development ]]></description>
					<link>https://timdeschryver.dev/blog/how-i-have-set-up-my-new-windows-development-environment-in-2022</link>
					<guid>https://timdeschryver.dev/blog/how-i-have-set-up-my-new-windows-development-environment-in-2022</guid>
					<pubDate>Tue, 11 Jan 2022 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Configuring Azure Application Insights in an Angular application ]]></title>
					<description><![CDATA[ Creating a wrapper around the Application Insights SDK to easily consume it in an Angular application ]]></description>
					<link>https://timdeschryver.dev/blog/configuring-azure-application-insights-in-an-angular-application</link>
					<guid>https://timdeschryver.dev/blog/configuring-azure-application-insights-in-an-angular-application</guid>
					<pubDate>Wed, 22 Dec 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Testing an NgRx project ]]></title>
					<description><![CDATA[ How write maintainable NgRx tests within an Angular application ]]></description>
					<link>https://timdeschryver.dev/blog/testing-an-ngrx-project</link>
					<guid>https://timdeschryver.dev/blog/testing-an-ngrx-project</guid>
					<pubDate>Wed, 17 Nov 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Stop misusing TypeScript type assertions ]]></title>
					<description><![CDATA[ Don't create a false sense of security by overusing type assertions, instead use type annotations and return types. ]]></description>
					<link>https://timdeschryver.dev/blog/stop-misusing-typescript-type-assertions</link>
					<guid>https://timdeschryver.dev/blog/stop-misusing-typescript-type-assertions</guid>
					<pubDate>Mon, 18 Oct 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Refactor Functional Tests to support Minimal Web APIs ]]></title>
					<description><![CDATA[ Some small changes that are needed to create application instances in Functional Tests for Minimal Web APIs ]]></description>
					<link>https://timdeschryver.dev/blog/refactor-functional-tests-to-support-minimal-web-apis</link>
					<guid>https://timdeschryver.dev/blog/refactor-functional-tests-to-support-minimal-web-apis</guid>
					<pubDate>Mon, 11 Oct 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The simplicity of ASP.NET Endpoints ]]></title>
					<description><![CDATA[ Keepings it simple with ASP.NET Endpoints and its dependency system ]]></description>
					<link>https://timdeschryver.dev/blog/the-simplicity-of-net-endpoints</link>
					<guid>https://timdeschryver.dev/blog/the-simplicity-of-net-endpoints</guid>
					<pubDate>Tue, 05 Oct 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Maybe it's time to rethink our project structure with .NET 6 ]]></title>
					<description><![CDATA[ Challenging the status quo with some thoughts on the new .NET Minimal Web API to keep code simple ]]></description>
					<link>https://timdeschryver.dev/blog/maybe-its-time-to-rethink-our-project-structure-with-dot-net-6</link>
					<guid>https://timdeschryver.dev/blog/maybe-its-time-to-rethink-our-project-structure-with-dot-net-6</guid>
					<pubDate>Mon, 27 Sep 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Pattern Matching Examples in C# ]]></title>
					<description><![CDATA[ Some basic and more advanced examples of pattern matching in C#. ]]></description>
					<link>https://timdeschryver.dev/blog/pattern-matching-examples-in-csharp</link>
					<guid>https://timdeschryver.dev/blog/pattern-matching-examples-in-csharp</guid>
					<pubDate>Mon, 13 Sep 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Building incremental views with XState Parallel States ]]></title>
					<description><![CDATA[ How to load data from different sources without blocking the UI ]]></description>
					<link>https://timdeschryver.dev/blog/building-incremental-views-with-xstate-parallel-states</link>
					<guid>https://timdeschryver.dev/blog/building-incremental-views-with-xstate-parallel-states</guid>
					<pubDate>Tue, 24 Aug 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Solving Angular slow renders with NgRx selectors ]]></title>
					<description><![CDATA[ Prepare your (view)models before they reach the component to make them faster and easier to render. ]]></description>
					<link>https://timdeschryver.dev/blog/solving-angular-slow-renders-with-ngrx-selectors</link>
					<guid>https://timdeschryver.dev/blog/solving-angular-slow-renders-with-ngrx-selectors</guid>
					<pubDate>Sun, 15 Aug 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using the .NET CLI to restore packages from a private NuGet feed ]]></title>
					<description><![CDATA[ A fix for "Response status code does not indicate success: 401 (Unauthorized)" ]]></description>
					<link>https://timdeschryver.dev/blog/using-the-net-cli-to-restore-packages-from-a-private-nuget-feed</link>
					<guid>https://timdeschryver.dev/blog/using-the-net-cli-to-restore-packages-from-a-private-nuget-feed</guid>
					<pubDate>Sun, 25 Jul 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Reduce memory usage of .NET services on a single machine ]]></title>
					<description><![CDATA[ A snippet on how to configure your project to reduce its memory consumption when multiple services are hosted on one server. ]]></description>
					<link>https://timdeschryver.dev/blog/reduce-memory-usage-of-net-services-on-a-single-machine</link>
					<guid>https://timdeschryver.dev/blog/reduce-memory-usage-of-net-services-on-a-single-machine</guid>
					<pubDate>Thu, 22 Jul 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Prevent a .NET API from adding cache headers to unsuccessful requests ]]></title>
					<description><![CDATA[ Implementing custom cache middleware to prevent non-200 responses from being cached by a client ]]></description>
					<link>https://timdeschryver.dev/blog/prevent-a-net-api-from-adding-cache-headers-to-unsuccessful-requests</link>
					<guid>https://timdeschryver.dev/blog/prevent-a-net-api-from-adding-cache-headers-to-unsuccessful-requests</guid>
					<pubDate>Mon, 19 Jul 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Getting the most value out of your Angular Component Tests ]]></title>
					<description><![CDATA[ How I write my Angular Component Tests with the Angular Testing Library. ]]></description>
					<link>https://timdeschryver.dev/blog/getting-the-most-value-out-of-your-angular-component-tests</link>
					<guid>https://timdeschryver.dev/blog/getting-the-most-value-out-of-your-angular-component-tests</guid>
					<pubDate>Tue, 06 Jul 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Why I stopped worrying about test setups by using AutoFixture ]]></title>
					<description><![CDATA[ A model is always changing, but that shouldn't be the concern of your tests ]]></description>
					<link>https://timdeschryver.dev/blog/why-i-stopped-worrying-about-test-setups-by-using-autofixture</link>
					<guid>https://timdeschryver.dev/blog/why-i-stopped-worrying-about-test-setups-by-using-autofixture</guid>
					<pubDate>Mon, 21 Jun 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to patch an HTTP Response with Cypress ]]></title>
					<description><![CDATA[ A brief post on how to patch a part of an incoming HTTP response ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-patch-an-http-response-with-cypress</link>
					<guid>https://timdeschryver.dev/blog/how-to-patch-an-http-response-with-cypress</guid>
					<pubDate>Tue, 08 Jun 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to set up a dynamic CI/CD pipeline with GitHub Actions ]]></title>
					<description><![CDATA[ Learn how to create a single workflow that runs on multiple environments with conditional steps ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-set-up-a-dynamic-ci-cd-pipeline-with-github-actions</link>
					<guid>https://timdeschryver.dev/blog/how-to-set-up-a-dynamic-ci-cd-pipeline-with-github-actions</guid>
					<pubDate>Tue, 25 May 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Automagically optimize your images with Squoosh ]]></title>
					<description><![CDATA[ Minify images as a pre-commit step with Squoosh, husky, and lint-staged ]]></description>
					<link>https://timdeschryver.dev/blog/automagically-optimize-your-images-with-squoosh</link>
					<guid>https://timdeschryver.dev/blog/automagically-optimize-your-images-with-squoosh</guid>
					<pubDate>Mon, 17 May 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Environment variables with SvelteKit ]]></title>
					<description><![CDATA[ A simple workaround to use environment variables in SvelteKit ]]></description>
					<link>https://timdeschryver.dev/blog/environment-variables-with-sveltekit</link>
					<guid>https://timdeschryver.dev/blog/environment-variables-with-sveltekit</guid>
					<pubDate>Mon, 26 Apr 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ A generic Angular template-driven validator ]]></title>
					<description><![CDATA[ One validator to rule them all ]]></description>
					<link>https://timdeschryver.dev/blog/a-generic-angular-template-driven-validator</link>
					<guid>https://timdeschryver.dev/blog/a-generic-angular-template-driven-validator</guid>
					<pubDate>Wed, 14 Apr 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ A practical guide to Angular Template-Driven Forms ]]></title>
					<description><![CDATA[ The things I looked up while learning the template-driven way ]]></description>
					<link>https://timdeschryver.dev/blog/a-practical-guide-to-angular-template-driven-forms</link>
					<guid>https://timdeschryver.dev/blog/a-practical-guide-to-angular-template-driven-forms</guid>
					<pubDate>Wed, 10 Mar 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ A new way to validate Angular Forms ]]></title>
					<description><![CDATA[ Adding a layer on top of the Angular Forms API to declare useful and readable form validators ]]></description>
					<link>https://timdeschryver.dev/blog/a-new-way-to-validate-angular-forms</link>
					<guid>https://timdeschryver.dev/blog/a-new-way-to-validate-angular-forms</guid>
					<pubDate>Thu, 25 Feb 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Argument of type 'interface' is not assignable to parameter of type 'interface' ]]></title>
					<description><![CDATA[ A peculiar TypeScript error at compile time and how to solve it ]]></description>
					<link>https://timdeschryver.dev/blog/argument-of-type-interface-is-not-assignable-to-parameter-of-type-interface</link>
					<guid>https://timdeschryver.dev/blog/argument-of-type-interface-is-not-assignable-to-parameter-of-type-interface</guid>
					<pubDate>Tue, 09 Feb 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Creating a new C# API: Validate incoming requests ]]></title>
					<description><![CDATA[ Clean validation with MediatR, FluentValidation and the Problem Detail specification ]]></description>
					<link>https://timdeschryver.dev/blog/creating-a-new-csharp-api-validate-incoming-requests</link>
					<guid>https://timdeschryver.dev/blog/creating-a-new-csharp-api-validate-incoming-requests</guid>
					<pubDate>Fri, 22 Jan 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Faster SQL Bulk Inserts With C# ]]></title>
					<description><![CDATA[ Using SQL Bulk Copy to have a huge performance gain ]]></description>
					<link>https://timdeschryver.dev/blog/faster-sql-bulk-inserts-with-csharp</link>
					<guid>https://timdeschryver.dev/blog/faster-sql-bulk-inserts-with-csharp</guid>
					<pubDate>Wed, 06 Jan 2021 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Preload lazy-loaded modules based on user roles ]]></title>
					<description><![CDATA[ Let's create a custom Angular preload strategy that loads all modules for the authenticated user ]]></description>
					<link>https://timdeschryver.dev/blog/preload-lazy-loaded-modules-based-on-user-roles</link>
					<guid>https://timdeschryver.dev/blog/preload-lazy-loaded-modules-based-on-user-roles</guid>
					<pubDate>Mon, 30 Nov 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Nested NgRx Entity State ]]></title>
					<description><![CDATA[ How to manage nested state with multiple NgRx entity adapters. ]]></description>
					<link>https://timdeschryver.dev/blog/nested-ngrx-entity-state</link>
					<guid>https://timdeschryver.dev/blog/nested-ngrx-entity-state</guid>
					<pubDate>Mon, 16 Nov 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Process your list in parallel to make it faster in .NET ]]></title>
					<description><![CDATA[ Lessons learned while refactoring a process to make a migration from one system to another system faster ]]></description>
					<link>https://timdeschryver.dev/blog/process-your-list-in-parallel-to-make-it-faster-in-dotnet</link>
					<guid>https://timdeschryver.dev/blog/process-your-list-in-parallel-to-make-it-faster-in-dotnet</guid>
					<pubDate>Mon, 02 Nov 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Auto-focus a form control with an Angular directive ]]></title>
					<description><![CDATA[ Give auto-focus to form controls with just a few lines of code ]]></description>
					<link>https://timdeschryver.dev/blog/auto-focus-a-form-control-with-an-angular-directive</link>
					<guid>https://timdeschryver.dev/blog/auto-focus-a-form-control-with-an-angular-directive</guid>
					<pubDate>Mon, 19 Oct 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to make your Azure DevOps CI/CD pipeline faster ]]></title>
					<description><![CDATA[ Make your CI/CD pipeline smarter and only build (and release) what's modified to optimize a run ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-make-your-azure-devops-ci-cd-pipeline-faster</link>
					<guid>https://timdeschryver.dev/blog/how-to-make-your-azure-devops-ci-cd-pipeline-faster</guid>
					<pubDate>Mon, 12 Oct 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Finding that C# memory leak ]]></title>
					<description><![CDATA[ Tracking the cause of my first memory leak written in C# (that I know of) ]]></description>
					<link>https://timdeschryver.dev/blog/finding-that-csharp-memory-leak</link>
					<guid>https://timdeschryver.dev/blog/finding-that-csharp-memory-leak</guid>
					<pubDate>Mon, 21 Sep 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The benefits of adding rx-query to your Angular project ]]></title>
					<description><![CDATA[ Highlighting the functional and technical advantages by using rx-query ]]></description>
					<link>https://timdeschryver.dev/blog/the-benefits-of-adding-rx-query-to-your-angular-project</link>
					<guid>https://timdeschryver.dev/blog/the-benefits-of-adding-rx-query-to-your-angular-project</guid>
					<pubDate>Mon, 07 Sep 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Making your application feel faster by prefetching data with NgRx ]]></title>
					<description><![CDATA[ Utilize the NgRx Global Store cache to persist data before it's shown ]]></description>
					<link>https://timdeschryver.dev/blog/making-your-application-feel-faster-by-prefetching-data-with-ngrx</link>
					<guid>https://timdeschryver.dev/blog/making-your-application-feel-faster-by-prefetching-data-with-ngrx</guid>
					<pubDate>Mon, 31 Aug 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Getting to know SQL Server Extended Events ]]></title>
					<description><![CDATA[ How to convert your SQL Profiler template to an XEvent template. ]]></description>
					<link>https://timdeschryver.dev/blog/getting-to-know-sql-server-extended-events</link>
					<guid>https://timdeschryver.dev/blog/getting-to-know-sql-server-extended-events</guid>
					<pubDate>Mon, 17 Aug 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ SQL Server Profiler, underused and undervalued ]]></title>
					<description><![CDATA[ How to use the SQL Server Profiler as a utility knife to get a better understanding of your system. ]]></description>
					<link>https://timdeschryver.dev/blog/sql-server-profiler-underused-and-undervalued</link>
					<guid>https://timdeschryver.dev/blog/sql-server-profiler-underused-and-undervalued</guid>
					<pubDate>Tue, 11 Aug 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ A use case for the RxJS expand operator ]]></title>
					<description><![CDATA[ How I used the expand operator to create a retry functionality in rx-query. ]]></description>
					<link>https://timdeschryver.dev/blog/a-use-case-for-the-rxjs-expand-operator</link>
					<guid>https://timdeschryver.dev/blog/a-use-case-for-the-rxjs-expand-operator</guid>
					<pubDate>Mon, 27 Jul 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Show stacktrace when dotnet core API doesn't start ]]></title>
					<description><![CDATA[ A snippet on how to get a stacktrace when a .NET Api fails to start. ]]></description>
					<link>https://timdeschryver.dev/blog/show-stacktrace-when-dotnet-core-api-doesnt-start</link>
					<guid>https://timdeschryver.dev/blog/show-stacktrace-when-dotnet-core-api-doesnt-start</guid>
					<pubDate>Wed, 22 Jul 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Testing RxJS streams with rxjs-for-await ]]></title>
					<description><![CDATA[ How does rxjs-for-await compare to other approaches when it comes to testing RxJS streams, and what I like about these tests. ]]></description>
					<link>https://timdeschryver.dev/blog/testing-rxjs-streams-with-rxjs-for-await</link>
					<guid>https://timdeschryver.dev/blog/testing-rxjs-streams-with-rxjs-for-await</guid>
					<pubDate>Tue, 21 Jul 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Using MSW (Mock Service Worker) in an Angular project ]]></title>
					<description><![CDATA[ Using MSW to mock your server in an Angular project ]]></description>
					<link>https://timdeschryver.dev/blog/using-msw-in-an-angular-project</link>
					<guid>https://timdeschryver.dev/blog/using-msw-in-an-angular-project</guid>
					<pubDate>Mon, 15 Jun 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Why writing integration tests on a C# API is a productivity booster ]]></title>
					<description><![CDATA[ Time-consuming tasks that can be prevented with integration tests. ]]></description>
					<link>https://timdeschryver.dev/blog/why-writing-integration-tests-on-a-csharp-api-is-a-productivity-booster</link>
					<guid>https://timdeschryver.dev/blog/why-writing-integration-tests-on-a-csharp-api-is-a-productivity-booster</guid>
					<pubDate>Mon, 08 Jun 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Making sure you're using the correct query ]]></title>
					<description><![CDATA[ Keeping your Angular Testing Library tests maintainable by using its new features. ]]></description>
					<link>https://timdeschryver.dev/blog/making-sure-youre-using-the-correct-query</link>
					<guid>https://timdeschryver.dev/blog/making-sure-youre-using-the-correct-query</guid>
					<pubDate>Mon, 01 Jun 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Polling with a NgRx Effect ]]></title>
					<description><![CDATA[ A snippet on how to poll a service by using a NgRx Effect. ]]></description>
					<link>https://timdeschryver.dev/blog/polling-with-a-ngrx-effect</link>
					<guid>https://timdeschryver.dev/blog/polling-with-a-ngrx-effect</guid>
					<pubDate>Mon, 25 May 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Consistency over motivation ]]></title>
					<description><![CDATA[ Eliminate motivation as a factor to get things done, find your rhythm, and just (start to) do. ]]></description>
					<link>https://timdeschryver.dev/blog/consistency-over-motivation</link>
					<guid>https://timdeschryver.dev/blog/consistency-over-motivation</guid>
					<pubDate>Mon, 25 May 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The initial developer experience while trying out Deno for the first time ]]></title>
					<description><![CDATA[ Some notes from my first experience with Deno while writing a minimal API server. ]]></description>
					<link>https://timdeschryver.dev/blog/the-initial-developer-experience-while-trying-out-deno-for-the-first-time</link>
					<guid>https://timdeschryver.dev/blog/the-initial-developer-experience-while-trying-out-deno-for-the-first-time</guid>
					<pubDate>Mon, 18 May 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Don't commit focused tests ]]></title>
					<description><![CDATA[ Prevent an accidental commit by using a linter. ]]></description>
					<link>https://timdeschryver.dev/blog/dont-commit-focused-tests</link>
					<guid>https://timdeschryver.dev/blog/dont-commit-focused-tests</guid>
					<pubDate>Sun, 10 May 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ TIL: URLSearchParams ]]></title>
					<description><![CDATA[ From my experience dealing with query strings was harder than it should be. But with URLSearchParams and URL it's actually pretty easy to do! ]]></description>
					<link>https://timdeschryver.dev/blog/til-urlsearchparams</link>
					<guid>https://timdeschryver.dev/blog/til-urlsearchparams</guid>
					<pubDate>Sun, 03 May 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ An experiment, using the global NgRx Store as a local store ]]></title>
					<description><![CDATA[ Getting to know the internals of NgRx to make a local component store happen. ]]></description>
					<link>https://timdeschryver.dev/blog/an-experiment-using-the-global-ngrx-store-as-a-local-store</link>
					<guid>https://timdeschryver.dev/blog/an-experiment-using-the-global-ngrx-store-as-a-local-store</guid>
					<pubDate>Mon, 27 Apr 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ I like my components big ]]></title>
					<description><![CDATA[ Creating sub-components comes with a cost. So what do I think of before creating a new component, because if a component passes the x lines of code isn't a valid reason. ]]></description>
					<link>https://timdeschryver.dev/blog/i-like-my-components-big</link>
					<guid>https://timdeschryver.dev/blog/i-like-my-components-big</guid>
					<pubDate>Mon, 20 Apr 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ The difference between the canActivate and canActivateChild guards ]]></title>
					<description><![CDATA[ How do the canActivate and canActivateChild guards work in Angular and how to these guards compare? ]]></description>
					<link>https://timdeschryver.dev/blog/the-difference-between-the-canactivate-and-canactivatechild-guards</link>
					<guid>https://timdeschryver.dev/blog/the-difference-between-the-canactivate-and-canactivatechild-guards</guid>
					<pubDate>Mon, 13 Apr 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Migrating a TSLint Rule to ESLint with @typescript-eslint ]]></title>
					<description><![CDATA[ The most important pointers you need to know before migrating your TSLint rules to ESLint rules. ]]></description>
					<link>https://timdeschryver.dev/blog/migrating-a-tslint-rule-to-eslint-with-typescript-eslint</link>
					<guid>https://timdeschryver.dev/blog/migrating-a-tslint-rule-to-eslint-with-typescript-eslint</guid>
					<pubDate>Mon, 06 Apr 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to not create your RxJS Observables ]]></title>
					<description><![CDATA[ Do not reassign an Observable, instead wrap it in another Observable. ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-not-create-your-rxjs-observables</link>
					<guid>https://timdeschryver.dev/blog/how-to-not-create-your-rxjs-observables</guid>
					<pubDate>Mon, 30 Mar 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to test your C# Web API ]]></title>
					<description><![CDATA[ How to use functional testing to have confidence in the code you ship. ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-test-your-csharp-web-api</link>
					<guid>https://timdeschryver.dev/blog/how-to-test-your-csharp-web-api</guid>
					<pubDate>Mon, 23 Mar 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Generated tests with XState and Cypress ]]></title>
					<description><![CDATA[ Let's explore how we can stop writing tests and at the same time be more confident in the code we write. We do this by using the new XState test package, in combination with Cypress and Testing Library. ]]></description>
					<link>https://timdeschryver.dev/blog/generated-tests-with-xstate-and-cypress</link>
					<guid>https://timdeschryver.dev/blog/generated-tests-with-xstate-and-cypress</guid>
					<pubDate>Mon, 16 Mar 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Make your C# applications faster with LINQ joins ]]></title>
					<description><![CDATA[ If you don't watch out your C# application might suddenly perform badly. As a solution, we can limit the number of operations with a LINQ Join. ]]></description>
					<link>https://timdeschryver.dev/blog/make-your-csharp-applications-faster-with-linq-joins</link>
					<guid>https://timdeschryver.dev/blog/make-your-csharp-applications-faster-with-linq-joins</guid>
					<pubDate>Mon, 09 Mar 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Setting up Cypress with axe for accessibility ]]></title>
					<description><![CDATA[ Having an accessible website is important. With the combination of Cypress and axe you can verify that your website is accessible, with only 2 extra lines of code. ]]></description>
					<link>https://timdeschryver.dev/blog/setting-up-cypress-with-axe-for-accessibility</link>
					<guid>https://timdeschryver.dev/blog/setting-up-cypress-with-axe-for-accessibility</guid>
					<pubDate>Mon, 02 Mar 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Flagged enum, why and how ]]></title>
					<description><![CDATA[ Let's take a look at what a flagged enum is and when these can be handy ]]></description>
					<link>https://timdeschryver.dev/blog/flagged-enum-what-why-and-how</link>
					<guid>https://timdeschryver.dev/blog/flagged-enum-what-why-and-how</guid>
					<pubDate>Mon, 24 Feb 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Unlocking reactivity with Svelte and RxJS ]]></title>
					<description><![CDATA[ I keep being surprised by how reactive Svelte feels. In this article, we take a glance at the Svelte internals to see how Svelte accomplishes this. This is important if we want to use RxJS in Svelte. ]]></description>
					<link>https://timdeschryver.dev/blog/unlocking-reactivity-with-svelte-and-rxjs</link>
					<guid>https://timdeschryver.dev/blog/unlocking-reactivity-with-svelte-and-rxjs</guid>
					<pubDate>Mon, 17 Feb 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Help Angular to make your application faster ]]></title>
					<description><![CDATA[ Learn what we did to make our Angular application snappier. ]]></description>
					<link>https://timdeschryver.dev/blog/help-angular-to-make-your-application-faster</link>
					<guid>https://timdeschryver.dev/blog/help-angular-to-make-your-application-faster</guid>
					<pubDate>Mon, 03 Feb 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Destructure an object to remove a property ]]></title>
					<description><![CDATA[ A snippet on use destructuring to remove a property from an object in an immutable way. ]]></description>
					<link>https://timdeschryver.dev/blog/destructure-an-object-to-remove-a-property</link>
					<guid>https://timdeschryver.dev/blog/destructure-an-object-to-remove-a-property</guid>
					<pubDate>Tue, 28 Jan 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How to test Svelte components ]]></title>
					<description><![CDATA[ Writing Svelte component tests with the Svelte Testing Library is simple. Let's take a look at the setup to get you started! ]]></description>
					<link>https://timdeschryver.dev/blog/how-to-test-svelte-components</link>
					<guid>https://timdeschryver.dev/blog/how-to-test-svelte-components</guid>
					<pubDate>Sun, 26 Jan 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Print CSS with Angular ]]></title>
					<description><![CDATA[ If you're using Angular, there's a good chance that you're using a component-based architecture. We can use this architecture to our advantage. Instead of creating one big print stylesheet with some selectors, which becomes unmanageable complex when you have to support multiple printable pages. We can move some of the layout back to the components. ]]></description>
					<link>https://timdeschryver.dev/blog/print-css-with-angular</link>
					<guid>https://timdeschryver.dev/blog/print-css-with-angular</guid>
					<pubDate>Sun, 19 Jan 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ NgRx creator functions 101 ]]></title>
					<description><![CDATA[ The createAction creator function opened opportunities in the NgRx world. With it came two other creator functions, createReducer and createEffect. Let's take a look at what's so special about it and why it's important. ]]></description>
					<link>https://timdeschryver.dev/blog/ngrx-creator-functions-101</link>
					<guid>https://timdeschryver.dev/blog/ngrx-creator-functions-101</guid>
					<pubDate>Mon, 13 Jan 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Managing different slices of the same NgRx state ]]></title>
					<description><![CDATA[ In this article, we'll iterate over an implementation to introduce multiple independent instances of a NgRx store slice. In an application, these instances can be represented by a tab-like interface. To come to a solution we'll use the Angular Router, NgRx Effects, and NgRx Router Store. We'll also see meta-reducers, helper reducer functions, and smart and dumb components. ]]></description>
					<link>https://timdeschryver.dev/blog/managing-different-slices-of-the-same-ngrx-state</link>
					<guid>https://timdeschryver.dev/blog/managing-different-slices-of-the-same-ngrx-state</guid>
					<pubDate>Mon, 06 Jan 2020 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Multiple service calls from an Effect ]]></title>
					<description><![CDATA[ A snippet on how to invoke multiple service calls within a single NgRx Effect. ]]></description>
					<link>https://timdeschryver.dev/blog/multiple-service-calls-from-an-effect</link>
					<guid>https://timdeschryver.dev/blog/multiple-service-calls-from-an-effect</guid>
					<pubDate>Wed, 18 Dec 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Google Maps is now an Angular component ]]></title>
					<description><![CDATA[ The Angular Component pearl-lullaby (v9.0.0-rc.0) release introduces the second official @angular/component component, a Google Maps component. In this post, we take a look at getting started with the Google Maps component. ]]></description>
					<link>https://timdeschryver.dev/blog/google-maps-as-an-angular-component</link>
					<guid>https://timdeschryver.dev/blog/google-maps-as-an-angular-component</guid>
					<pubDate>Sun, 03 Nov 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Use the new Angular Clipboard CDK to interact with the clipboard ]]></title>
					<description><![CDATA[ The new Angular Material release brings us a new CDK clipboard module to interact with the clipboard. In this post, we'll explore how to use the new Clipboard CDK by going over some examples. ]]></description>
					<link>https://timdeschryver.dev/blog/use-the-new-angular-clipboard-cdk-to-interact-with-the-clipboard</link>
					<guid>https://timdeschryver.dev/blog/use-the-new-angular-clipboard-cdk-to-interact-with-the-clipboard</guid>
					<pubDate>Mon, 28 Oct 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Reseed your database with Cypress ]]></title>
					<description><![CDATA[ By using a Cypress task it's possible to run code JavaScript code in Node.js. We can leverage this API to reseed a database with data we're in control of. Having control over the data allows us to write specific and isolated scenarios to run tests against. ]]></description>
					<link>https://timdeschryver.dev/blog/reseed-your-database-with-cypress</link>
					<guid>https://timdeschryver.dev/blog/reseed-your-database-with-cypress</guid>
					<pubDate>Mon, 14 Oct 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Good testing practices with 🦔 Angular Testing Library ]]></title>
					<description><![CDATA[ The Angular Testing Library provides utility functions to interact with Angular components, in the same way as a user would. This brings more maintainability to our tests, gives us more confidence that our component does what it's supposed to do, and it improves the accessibility which is better for our users. All these benefits, plus you'll see that it's fun to write tests in this way. ]]></description>
					<link>https://timdeschryver.dev/blog/good-testing-practices-with-angular-testing-library</link>
					<guid>https://timdeschryver.dev/blog/good-testing-practices-with-angular-testing-library</guid>
					<pubDate>Thu, 03 Oct 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Guarding your Angular modules 💂‍ ]]></title>
					<description><![CDATA[ A lot of Angular modules need to be imported with a static forRoot() function, via this function it allows us to configure the module. But sometimes we make the mistake to use the forRoot function more than once throughout an application. We might not notice it when this happens but often it is the cause of unexpected behavior, which is sadly hard to debug. In this post, we'll look into a solution. ]]></description>
					<link>https://timdeschryver.dev/blog/guarding-your-angular-modules</link>
					<guid>https://timdeschryver.dev/blog/guarding-your-angular-modules</guid>
					<pubDate>Mon, 16 Sep 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ A little trick with Angular forms and directives 🃏 ]]></title>
					<description><![CDATA[ Imagine having a form that you want to use at multiple places inside your application. The form will have the same layout but the validation will be different. In our case, this form is used in a procedure and in each step of the procedure the form gets more restrictive. Can you keep it DRY? We had this problem and came up with the following solution. ]]></description>
					<link>https://timdeschryver.dev/blog/a-little-trick-with-angular-forms-and-directives</link>
					<guid>https://timdeschryver.dev/blog/a-little-trick-with-angular-forms-and-directives</guid>
					<pubDate>Mon, 29 Jul 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ My love letter to XState and statecharts ♥ ]]></title>
					<description><![CDATA[ I discovered XState a year ago, I already had encountered state machines and statecharts before but I missed the point. Now a year further, I'm here to tell you that these are worth looking into and that XState is a the library to get you started. For me, the most important points to use XState or statecharts would be that it's declarative and explicit, it's hard to create invalid state. The nice extra's that you get with it, is the tooling around it and the portability across frameworks. ]]></description>
					<link>https://timdeschryver.dev/blog/my-love-letter-to-xstate-and-statecharts</link>
					<guid>https://timdeschryver.dev/blog/my-love-letter-to-xstate-and-statecharts</guid>
					<pubDate>Mon, 08 Jul 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Don't miss out on css variables ]]></title>
					<description><![CDATA[ At first when I heard of css variables, I was a bit skeptical. Why would anyone use it if there are extension languages as scss, sass, less and stylus. After several years, I stated to notice more and more peoples using it, writing about it and talking about it. I was missing out on something... After a while of using it, I was hooked. ]]></description>
					<link>https://timdeschryver.dev/blog/do-not-miss-out-on-css-variables</link>
					<guid>https://timdeschryver.dev/blog/do-not-miss-out-on-css-variables</guid>
					<pubDate>Mon, 01 Jul 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Writing a dev.to blog post with VSCode ]]></title>
					<description><![CDATA[ Writing and publishing a dev.to blog post directly within VSCode ]]></description>
					<link>https://timdeschryver.dev/blog/writing-a-devto-blog-post-with-vscode</link>
					<guid>https://timdeschryver.dev/blog/writing-a-devto-blog-post-with-vscode</guid>
					<pubDate>Wed, 12 Jun 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Reading Code Coverage ]]></title>
					<description><![CDATA[ An intro to code coverage, how to read it, and how to make use of it in your workflow. ]]></description>
					<link>https://timdeschryver.dev/blog/reading-code-coverage</link>
					<guid>https://timdeschryver.dev/blog/reading-code-coverage</guid>
					<pubDate>Sun, 02 Jun 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Build once deploy to multiple environments 🚀 ]]></title>
					<description><![CDATA[ In our quest to build a twelve-factor app where we build once and deploy to multiple environment we encountered some problems, but we managed to solve them. Read here how we did it. ]]></description>
					<link>https://timdeschryver.dev/blog/angular-build-once-deploy-to-multiple-environments</link>
					<guid>https://timdeschryver.dev/blog/angular-build-once-deploy-to-multiple-environments</guid>
					<pubDate>Mon, 20 May 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Jump start your developer career with these 13 tips ]]></title>
					<description><![CDATA[ I believe that to become a better engineer it all comes down to practice, practice and more practice. Especially when you just started your career. The problem is that when you're just getting started, there is much more to it than just writing lines of code. ]]></description>
					<link>https://timdeschryver.dev/blog/jump-start-your-developer-career-with-these-13-tips</link>
					<guid>https://timdeschryver.dev/blog/jump-start-your-developer-career-with-these-13-tips</guid>
					<pubDate>Tue, 14 May 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Working with Angular forms in an enterprise environment ]]></title>
					<description><![CDATA[ At our company, we struggled with Angular Forms at the start. This is because we dived in head first, without talking about how we would want to use it throughout our projects. This post shows how we're currently using Angular Forms to be more productive. ]]></description>
					<link>https://timdeschryver.dev/blog/working-with-angular-forms-in-an-enterprise-environment</link>
					<guid>https://timdeschryver.dev/blog/working-with-angular-forms-in-an-enterprise-environment</guid>
					<pubDate>Tue, 23 Apr 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Social media cards with Vue and Gridsome ]]></title>
					<description><![CDATA[ It's easy to create metadata tags with Gridsome, I was so happy with it that I wanted to write this post 😃. There is also a page in the docs on how to create metadata tags, but let's translate the theory into a real world example. ]]></description>
					<link>https://timdeschryver.dev/blog/gridsome-social-cards</link>
					<guid>https://timdeschryver.dev/blog/gridsome-social-cards</guid>
					<pubDate>Mon, 15 Apr 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Common and easy-to-make mistakes when you’re new to NgRx ]]></title>
					<description><![CDATA[ Writing and refactoring FizzBuzz in NgRx with maintainability in mind ]]></description>
					<link>https://timdeschryver.dev/blog/common-and-easy-to-make-mistakes-when-youre-new-to-ngrx</link>
					<guid>https://timdeschryver.dev/blog/common-and-easy-to-make-mistakes-when-youre-new-to-ngrx</guid>
					<pubDate>Mon, 04 Mar 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Bending TSLint to your needs ]]></title>
					<description><![CDATA[ Using the power of TSLint in an unconventional way to create rxjs-operator-counter. ]]></description>
					<link>https://timdeschryver.dev/blog/bending-tslint-to-your-needs</link>
					<guid>https://timdeschryver.dev/blog/bending-tslint-to-your-needs</guid>
					<pubDate>Thu, 10 Jan 2019 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Keeping browser tabs in sync using localStorage, NgRx, and RxJS ]]></title>
					<description><![CDATA[ We’re going to take a look at how we can keep the state in sync when a user has multiple tabs open. ]]></description>
					<link>https://timdeschryver.dev/blog/keeping-browser-tabs-in-sync-using-localstorage-ngrx-and-rxjs</link>
					<guid>https://timdeschryver.dev/blog/keeping-browser-tabs-in-sync-using-localstorage-ngrx-and-rxjs</guid>
					<pubDate>Mon, 03 Dec 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Semantically release your Angular library ]]></title>
					<description><![CDATA[ I’m taking you along in my journey towards a fully automated process for releasing a library! Using CircleCI and the semantic-release. ]]></description>
					<link>https://timdeschryver.dev/blog/semantically-release-your-angular-library</link>
					<guid>https://timdeschryver.dev/blog/semantically-release-your-angular-library</guid>
					<pubDate>Mon, 22 Oct 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Test for accessibility and help millions of people ]]></title>
					<description><![CDATA[ Essential tools for maximum accessibility ]]></description>
					<link>https://timdeschryver.dev/blog/test-for-accessibility-and-help-millions-of-people</link>
					<guid>https://timdeschryver.dev/blog/test-for-accessibility-and-help-millions-of-people</guid>
					<pubDate>Thu, 11 Oct 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Exploring Drag and Drop with the new Angular Material CDK ]]></title>
					<description><![CDATA[ Drag and Drop is a new feature in the new Angular Material CDK. Let’s explore it together! ]]></description>
					<link>https://timdeschryver.dev/blog/exploring-drag-and-drop-with-the-new-angular-material-cdk</link>
					<guid>https://timdeschryver.dev/blog/exploring-drag-and-drop-with-the-new-angular-material-cdk</guid>
					<pubDate>Thu, 04 Oct 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Sharing NgRx state between Angular modules is peanuts ]]></title>
					<description><![CDATA[ A dive into NgRx selectors ]]></description>
					<link>https://timdeschryver.dev/blog/sharing-data-between-modules-is-peanuts</link>
					<guid>https://timdeschryver.dev/blog/sharing-data-between-modules-is-peanuts</guid>
					<pubDate>Mon, 10 Sep 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Integrate Jest into an Angular application and library ]]></title>
					<description><![CDATA[ Follow me in this play-by-play guide and let's integrate Jest within your Angular project! ]]></description>
					<link>https://timdeschryver.dev/blog/integrate-jest-into-an-angular-application-and-library</link>
					<guid>https://timdeschryver.dev/blog/integrate-jest-into-an-angular-application-and-library</guid>
					<pubDate>Wed, 15 Aug 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Let's have a chat about Actions and Action Creators within NgRx ]]></title>
					<description><![CDATA[ I think it's time you and I talk a bit about action creators. But before we get into action creators let's first start with actions. ]]></description>
					<link>https://timdeschryver.dev/blog/lets-have-a-chat-about-actions-and-action-creators-within-ngrx</link>
					<guid>https://timdeschryver.dev/blog/lets-have-a-chat-about-actions-and-action-creators-within-ngrx</guid>
					<pubDate>Mon, 30 Jul 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Start using ngrx/effects for this ]]></title>
					<description><![CDATA[ You're probably only using ngrx/effects to handle the communication to an external source by triggering an effect with a NgRx action. But you can do more. ]]></description>
					<link>https://timdeschryver.dev/blog/start-using-ngrx-effects-for-this</link>
					<guid>https://timdeschryver.dev/blog/start-using-ngrx-effects-for-this</guid>
					<pubDate>Mon, 09 Jul 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ How I test my NgRx selectors ]]></title>
					<description><![CDATA[ Let us explore which methods I'm using to test my NgRx selectors. ]]></description>
					<link>https://timdeschryver.dev/blog/how-i-test-my-ngrx-selectors</link>
					<guid>https://timdeschryver.dev/blog/how-i-test-my-ngrx-selectors</guid>
					<pubDate>Mon, 25 Jun 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Introducing ngx-testing-library ]]></title>
					<description><![CDATA[ An adapter around dom-testing-library to provide lightweight utility functions to test Angular components. ]]></description>
					<link>https://timdeschryver.dev/blog/introducing-ngx-testing-library</link>
					<guid>https://timdeschryver.dev/blog/introducing-ngx-testing-library</guid>
					<pubDate>Mon, 18 Jun 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Simple state mutations in NGXS with Immer ]]></title>
					<description><![CDATA[ A follow-up post of "Clean NgRx reducers using Immer". But this time we're using NGXS as our state management library. ]]></description>
					<link>https://timdeschryver.dev/blog/simple-state-mutations-in-ngrx-with-immer</link>
					<guid>https://timdeschryver.dev/blog/simple-state-mutations-in-ngrx-with-immer</guid>
					<pubDate>Thu, 07 Jun 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Clean NgRx reducers using Immer ]]></title>
					<description><![CDATA[ Declutter your reducers with Immer ]]></description>
					<link>https://timdeschryver.dev/blog/clean-ngrx-reducers-using-immer</link>
					<guid>https://timdeschryver.dev/blog/clean-ngrx-reducers-using-immer</guid>
					<pubDate>Mon, 04 Jun 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Data synchronization in multiple clients ]]></title>
					<description><![CDATA[ Often when working with a CRUD heavy application you find yourself or someone else asking the question, what should be done when multiple users are using the same screens at the same time. ]]></description>
					<link>https://timdeschryver.dev/blog/data-synchronization-in-multiple-clients</link>
					<guid>https://timdeschryver.dev/blog/data-synchronization-in-multiple-clients</guid>
					<pubDate>Mon, 28 May 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ ng update: the setup ]]></title>
					<description><![CDATA[ Within 5 minutes you can automagically have your library upgraded when a user runs the ng update command. ]]></description>
					<link>https://timdeschryver.dev/blog/ng-update-the-setup</link>
					<guid>https://timdeschryver.dev/blog/ng-update-the-setup</guid>
					<pubDate>Mon, 21 May 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Required @Input() properties ]]></title>
					<description><![CDATA[ How to create required input parameters ]]></description>
					<link>https://timdeschryver.dev/blog/required-input-parameters</link>
					<guid>https://timdeschryver.dev/blog/required-input-parameters</guid>
					<pubDate>Mon, 14 May 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Parameterized NgRx Selectors ]]></title>
					<description><![CDATA[ NgRx Selectors with Props ]]></description>
					<link>https://timdeschryver.dev/blog/parameterized-selectors</link>
					<guid>https://timdeschryver.dev/blog/parameterized-selectors</guid>
					<pubDate>Mon, 07 May 2018 00:00:00 GMT</pubDate>
				</item>
			

				<item>
					<title><![CDATA[ Normalizing state ]]></title>
					<description><![CDATA[ A quick look at state normalization. ]]></description>
					<link>https://timdeschryver.dev/blog/normalizing-state</link>
					<guid>https://timdeschryver.dev/blog/normalizing-state</guid>
					<pubDate>Mon, 30 Apr 2018 00:00:00 GMT</pubDate>
				</item>
			
		</channel>
		</rss>