<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://kevinherbas.com/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/about/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/ai-revolution-2025-market-trends/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/building-rest-apis-that-dont-suck/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/category/ai-engineering/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/category/ai-infrastructure/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/category/ai-trends/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/category/computer-vision/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/category/developer-tools/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/category/python/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/css-grid-flexbox-when-to-use-what/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/debugging-techniques-that-actually-work/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/docker-for-local-development/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/git-commands-i-use-daily/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/javascript-closures-explained/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/javascript-promises-async-await/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/learning-new-technologies-fast/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/llm-api-keys-production-guide/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/llm-cli-tool-developer-productivity/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/llm-data-extraction-document-processing/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/moondream-local-vision-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/my-developer-workflow-and-tools/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/pydantic-ai-type-safe-llm-applications/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/react-hooks-mistakes-to-avoid/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/ai-agents/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/ai-automation/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/ai-infrastructure/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/ai-investment/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/ai-trends-2025/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/api-key-management/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/artificial-intelligence/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/astral-uv/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/aws-bedrock/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/aws-textract/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/chatgpt-alternative/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/cloud-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/command-line-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/computer-vision/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/dependency-management/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/developer-productivity/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/docling/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/document-extraction/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/enterprise-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/git-workflow/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/gpt-vision-alternative/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/image-captioning/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/inline-scripts/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/langchain-alternative/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/llamaparse/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/llm-cli/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/llm-market/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/llm-security/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/llm/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/local-vision-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/moondream/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/nvidia/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/object-detection/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/ocr/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/on-device-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/open-source-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/openai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/openrouter/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/pdf-parsing/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/pip-alternative/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/production-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/pydantic-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/pymupdf/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/python-tooling/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/python/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/rag-pipeline/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/simon-willison/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/structured-output/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/terminal-tools/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/type-safety/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/unstructured-io/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/uv-package-manager/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/vertex-ai/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/tag/virtual-environments/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/testing-frontend-unit-integration-e2e/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/typescript-type-guards-explained/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/uv-python-scripts-package-manager/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/vscode-extensions-that-boost-productivity/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/web-performance-practical-guide/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/blog/writing-clean-code-principles/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/hire/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/now/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/projects/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/projects/charis/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/projects/compliance-ai-product-validator/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/projects/parker/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/projects/tabcast/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/projects/vitellus/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url><url><loc>https://kevinherbas.com/uses/</loc><lastmod>2026-07-02T09:24:22.127Z</lastmod><changefreq>weekly</changefreq><priority>0.7</priority></url></urlset>