<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>GuruLabs — Field Notes</title><link>https://gurulabs.ca/en/blog/</link><description>Notes on engineering, product, AI and data.</description><language>en-CA</language><item><title>Building useful AI products: start with friction, not the model.</title><link>https://gurulabs.ca/en/blog/building-useful-ai-products.html</link><guid>https://gurulabs.ca/en/blog/building-useful-ai-products.html</guid><pubDate>Tue, 25 Aug 2026 00:00:00 +0000</pubDate></item><item><title>Why a .NET developer benefits from thinking like a product builder.</title><link>https://gurulabs.ca/en/blog/dotnet-product-thinking.html</link><guid>https://gurulabs.ca/en/blog/dotnet-product-thinking.html</guid><pubDate>Tue, 18 Aug 2026 00:00:00 +0000</pubDate></item><item><title>From Mauritius to Québec: what changing markets taught me about software.</title><link>https://gurulabs.ca/en/blog/mauritius-quebec-software.html</link><guid>https://gurulabs.ca/en/blog/mauritius-quebec-software.html</guid><pubDate>Tue, 11 Aug 2026 00:00:00 +0000</pubDate></item><item><title>.NET architecture: reduce complexity before adding another pattern.</title><link>https://gurulabs.ca/en/blog/dotnet-architecture-complexity.html</link><guid>https://gurulabs.ca/en/blog/dotnet-architecture-complexity.html</guid><pubDate>Tue, 04 Aug 2026 00:00:00 +0000</pubDate></item></channel></rss>