﻿<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.google.com/schemas/sitemap-news/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://endjin.com/blog/2026/03/programming-not-prompting</loc>
    <lastmod>2026-03-13T00:00:00.00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-03-13T00:00:00Z</news:publication_date>
      <news:title>From Prompt Engineering to AI Programming: Building Enterprise-Ready Generative AI Solutions</news:title>
      <news:keywords>GenAI, Generative AI, AI, Machine Learning, Software Engineering, Engineering Discipline, LLM, Prompt Engineering</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/02/programming-not-prompting.png</image:loc>
      <image:caption>From Prompt Engineering to AI Programming: Building Enterprise-Ready Generative AI Solutions</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/03/scaling-api-ingestion-with-the-queue-of-work-pattern</loc>
    <lastmod>2026-03-06T00:00:00.00Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-03-06T00:00:00Z</news:publication_date>
      <news:title>Scaling API Ingestion with the Queue-of-Work Pattern</news:title>
      <news:keywords>python, engineering, data engineering, pyspark, synapse, notebooks, azure container apps, azure synapse analytics</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/02/scaling-api-ingestion-with-the-queue-of-work-pattern.png</image:loc>
      <image:caption>Scaling API Ingestion with the Queue-of-Work Pattern</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/02/rx7-ondotnet-live-demos</loc>
    <lastmod>2026-02-27T00:00:00.00Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-02-27T00:00:00Z</news:publication_date>
      <news:title>Rx.NET v7 and Futures On .NET Live talk and demos</news:title>
      <news:keywords>C#, CSharp, .NET, dotnet, Rx, Rx.NET, Rx7, Reactive</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/02/rx-dotnet-v7-ondotnet-live-demos.png</image:loc>
      <image:caption>Rx.NET v7 and Futures On .NET Live talk and demos</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/02/t4-templates-on-modern-dotnet-10</loc>
    <lastmod>2026-02-18T00:00:00.00Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-02-18T00:00:00Z</news:publication_date>
      <news:title>T4 templates on modern .NET</news:title>
      <news:keywords>C#, CSharp, .NET, dotnet, T4, Templates, Code generation</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2025/12/t4-templates-on-modern-dotnet-10.png</image:loc>
      <image:caption>T4 templates on modern .NET</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/02/what-is-retrieval-augmented-generation-rag</loc>
    <lastmod>2026-02-05T00:00:00.00Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-02-05T00:00:00Z</news:publication_date>
      <news:title>What is Retrieval-Augmented Generation (RAG)?</news:title>
      <news:keywords>AI, GenAI, RAG, Azure Foundry, Azure AI Search</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/01/what-is-retrieval-augmented-generation-rag.png</image:loc>
      <image:caption>What is Retrieval-Augmented Generation (RAG)?</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/01/polars-workloads-on-microsoft-fabric</loc>
    <lastmod>2026-01-29T00:00:00.00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-01-29T00:00:00Z</news:publication_date>
      <news:title>Polars Workloads on Microsoft Fabric</news:title>
      <news:keywords>Polars, Microsoft Fabric, Deltalake, DataFrame, Cloud Computing, Data Processing, Python</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/01/polars-workloads-on-fabric.png</image:loc>
      <image:caption>Polars Workloads on Microsoft Fabric</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/01/practical-polars-code-examples-everyday-data-tasks</loc>
    <lastmod>2026-01-29T00:00:00.00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-01-29T00:00:00Z</news:publication_date>
      <news:title>Practical Polars: Code Examples for Everyday Data Tasks</news:title>
      <news:keywords>Polars, DataFrame, Python, Data Analysis, Code Examples, Data Transformation, Data Science</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/01/polars-code-examples.png</image:loc>
      <image:caption>Practical Polars: Code Examples for Everyday Data Tasks</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/01/under-the-hood-what-makes-polars-so-scalable-and-fast</loc>
    <lastmod>2026-01-29T00:00:00.00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-01-29T00:00:00Z</news:publication_date>
      <news:title>Under the Hood: What Makes Polars So Scalable and Fast?</news:title>
      <news:keywords>Polars, DataFrame, Performance Optimization, Rust, Lazy Evaluation, Query Optimization, Parallel Processing, Columnar Computing</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/01/what-makes-polars-so-scalable-and-fast.png</image:loc>
      <image:caption>Under the Hood: What Makes Polars So Scalable and Fast?</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2026/01/polars-faster-pipelines-simpler-infrastructure-happier-engineers</loc>
    <lastmod>2026-01-29T00:00:00.00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-01-29T00:00:00Z</news:publication_date>
      <news:title>Polars: Faster Pipelines, Simpler Infrastructure, Happier Engineers</news:title>
      <news:keywords>Polars, DataFrame, Python, Data, Analytics, Performance, Rust, Data Processing</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2026/01/why-polars-matters.png</image:loc>
      <image:caption>Polars: Faster Pipelines, Simpler Infrastructure, Happier Engineers</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://endjin.com/blog/2025/12/how-dotnet-10-boosted-ais-dotnet-performance-by-7-percent-for-free</loc>
    <lastmod>2025-12-09T00:00:00.00Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
    <news:news>
      <news:publication>
        <news:name>endjin.com</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2025-12-09T00:00:00Z</news:publication_date>
      <news:title>How .NET 10.0 boosted AIS.NET performance by 7%</news:title>
      <news:keywords>C# 14.0, C# 14, C#, CSharp, .NET 10.0, dotnet, C# Tutorials, C# Programming, High Performance, Programming C# 12.0, low-allocation, ref struct, Span&lt;T&gt;, ReadOnlySpan&lt;T&gt;, Ais.Net, aisdotnet, AIS, Automatic identification System, Parser, Decoder, Marine</news:keywords>
    </news:news>
    <image:image>
      <image:loc>https://res.cloudinary.com/endjin/image/upload/f_auto/q_80/assets/images/blog/2025/12/aisdotnetperfnet10.0.png</image:loc>
      <image:caption>How .NET 10.0 boosted AIS.NET performance by 7%</image:caption>
    </image:image>
  </url>
</urlset>