<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
<url>
<loc>https://shav.dev</loc>
<lastmod>2026-07-07T00:00:00.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://shav.dev/blog</loc>
<lastmod>2026-07-07T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://shav.dev/blog/the-last-moats</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/the-last-moats.png</image:loc>
</image:image>
<lastmod>2026-07-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/the-tech-frontier</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/the-tech-frontier.png</image:loc>
</image:image>
<lastmod>2026-07-06T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/the-trust-barrier</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/the-trust-barrier.png</image:loc>
</image:image>
<lastmod>2026-07-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/i-open-sourced-my-coding-agents-memory</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/cairn.png</image:loc>
</image:image>
<lastmod>2026-06-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/how-i-gave-my-coding-agents-persistent-memory</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/elephant.png</image:loc>
</image:image>
<lastmod>2026-03-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/dora</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/multi-agents.png</image:loc>
</image:image>
<lastmod>2026-02-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/voice-ai-lessons</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/mic.png</image:loc>
</image:image>
<lastmod>2026-01-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/rlhf</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/target.png</image:loc>
</image:image>
<lastmod>2025-12-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/secret-management</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/key.png</image:loc>
</image:image>
<lastmod>2025-10-23T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/the-knowledge-layer</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/brain.png</image:loc>
</image:image>
<lastmod>2025-10-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/otel-traces</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/log.png</image:loc>
</image:image>
<lastmod>2025-09-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/git-learnings</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/git.png</image:loc>
</image:image>
<lastmod>2025-09-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/is-code-rotting-due-to-ai</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/hourglass.png</image:loc>
</image:image>
<lastmod>2025-09-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/building-integrations</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/sockets.png</image:loc>
</image:image>
<lastmod>2025-08-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/when-mcp-fails</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/usb-c.png</image:loc>
</image:image>
<lastmod>2025-08-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/context-engineering</loc>
<image:image>
<image:loc>https://shav.dev/images/context-engineering/context-collapse.png</image:loc>
</image:image>
<lastmod>2025-08-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/email-security</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/envelope.png</image:loc>
</image:image>
<lastmod>2025-08-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/state-of-the-art-embedding-retrieval</loc>
<image:image>
<image:loc>https://shav.dev/images/embedding/image.png</image:loc>
</image:image>
<lastmod>2025-07-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/agentic-design-patterns</loc>
<image:image>
<image:loc>https://shav.dev/images/agentic-design-patterns/image-72.png</image:loc>
</image:image>
<lastmod>2025-06-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/podcast-agent</loc>
<image:image>
<image:loc>https://shav.dev/images/podcast-agent/image-1.png</image:loc>
</image:image>
<lastmod>2025-01-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/rediscovering-cursor</loc>
<image:image>
<image:loc>https://shav.dev/thumbs/cursor.png</image:loc>
</image:image>
<lastmod>2024-12-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/graphrag</loc>
<image:image>
<image:loc>https://shav.dev/images/graphrag/image-2.png</image:loc>
</image:image>
<lastmod>2024-08-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/cultural-bias</loc>
<image:image>
<image:loc>https://shav.dev/images/cultural-bias/cultural-bias-map.png</image:loc>
</image:image>
<lastmod>2024-07-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/topic-modelling</loc>
<image:image>
<image:loc>https://shav.dev/images/topic-modelling/plot.png</image:loc>
</image:image>
<lastmod>2024-07-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/carbon-aware-ai</loc>
<image:image>
<image:loc>https://shav.dev/images/carbon-aware-ai/electricity-maps.png</image:loc>
</image:image>
<lastmod>2024-06-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/defensive-technology-ai</loc>
<image:image>
<image:loc>https://shav.dev/images/defensive-technology-ai/gemini-2.png</image:loc>
</image:image>
<lastmod>2024-06-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/situational-awareness</loc>
<image:image>
<image:loc>https://shav.dev/images/thumbs/situational-awareness.png</image:loc>
</image:image>
<lastmod>2024-06-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/mechanistic-interpretability-a-survey</loc>
<image:image>
<image:loc>https://shav.dev/images/mechanistic-interpretability-a-survey/F7sBLNGXIAA6kQi.jpg</image:loc>
</image:image>
<lastmod>2024-06-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/why-i-left-ubuntu</loc>
<lastmod>2024-05-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/autonomous-agents-multi-agent-collaboration</loc>
<image:image>
<image:loc>https://shav.dev/images/autonomous-agents-multi-agent-collaboration/agent-4.png</image:loc>
</image:image>
<lastmod>2024-04-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/enhancing-rag</loc>
<image:image>
<image:loc>https://shav.dev/images/enhancing-rag/rerank-2.png</image:loc>
</image:image>
<lastmod>2024-03-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/building-an-automated-newsletter-to-summary-pipeline</loc>
<image:image>
<image:loc>https://shav.dev/images/building-an-automated-newsletter-to-summary-pipeline/image-6.png</image:loc>
</image:image>
<lastmod>2024-02-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/ai-image-generation</loc>
<image:image>
<image:loc>https://shav.dev/images/ai-image-generation/fooocus-ui.png</image:loc>
</image:image>
<lastmod>2023-12-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/mlops-deploying-a-distributed-ray-python-server-kubernetes-eks-kuberay</loc>
<lastmod>2023-11-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/switching-from-windows-to-linux</loc>
<image:image>
<image:loc>https://shav.dev/images/linux/linux.png</image:loc>
</image:image>
<lastmod>2023-10-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/scaling-options-pricing-ray</loc>
<image:image>
<image:loc>https://shav.dev/images/ray-options/output_10_0.png</image:loc>
</image:image>
<lastmod>2023-10-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/pool-of-workers</loc>
<lastmod>2023-09-23T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/browser-fingerprinting</loc>
<image:image>
<image:loc>https://shav.dev/images/browser-fingerprinting/signals.png</image:loc>
</image:image>
<lastmod>2023-09-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/redis-emitter</loc>
<image:image>
<image:loc>https://shav.dev/images/redis-emitter/RedisEmitter_1.png</image:loc>
</image:image>
<lastmod>2023-07-06T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/socket-io-and-redux-middleware</loc>
<lastmod>2023-07-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/git-submodules</loc>
<lastmod>2023-04-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/efficient-dataset-storage-for-data-scientists</loc>
<image:image>
<image:loc>https://shav.dev/images/efficient-dataset-storage-for-data-scientists/size.png</image:loc>
</image:image>
<lastmod>2023-02-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/why-i-switched-from-react-to-next</loc>
<image:image>
<image:loc>https://shav.dev/images/why-i-switched-from-react-to-next/partial-rendering.webp</image:loc>
</image:image>
<lastmod>2022-11-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/deploy-and-scale-socketio-with-ecs</loc>
<image:image>
<image:loc>https://shav.dev/images/deploy-and-scale-socketio-with-ecs/socket-admin-metrics.png</image:loc>
</image:image>
<lastmod>2022-11-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/implementing-totp-authentication-in-python-using-pyotp</loc>
<image:image>
<image:loc>https://shav.dev/images/thumbs/totp.png</image:loc>
</image:image>
<lastmod>2022-09-13T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/lambda-layers</loc>
<image:image>
<image:loc>https://shav.dev/images/thumbs/klayers.png</image:loc>
</image:image>
<lastmod>2022-09-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/local-docker-container-with-passthrough-mount-and-cloud-configuration-in-an-ec2</loc>
<image:image>
<image:loc>https://shav.dev/images/thumbs/tsdb.png</image:loc>
</image:image>
<lastmod>2022-06-23T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://shav.dev/blog/how-to-ssh-into-an-ec2-with-putty</loc>
<image:image>
<image:loc>https://shav.dev/images/how-to-ssh-into-an-ec2-with-putty/4.png</image:loc>
</image:image>
<lastmod>2021-12-16T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
