<?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/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-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-x86/</loc><changefreq>daily</changefreq><priority>0.5</priority></url></urlset>