<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://tim-maes.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://tim-maes.github.io/" rel="alternate" type="text/html" /><updated>2026-10-13T11:52:06+00:00</updated><id>https://tim-maes.github.io/feed.xml</id><title type="html">Tim Maes</title><subtitle>A blog about .NET development, software engineering, and tech insights</subtitle><author><name>Tim Maes</name><email>your-email@example.com</email></author><entry><title type="html">Coffee Break Features and Afternoon-Long Reviews</title><link href="https://tim-maes.github.io/blog/2026/10/13/coffee-break-features-and-afternoon-long-reviews/" rel="alternate" type="text/html" title="Coffee Break Features and Afternoon-Long Reviews" /><published>2026-10-13T00:00:00+00:00</published><updated>2026-10-13T00:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2026/10/13/coffee-break-features-and-afternoon-long-reviews</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="ai" /><category term="agents" /><category term="spec-driven-development" /><category term="scrum" /><category term="agile" /><category term="software-engineering" /><summary type="html"><![CDATA[If AI agents can implement software faster than we can safely validate it, do our sprints still fit the work?]]></summary></entry><entry><title type="html">Projection-Oriented Modeling: Stop Mapping, Start Projecting</title><link href="https://tim-maes.github.io/blog/2026/09/18/projection-oriented-modeling/" rel="alternate" type="text/html" title="Projection-Oriented Modeling: Stop Mapping, Start Projecting" /><published>2026-09-18T10:00:00+00:00</published><updated>2026-09-18T10:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2026/09/18/projection-oriented-modeling</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="dotnet" /><category term="csharp" /><category term="architecture" /><category term="design-patterns" /><category term="source-generators" /><category term="ef-core" /><category term="facet" /><summary type="html"><![CDATA[Object mapping treats different representations as separate models that need translation. Projection-Oriented Modeling treats consumer-specific models as views of an existing source model - and that shift changes how you design your application.]]></summary></entry><entry><title type="html">The Gateway Pattern: Building Typed Client SDKs in .NET</title><link href="https://tim-maes.github.io/blog/2026/09/01/gateway-pattern-typed-client-sdks-dotnet/" rel="alternate" type="text/html" title="The Gateway Pattern: Building Typed Client SDKs in .NET" /><published>2026-09-01T12:00:00+00:00</published><updated>2026-09-01T12:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2026/09/01/gateway-pattern-typed-client-sdks-dotnet</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="dotnet" /><category term="csharp" /><category term="architecture" /><category term="design-patterns" /><category term="http-client" /><summary type="html"><![CDATA[How to structure a typed HTTP client SDK using the Gateway Pattern — a three-layer approach that separates URL construction, HTTP transport, and domain-meaningful operations into distinct responsibilities.]]></summary></entry><entry><title type="html">T4Editor v5: C# IntelliSense Finally Comes to T4 Templates</title><link href="https://tim-maes.github.io/blog/2026/08/03/t4editor-v5-csharp-intellisense/" rel="alternate" type="text/html" title="T4Editor v5: C# IntelliSense Finally Comes to T4 Templates" /><published>2026-08-03T12:00:00+00:00</published><updated>2026-08-03T12:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2026/08/03/t4editor-v5-csharp-intellisense</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="t4-templates" /><category term="dotnet" /><category term="csharp" /><category term="visual-studio" /><category term="roslyn" /><category term="intellisense" /><category term="vsix" /><summary type="html"><![CDATA[T4Editor now has Roslyn-powered C# IntelliSense, syntax highlighting, and error diagnostics inside T4 code blocks. Here's how it works.]]></summary></entry><entry><title type="html">Pick and Omit in C# with Facet .NET: TypeScript Utility Types for .NET</title><link href="https://tim-maes.github.io/blog/2026/04/17/pick-and-omit-in-csharp-with-facet/" rel="alternate" type="text/html" title="Pick and Omit in C# with Facet .NET: TypeScript Utility Types for .NET" /><published>2026-04-17T16:00:00+00:00</published><updated>2026-04-17T16:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2026/04/17/pick-and-omit-in-csharp-with-facet</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="csharp" /><category term="dotnet" /><category term="typescript" /><category term="source-generators" /><category term="facet" /><category term="utilities" /><category term="types" /><summary type="html"><![CDATA[If you’ve worked with TypeScript, you know how powerful utility types like Pick and Omit are. They let you create new types by selecting or excluding properties from existing types, all at compile-time with full type safety.]]></summary></entry><entry><title type="html">My thoughts on Vibe Coding as a Senior .NET Engineer</title><link href="https://tim-maes.github.io/blog/2026/01/07/thoughts-on-vibe-coding-as-a-senior-dotnet-engineer/" rel="alternate" type="text/html" title="My thoughts on Vibe Coding as a Senior .NET Engineer" /><published>2026-01-07T12:00:00+00:00</published><updated>2026-01-07T12:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2026/01/07/thoughts-on-vibe-coding-as-a-senior-dotnet-engineer</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="ai" /><category term="vibe-coding" /><category term="agents" /><category term="claude" /><category term="dotnet" /><category term="software-engineering" /><summary type="html"><![CDATA[My take on where we are, where we are headed, and how to stay relevant.]]></summary></entry><entry><title type="html">Faceted search in .NET</title><link href="https://tim-maes.github.io/blog/2025/12/15/faceted-search/" rel="alternate" type="text/html" title="Faceted search in .NET" /><published>2025-12-15T12:00:00+00:00</published><updated>2025-12-15T12:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2025/12/15/faceted-search</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="facet" /><category term="search" /><category term="faceted" /><category term="dotnet" /><category term="generator" /><summary type="html"><![CDATA[Eliminate boilerplate and build powerful, type-safe search experiences with source generators.]]></summary></entry><entry><title type="html">Blazor vs MVC: Why Developers Still Choose MVC in 2025</title><link href="https://tim-maes.github.io/blog/2025/12/10/blazor-vs-mvc-choosing-right-framework/" rel="alternate" type="text/html" title="Blazor vs MVC: Why Developers Still Choose MVC in 2025" /><published>2025-12-10T12:00:00+00:00</published><updated>2025-12-10T12:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2025/12/10/blazor-vs-mvc-choosing-right-framework</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="blazor" /><category term="mvc" /><category term="aspnetcore" /><category term="dotnet" /><category term="web-development" /><summary type="html"><![CDATA[Recently, I came across a fascinating discussion in the .NET community that made me pause and reflect. A developer behind Blazorise asked a simple but profound question: "Why would anyone still choose MVC over Blazor with server-side rendering?" As someone who spends significant time in the .NET ecosystem, I found the responses enlightening and worth exploring.]]></summary></entry><entry><title type="html">Advanced Flattening with Facet .NET</title><link href="https://tim-maes.github.io/blog/2025/11/26/advanced-flattening/" rel="alternate" type="text/html" title="Advanced Flattening with Facet .NET" /><published>2025-11-26T00:00:00+00:00</published><updated>2025-11-26T00:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2025/11/26/advanced-flattening</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="dotnet" /><category term="csharp" /><category term="source-generators" /><category term="facet" /><category term="dto" /><category term="api" /><category term="source-generation" /><category term="entity-framework" /><summary type="html"><![CDATA[If you've ever found yourself writing DTOs with properties like CustomerAddressStreet, CustomerAddressCity, ShippingAddressLine1, and ShippingAddressZipCode, you know the pain of manually flattening nested object structures. It's tedious, error-prone, and clutters your codebase with boilerplate.]]></summary></entry><entry><title type="html">Facet: A Source Generator Competing with Traditional Mapping Libraries</title><link href="https://tim-maes.github.io/blog/2025/11/07/dotnet-mappers-in-2025/" rel="alternate" type="text/html" title="Facet: A Source Generator Competing with Traditional Mapping Libraries" /><published>2025-11-07T14:00:00+00:00</published><updated>2025-11-07T14:00:00+00:00</updated><id>https://tim-maes.github.io/blog/2025/11/07/dotnet-mappers-in-2025</id><author><name>Tim Maes</name><email>your-email@example.com</email></author><category term="blog" /><category term="dotnet" /><category term="csharp" /><category term="source-generators" /><category term="dto" /><category term="facet" /><category term="automapper" /><category term="mapperly" /><category term="mapster" /><category term="object-mapping" /><category term="source-generation" /><summary type="html"><![CDATA[A look at Facet, as we discover how source generation is changing the mapping landscape.]]></summary></entry></feed>