<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <url>
    <loc>https://kevinkeller.org/</loc>
    <lastmod>2026-04-03T07:30:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/</loc>
    <lastmod>2026-04-03T07:30:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/softether-site-to-site-vpn-onprem-aws-azure/</loc>
    <lastmod>2026-04-03T07:30:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-container-services-deep-dive/</loc>
    <lastmod>2026-04-03T06:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-container-services-ssh-tunnel-dmz/</loc>
    <lastmod>2026-04-02T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/beyond-rbac-purpose-aware-access-control-ai-agents/</loc>
    <lastmod>2026-03-31T12:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/ducklake-pixi-data-lake-under-10-euros/</loc>
    <lastmod>2026-03-30T12:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-mcp-external-oauth-authentication/</loc>
    <lastmod>2026-03-30T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/layered-architecture-python-conda-supply-chain-security/</loc>
    <lastmod>2026-03-28T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/turboquant-vector-compression-ai-agents/</loc>
    <lastmod>2026-03-28T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-federal-zero-trust-architecture/</loc>
    <lastmod>2026-03-27T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/zettelkasten-memory-layer-ai-agents/</loc>
    <lastmod>2026-03-27T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/smcp-secure-model-context-protocol/</loc>
    <lastmod>2026-03-26T08:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/robyn-extensions-rust-powered-python-api/</loc>
    <lastmod>2026-03-26T07:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-aes-cbc-column-encryption-key-management/</loc>
    <lastmod>2026-03-26T06:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-federated-queries-cross-account-oauth/</loc>
    <lastmod>2026-03-23T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-siem-webhook-notifications/</loc>
    <lastmod>2026-03-23T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/google-productivity-skill-ai-coding-agents/</loc>
    <lastmod>2026-03-23T09:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-security-ops-skill-cybersecurity/</loc>
    <lastmod>2026-03-23T08:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/splunk-snowflake-security-datalake/</loc>
    <lastmod>2026-03-23T07:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/postgres-agent-orchestrator-pgmq-llm/</loc>
    <lastmod>2026-03-20T14:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/how-privatelink-and-dns-work/</loc>
    <lastmod>2026-03-20T12:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/how-jwt-tokens-work/</loc>
    <lastmod>2026-03-20T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/postgres-analyst-natural-language-sql-ollama/</loc>
    <lastmod>2026-03-20T10:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/containing-ai-agents-production/</loc>
    <lastmod>2026-03-19T12:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/building-agentic-enterprise-custom-agents-production/</loc>
    <lastmod>2026-03-19T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-cortex-proxy-ai-coding-agents/</loc>
    <lastmod>2026-03-18T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/governing-ai-inference-data-cloud/</loc>
    <lastmod>2026-03-17T12:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/data-sovereignty-querying-onprem-iceberg-from-snowflake/</loc>
    <lastmod>2026-03-16T12:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/nanocortex-blueprint-snowflake-cortex-agents/</loc>
    <lastmod>2026-03-16T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-oauth-pat-mcp-authentication-toolkit/</loc>
    <lastmod>2026-03-15T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/spcs-devcontainer-cloud-ide-snowflake/</loc>
    <lastmod>2026-03-14T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/apache-nifi-snowflake-container-services/</loc>
    <lastmod>2026-03-13T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-column-encryption-postgres-proxy/</loc>
    <lastmod>2024-12-20T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-pgp-decryption-mft-pipeline/</loc>
    <lastmod>2024-12-14T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-ssh-tunnel-query-onprem-datalake/</loc>
    <lastmod>2024-12-10T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-format-preserving-encryption-python-camouflage/</loc>
    <lastmod>2024-11-15T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/opentelemetry-snowflake-observability-datalake/</loc>
    <lastmod>2024-11-09T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/posts/snowflake-siem-xdr-automated-security-incidents/</loc>
    <lastmod>2024-07-25T00:00:00+00:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-ai-embeddings/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-ai-code/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/chat/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/contact/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-crypto/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/daily/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-datalab/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-devicecode/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-devicecode-verify/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-encryption-pipeline/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/events/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-excalidraw/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/finds/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-jupyter/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-jwt/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-futurecoder/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/learning/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/links/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-marimo/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/personal/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-connstr/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-explain/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-postgres/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/privacy/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/py-corner/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/py-corner/editor/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/py-corner/view/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-pygame/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-pyscript/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-streamlit/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-python/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-rbac/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/resume/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-slingcode/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-oauth-generator/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-snowflake-report/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-sql/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/subscribe/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-tiddlywiki/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kevinkeller.org/playground-x86/</loc>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>
