<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="/sitemap_generator/default/sitemap.xsl"?>
<!--Generated by the Simple XML Sitemap Drupal module: https://drupal.org/project/simple_sitemap.-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
 <url>
  <loc>https://devtools.ervinalcordo.site/</loc>
  <changefreq>daily</changefreq>
  <priority>1.0</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/tools</loc>
  <changefreq>daily</changefreq>
  <priority>1</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/claude-vs-gemini-vs-chatgpt-vs-kimi-vs-grok</loc>
  <lastmod>2026-06-06T06:00:07+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/claude-code-daily-driver</loc>
  <lastmod>2026-06-05T04:23:27+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/terminal-coding-agent-workspace-setup.webp</image:loc>
   <image:caption>A developer typing on a mechanical keyboard at a minimalist desk setup with a large ultrawide monitor displaying a terminal interface and IDE with code.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/cursor-vs-vs-code-copilot</loc>
  <lastmod>2026-06-06T06:00:22+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/zoxide-smarter-cd-command-learns-your-habits</loc>
  <lastmod>2026-06-06T02:42:07+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/zoxide-hero.webp</image:loc>
   <image:caption>Abstract illustration of a terminal cursor navigating a directory tree along an optimized glowing path, representing zoxide's smart navigation.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/free-claude-code-run-claude-code-cli-any-ai-provider</loc>
  <lastmod>2026-06-06T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/free-claude-code-proxy-hero.webp</image:loc>
   <image:caption>Soft 3D illustration of a central proxy hub routing data pipelines to multiple AI provider nodes, representing Free Claude Code's multi-provider architecture.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/arenaai-battle-test-free-ai-models-you-commit</loc>
  <lastmod>2026-06-07T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/arena-ai-model-comparison-hero.webp</image:loc>
   <image:caption>Flat vector illustration of two AI response panels side-by-side with a glowing balance scale between them, representing head-to-head model comparison on Arena.ai.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/google-rich-results-test-validate-your-schema-markup-instantly</loc>
  <lastmod>2026-06-08T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/google-rich-results-test-schema-hero.webp</image:loc>
   <image:caption>Flat vector illustration of a browser panel showing a JSON structured data tree with a glowing validation checkmark badge, representing Google Rich Results Test schema checking.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/better-ways-to-use-claude-code</loc>
  <lastmod>2026-06-09T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/claude-code-power-workflows-hero.webp</image:loc>
   <image:caption>Clean 3D illustration of an optimized Claude Code terminal workflow with CLAUDE.md, custom commands, and structured context flow.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/playwright-end-to-end-tests-ai-built-features</loc>
  <lastmod>2026-06-12T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/playwright-e2e-ai-safety-net-hero.webp</image:loc>
   <image:caption>Soft 3D illustration of a browser window with a glowing geometric safety net catching falling code blocks, representing Playwright end-to-end tests catching AI-generated feature failures.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/sentry-error-monitoring-ai-generated-code</loc>
  <lastmod>2026-06-06T05:57:57+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/sentry-error-monitoring-ai-code-hero.webp</image:loc>
   <image:caption>Soft 3D illustration of a glowing monitoring shield ring surrounding an application panel, catching amber error signals and displaying breadcrumb context cards — representing Sentry runtime error monitoring.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/opentelemetry-instrument-ai-built-features</loc>
  <lastmod>2026-06-13T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/opentelemetry-ai-feature-instrumentation-hero.webp</image:loc>
   <image:caption>OpenTelemetry distributed traces and metrics flowing through a connected service pipeline, visualized as glowing data streams</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/semgrep-static-analysis-ai-generated-code</loc>
  <lastmod>2026-06-19T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/semgrep-static-analysis-ai-code-hero.webp</image:loc>
   <image:caption>A scanning beam highlights flagged code blocks in a static analysis review, representing Semgrep catching security issues in AI-generated code</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/sonarqube-ai-code-smells-static-analysis</loc>
  <lastmod>2026-06-20T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/sonarqube-ai-code-smells-hero_0.webp</image:loc>
   <image:caption>Magnifying glass scanning layered PHP code files and surfacing code smell and vulnerability indicators in a blue indigo editorial style</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/pr-agent-ai-code-review</loc>
  <lastmod>2026-06-22T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/pr-agent-ai-code-review-hero.webp</image:loc>
   <image:caption>Two AI systems collaborating on code review, one analyzing pull request code generated by the other</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/reviewdog-automated-linter-feedback</loc>
  <lastmod>2026-06-27T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/reviewdog-inline-linter-feedback-hero.webp</image:loc>
   <image:caption>Developer reviewing inline linter comments on a pull request diff with automated code review feedback</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/aider-ai-pair-programming-cli</loc>
  <lastmod>2026-07-01T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/aider-ai-pair-programming-manual-commit-hero.webp</image:loc>
   <image:caption>Developer reviewing AI-generated code changes in terminal before committing, hand poised over keyboard</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/cody-sourcegraph-codebase-aware-ai</loc>
  <lastmod>2026-07-02T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/cody-sourcegraph-codebase-aware-ai-hero.webp</image:loc>
   <image:caption>AI assistant searching and understanding code repository structure with highlighted context and connections</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/eslint-ai-code-auditor</loc>
  <lastmod>2026-07-03T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/eslint-ai-code-auditor-hero.webp</image:loc>
   <image:caption>Code editor displaying JavaScript linting warnings and errors with automated quality checks and rule violations highlighted</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/google-agents-cli-meta-tooling</loc>
  <lastmod>2026-07-06T13:46:04+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/google-agents-cli-meta-ai-tooling-hero.webp</image:loc>
   <image:caption>Layered AI development workflow showing coding agent building and deploying AI agents with CLI automation</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/boneyard-skeleton-screen-generator</loc>
  <lastmod>2026-07-07T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/boneyard-skeleton-screen-generator-hero.webp</image:loc>
   <image:caption>Split view showing real UI component transforming into skeleton loading state with positioned placeholder rectangles</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/prompts-chat-prompt-library</loc>
  <lastmod>2026-07-08T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/prompts-chat-prompt-library-hero.webp</image:loc>
   <image:caption>Organized library of AI prompts and examples displayed on screen with developer accessing curated prompt collection</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/system-prompts-leaks-ai-transparency</loc>
  <lastmod>2026-07-12T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/system-prompts-leaks-ai-transparency-hero.webp</image:loc>
   <image:caption>Developer examining hidden AI system prompts and instructions revealed through transparency documentation</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ai-website-cloner-template</loc>
  <lastmod>2026-07-14T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/ai-website-cloner-template-hero.webp</image:loc>
   <image:caption>Developer using AI agent to reverse-engineer website into clean React components and Next.js code</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/meetily-privacy-first-meeting-assistant</loc>
  <lastmod>2026-07-15T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/meetily-privacy-first-meeting-assistant-hero.webp</image:loc>
   <image:caption>Professional laptop displaying video conference with local AI transcription interface processing meeting audio privately on device</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/contractor-claude-workflow-framework</loc>
  <lastmod>2026-07-16T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/contractor-claude-workflow-framework-hero.webp</image:loc>
   <image:caption>Structured AI development workflow showing orchestrated delegation from planning through review with quality gates</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/orca-ai-agent-orchestrator</loc>
  <lastmod>2026-07-17T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/orca-ai-agent-orchestrator-hero.webp</image:loc>
   <image:caption>Developer workspace showing multiple AI coding agents working in parallel with side-by-side code comparison and mobile monitoring</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/pentesterflow-ai-pentesting-agent</loc>
  <lastmod>2026-07-18T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/pentesterflow-ai-pentesting-agent-hero.webp</image:loc>
   <image:caption>Security researcher conducting penetration testing with AI agent assistance requiring human approval for sensitive actions</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/deepteam-llm-red-teaming-framework</loc>
  <lastmod>2026-07-24T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/deepteam-llm-red-teaming-framework-hero.webp</image:loc>
   <image:caption>Security dashboard showing AI red teaming results with vulnerability scanning, adversarial attack testing, and risk assessment metrics</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/trivy-security-scanner-ai-dockerfiles</loc>
  <lastmod>2026-07-25T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/trivy-security-scanner-ai-dockerfiles-hero.webp</image:loc>
   <image:caption>Developer workstation showing container vulnerability scanning results with CVE detection and severity indicators in terminal output</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ecc-agent-harness-operating-system</loc>
  <lastmod>2026-07-29T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/ecc-agent-harness-os-hero.webp</image:loc>
   <image:caption>Cross-harness AI agent orchestration system with multiple coding environments connected to a central control hub</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/onyx-self-hosted-ai-platform-rag-agents</loc>
  <lastmod>2026-07-30T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/onyx-self-hosted-ai-platform-hero.webp</image:loc>
   <image:caption>Unified AI knowledge platform concept showing interconnected document sources feeding into a central intelligent search and retrieval hub</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ui-ux-pro-max-ai-design-system-skill</loc>
  <lastmod>2026-07-31T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/ui-ux-pro-max-design-system-hero.webp</image:loc>
   <image:caption>AI design system reasoning pipeline concept showing industry-specific style, color palette, and typography recommendations branching from a central decision engine</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/jcode-rust-ai-coding-harness-swarm</loc>
  <lastmod>2026-08-02T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/dev-tools/jcode-rust-ai-harness-swarm-hero.webp</image:loc>
   <image:caption>Efficient AI coding harness concept showing a minimal-footprint Rust terminal agent contrasted against larger, more memory-hungry competing tools with multi-agent swarm connections</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/repomix-pack-your-whole-repo-one-ai-friendly-file</loc>
  <lastmod>2026-09-06T06:58:42+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ollama-run-powerful-open-llms-locally-one-command</loc>
  <lastmod>2026-09-07T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/litellm-one-api-every-llm-provider</loc>
  <lastmod>2026-09-08T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/continue-open-source-ai-autocomplete-your-ide</loc>
  <lastmod>2026-09-09T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/openhands-self-hosted-autonomous-ai-software-engineer</loc>
  <lastmod>2026-09-10T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/cline-agentic-coding-partner-inside-vs-code</loc>
  <lastmod>2026-09-11T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/llm-prompt-any-model-your-terminal-and-log-every-reply</loc>
  <lastmod>2026-09-12T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/tabby-self-host-your-own-ai-coding-assistant</loc>
  <lastmod>2026-09-13T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ruff-python-linter-fast-enough-run-every-keystroke</loc>
  <lastmod>2026-09-14T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/biome-one-fast-tool-lint-and-format-your-js-and-ts</loc>
  <lastmod>2026-09-15T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/gitleaks-catch-secrets-they-reach-your-repo</loc>
  <lastmod>2026-09-16T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/vite-instant-start-build-tool-behind-modern-frontends</loc>
  <lastmod>2026-09-17T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/vitest-fast-unit-test-framework-wired-vite</loc>
  <lastmod>2026-09-18T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/phpstan-catch-php-bugs-you-run-code</loc>
  <lastmod>2026-09-19T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/rector-automated-php-upgrades-and-refactoring-scale</loc>
  <lastmod>2026-09-20T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/phpcodesniffer-enforce-drupal-coding-standards-automatically</loc>
  <lastmod>2026-09-21T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/fzf-fuzzy-finder-speeds-everything-your-shell</loc>
  <lastmod>2026-09-22T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/lazygit-terminal-ui-makes-git-actually-pleasant</loc>
  <lastmod>2026-09-23T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/caddy-web-server-gets-https-right-default</loc>
  <lastmod>2026-09-24T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/mermaid-diagrams-you-write-text-and-version-your-code</loc>
  <lastmod>2026-09-25T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/osv-scanner-find-known-vulnerabilities-your-dependencies</loc>
  <lastmod>2026-09-26T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ripgrep-search-tool-made-grep-feel-slow</loc>
  <lastmod>2026-09-27T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/bat-cat-clone-syntax-highlighting-and-git-signs</loc>
  <lastmod>2026-09-28T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/fd-simpler-faster-way-find-files</loc>
  <lastmod>2026-09-29T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/eza-modern-ls-colors-icons-and-git-awareness</loc>
  <lastmod>2026-09-30T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/jq-command-line-processor-tames-json</loc>
  <lastmod>2026-10-01T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/yq-jqs-syntax-yaml-and-more</loc>
  <lastmod>2026-10-02T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/delta-beautiful-readable-pager-git-diffs</loc>
  <lastmod>2026-10-03T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/httpie-human-friendly-http-client-terminal</loc>
  <lastmod>2026-10-04T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/github-cli-manage-pull-requests-and-issues-without-browser</loc>
  <lastmod>2026-10-05T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/tmux-keep-your-terminal-sessions-alive-and-organized</loc>
  <lastmod>2026-10-06T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/starship-fast-informative-prompt-any-shell</loc>
  <lastmod>2026-10-07T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/zellij-terminal-workspace-you-dont-have-memorize</loc>
  <lastmod>2026-10-08T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/atuin-turn-your-shell-history-searchable-database</loc>
  <lastmod>2026-10-09T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/nushell-shell-where-everything-structured-data</loc>
  <lastmod>2026-10-10T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/just-command-runner-saves-your-projects-tasks</loc>
  <lastmod>2026-10-11T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/direnv-directory-environments-load-themselves</loc>
  <lastmod>2026-10-12T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/mise-one-tool-runtime-versions-envs-and-tasks</loc>
  <lastmod>2026-10-13T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/chezmoi-manage-your-dotfiles-across-every-machine</loc>
  <lastmod>2026-10-14T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/yazi-blazing-fast-terminal-file-manager</loc>
  <lastmod>2026-10-15T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/gum-add-interactive-ui-your-shell-scripts</loc>
  <lastmod>2026-10-16T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/hyperfine-benchmark-any-command-real-statistics</loc>
  <lastmod>2026-10-17T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/dust-see-whats-eating-your-disk-instantly</loc>
  <lastmod>2026-10-18T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/duf-friendlier-look-your-disks-and-mounts</loc>
  <lastmod>2026-10-19T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/procs-modern-readable-replacement-ps</loc>
  <lastmod>2026-10-20T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/sd-find-and-replace-without-fighting-sed</loc>
  <lastmod>2026-10-21T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/tokei-count-lines-your-codebase-seconds</loc>
  <lastmod>2026-10-22T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/broot-navigate-huge-directory-trees-tiny-window</loc>
  <lastmod>2026-10-23T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/difftastic-diff-understands-code-structure</loc>
  <lastmod>2026-10-24T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/watchexec-run-command-whenever-files-change</loc>
  <lastmod>2026-10-25T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/entr-tiny-classic-running-commands-file-change</loc>
  <lastmod>2026-10-26T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/k9s-terminal-ui-makes-kubernetes-manageable</loc>
  <lastmod>2026-10-27T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/lazydocker-terminal-ui-docker-youll-actually-use</loc>
  <lastmod>2026-10-28T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/dive-explore-docker-image-layers-and-cut-bloat</loc>
  <lastmod>2026-10-29T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ctop-live-top-view-your-containers</loc>
  <lastmod>2026-10-30T09:00:00+08:00</lastmod>
  <changefreq>daily</changefreq>
  <priority>0.7</priority>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/your-tech-debt-isnt-problem-your-tolerance-it</loc>
  <lastmod>2026-06-10T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/tech-debt-tolerance-engineering-culture.webp</image:loc>
   <image:caption>A split illustration contrasting a clean structured building with a crumbling patched version, symbolizing tech debt tolerance in engineering culture.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/senior-engineers-should-code-less</loc>
  <lastmod>2026-06-11T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/senior-engineers-should-code-less.webp</image:loc>
   <image:caption>Senior engineer guiding two developers at their workstations, pointing to a shared architecture diagram in a collaborative team scene.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ai-copilots-senior-engineers-more-dangerous</loc>
  <lastmod>2026-06-12T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/ai-copilots-senior-engineers-more-dangerous.webp</image:loc>
   <image:caption>A confident engineer works alongside a glowing AI orb while their shadow reveals hidden cracks, symbolizing unseen risk behind expertise.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/junior-developers-replaced-or-redefined-by-ai</loc>
  <lastmod>2026-06-06T06:13:51+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/junior-developers-replaced-or-redefined-by-ai.webp</image:loc>
   <image:caption>A junior developer figure stands at a crossroads between an AI orb and an open horizon of system diagrams, choosing their path forward.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ai-code-reviews-safety-net-or-false-confidence</loc>
  <lastmod>2026-06-06T06:50:37+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/ai-code-reviews-safety-net-or-false-confidence-2.webp</image:loc>
   <image:caption>A developer stands confidently on a glowing net that appears solid from above but reveals large gaps from below, symbolizing false confidence in AI review.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/hidden-cost-chasing-the-latest-dev-tool</loc>
  <lastmod>2026-06-06T07:00:16+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/hidden-cost-chasing-the-latest-dev-tool.webp</image:loc>
   <image:caption>A developer runs on a treadmill of glowing tool icons going nowhere, while a calm figure builds steadily at a plain desk in the background.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/best-developers-dont-chase-faang</loc>
  <lastmod>2026-06-06T07:05:03+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/best-developers-dont-chase-faang.webp</image:loc>
   <image:caption>A crowded glowing path leads toward imposing corporate towers while a lone figure takes a quieter path toward a warm independent workshop space.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/event-driven-architecture-harder-than-we-admit</loc>
  <lastmod>2026-06-06T08:12:11+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/event-driven-architecture-harder-than-we-admit.webp</image:loc>
   <image:caption>A glowing event-driven architecture diagram looks elegant from a distance but reveals frayed connections and a failing node on closer inspection.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ai-write-production-database-migrations</loc>
  <lastmod>2026-06-06T08:27:02+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/ai-write-production-database-migrations.webp</image:loc>
   <image:caption>A robotic arm reaching toward a database cylinder with a cautionary glow, representing AI generating production migrations.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/prompt-engineering-not-real-skill</loc>
  <lastmod>2026-06-14T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/prompt-engineering-not-real-skill.webp</image:loc>
   <image:caption>A cracking glass key dissolving beside a sturdy toolbox, representing temporary shortcuts versus durable skills</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/open-source-contributions-overrated-job-seekers</loc>
  <lastmod>2026-06-15T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/open-source-contributions-overrated-job-seekers.webp</image:loc>
   <image:caption>A dusty trophy sitting behind frosted glass beside an open portfolio in clear light, contrasting prestige with practical results</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/real-reason-developers-love-new-frameworks</loc>
  <lastmod>2026-06-26T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/developers-love-new-frameworks.webp</image:loc>
   <image:caption>Developer moving from tangled legacy code toward a clean modular framework path</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ai-copilots-making-senior-engineers-dangerous</loc>
  <lastmod>2026-06-29T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/ai-copilots-senior-engineers-dangerous.webp</image:loc>
   <image:caption>Developer figure at center with radiating geometric patterns showing amplified productivity</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/microservices-mistake-for-most-startups</loc>
  <lastmod>2026-06-30T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/microservices-mistake-startups.webp</image:loc>
   <image:caption>Simple unified block contrasted with tangled web of fragmented services and overwhelmed developers</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/portfolio-projects-matter-more-than-resumes</loc>
  <lastmod>2026-07-04T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/portfolio-projects-matter-more-resumes.webp</image:loc>
   <image:caption>Faded paper résumé on left contrasted with vibrant floating portfolio project cards on right</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/hiring-culture-fit-killing-your-team</loc>
  <lastmod>2026-07-05T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/hiring-culture-fit-killing-team.webp</image:loc>
   <image:caption>Diverse candidate sitting across from nearly identical-looking interviewers in a modern glass-walled conference room</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/technical-debt-unclear-ownership-real-problem</loc>
  <lastmod>2026-07-13T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/technical-debt-unclear-ownership-problem.webp</image:loc>
   <image:caption>Tangled cables running between office desks while engineers on either side look away, ignoring the shared problem</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/dev-teams-dont-need-project-management-overhaul</loc>
  <lastmod>2026-07-19T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/sign-git-commits-gpg-key.webp</image:loc>
   <image:caption>GPG-signed Git commit with cryptographic signature verification and trusted badge</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/productivity-problem-is-context-switching-not-meetings</loc>
  <lastmod>2026-07-22T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/productivity-problem-context-switching-developers.webp</image:loc>
   <image:caption>Developer caught between multiple simultaneous interruptions at desk with notifications, colleague, and unfinished code on screen</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/clean-architecture-overkill-for-most-apps</loc>
  <lastmod>2026-07-23T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/clean-architecture-overkill-apps.webp</image:loc>
   <image:caption>Developer beside overly complex whiteboard diagram, pointing, with a simple app on a laptop showing the contrast</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/you-dont-need-kubernetes-yet</loc>
  <lastmod>2026-08-03T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/you-dont-need-kubernetes-yet.webp</image:loc>
   <image:caption>Small team of developers overwhelmed by complex cluster management dashboard in a startup office environment</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/real-cost-ai-generated-code-nobody-understands</loc>
  <lastmod>2026-08-16T20:46:08+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/real-cost-ai-generated-code-nobody-understands.webp</image:loc>
   <image:caption>Developer alone at night staring at a monitor full of code with a confused and uneasy expression, notebook open and blank beside them</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ai-documentation-tools-developers-worse-at-explaining-code</loc>
  <lastmod>2026-08-18T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/ai-documentation-tools-developers-worse-explaining-code.webp</image:loc>
   <image:caption>Two developers side by side, one writing thoughtfully in a notebook and one passively watching AI generate documentation on screen</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/training-ai-on-bad-code-suggests-bad-code</loc>
  <lastmod>2026-08-19T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/training-ai-bad-code-suggests-bad-code.webp</image:loc>
   <image:caption>Developer examining output from a machine fed by a conveyor belt carrying a mixed stream of high and low quality documents</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/10x-developer-myth-ai-fueling-it-dangerously</loc>
  <lastmod>2026-08-20T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/10x-developer-myth-ai-fueling-dangerously.webp</image:loc>
   <image:caption>Single developer working alone at a glowing desk surrounded by empty abandoned workstations in a darkened office</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/ai-pair-programming-confidently-wrong-direction</loc>
  <lastmod>2026-08-21T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/ai-pair-programming-confidently-wrong-direction.webp</image:loc>
   <image:caption>Developer working with an AI interface on screen while through the window behind them a car sits visibly lost after a wrong turn</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/llms-making-developers-faster-and-shallower</loc>
  <lastmod>2026-08-22T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/opinions/llms-developers-faster-shallower.webp</image:loc>
   <image:caption>Two developers at the same desk in contrasting modes—one moving fast with many open screens, one working slowly and deliberately with a notebook</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/filter-json-logs-with-jq</loc>
  <lastmod>2026-06-15T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tips/jq-filter-json-logs.webp</image:loc>
   <image:caption>Terminal filtering JSON logs to show only error entries using jq</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/rebase-feature-branch-onto-main</loc>
  <lastmod>2026-06-16T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/rebase-feature-branch-onto-main.webp</image:loc>
   <image:caption>A feature branch line smoothly rejoining the tip of the main branch, representing a clean git rebase workflow.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/setup-php-fpm-with-apache</loc>
  <lastmod>2026-06-17T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/setup-php-fpm-with-apache_1.webp</image:loc>
   <image:caption>Apache and PHP-FPM running as separate process pools connected by a FastCGI socket for improved PHP performance.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/setup-fail2ban-block-brute-force-apache</loc>
  <lastmod>2026-06-18T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/setup-fail2ban-block-brute-force-apache.webp</image:loc>
   <image:caption>A glowing digital shield deflecting brute-force attack requests in front of an Apache server, representing Fail2Ban protection.</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/secure-php-sessions-lamp-production-server</loc>
  <lastmod>2026-06-21T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/secure-php-sessions-lamp-production-server.webp</image:loc>
   <image:caption>Padlock securing server rack symbolizing PHP session security on a LAMP production environment</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/install-use-composer-lamp-server</loc>
  <lastmod>2026-06-23T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/install-use-composer-lamp-server.webp</image:loc>
   <image:caption>Composer dependency manager organizing PHP packages on a LAMP server workspace</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/deploy-php-lamp-git-hooks</loc>
  <lastmod>2026-06-24T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/deploy-php-app-lamp-git-hook.webp</image:loc>
   <image:caption>Git post-receive hook deploying a PHP app to a LAMP server with Composer and Apache reload</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/mysql-explain-find-fix-slow-query</loc>
  <lastmod>2026-06-25T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/mysql-explain-find-fix-slow-query.webp</image:loc>
   <image:caption>MySQL EXPLAIN execution plan analysis showing query optimization from table scan to indexed lookup</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/install-configure-memcached-php-sessions-lamp</loc>
  <lastmod>2026-06-28T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/install-configure-memcached-php-sessions-lamp.webp</image:loc>
   <image:caption>Memcached in-memory session storage on a LAMP server with PHP session caching</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/scan-docker-image-vulnerabilities-trivy</loc>
  <lastmod>2026-07-09T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/scan-docker-image-vulnerabilities-trivy.webp</image:loc>
   <image:caption>Trivy security scanner analyzing Docker container image layers for vulnerabilities</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/password-protect-directory-apache-htpasswd</loc>
  <lastmod>2026-07-10T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/password-protect-directory-apache-htpasswd.webp</image:loc>
   <image:caption>Apache directory password protection with htpasswd basic authentication and login prompt</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/configure-apache-php-app-reverse-proxy</loc>
  <lastmod>2026-07-11T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/configure-apache-php-app-reverse-proxy.webp</image:loc>
   <image:caption>Apache reverse proxy forwarding client requests to backend PHP application server with SSL termination</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/migrate-mysql-database-lamp-server-safely</loc>
  <lastmod>2026-07-20T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/migrate-mysql-database-lamp-server-safely.webp</image:loc>
   <image:caption>MySQL database migration from source LAMP server to destination server with secure data transfer</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/write-php-cron-job-schedule-crontab</loc>
  <lastmod>2026-07-21T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/write-php-cron-job-schedule-crontab.webp</image:loc>
   <image:caption>PHP cron job script scheduled with crontab for automated task execution on a schedule</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/test-php-package-multiple-php-versions</loc>
  <lastmod>2026-07-26T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/test-php-package-multiple-php-versions.webp</image:loc>
   <image:caption>Three glowing containers representing PHP 8.1, 8.2, and 8.3 environments running parallel test suites</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/trigger-github-action-php-webhook</loc>
  <lastmod>2026-07-27T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/trigger-github-action-php-webhook_0.webp</image:loc>
   <image:caption>PHP webhook endpoint sending a dispatch signal to trigger a GitHub Actions workflow run</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/cache-composer-dependencies-github-actions</loc>
  <lastmod>2026-07-28T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/cache-composer-dependencies-github-actions.webp</image:loc>
   <image:caption>Abstract CI pipeline with Composer package downloads entering a reusable cache for faster GitHub Actions runs</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/phpstan-static-analysis-github-actions</loc>
  <lastmod>2026-08-01T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/phpstan-static-analysis-github-actions.webp</image:loc>
   <image:caption>Magnifying glass scanning PHP code blocks in a CI pipeline, flagging type errors for static analysisv</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/auto-format-php-code-github-actions</loc>
  <lastmod>2026-08-04T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/auto-format-php-code-github-actions.webp</image:loc>
   <image:caption>Robotic arm aligning misformatted PHP code blocks into a clean grid, representing automated code formatting in CI</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/mysql-container-github-actions-php-tests</loc>
  <lastmod>2026-08-05T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/mysql-container-github-actions-php-tests.webp</image:loc>
   <image:caption>Glowing MySQL database container connected to a PHP test runner inside a GitHub Actions CI pipeline</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/build-custom-github-action-php-docker</loc>
  <lastmod>2026-08-17T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/build-custom-github-action-php-docker.webp</image:loc>
   <image:caption>Open Docker container loaded with PHP components representing a custom GitHub Action with defined inputs and outputs</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/deploy-php-app-remote-server-github-actions</loc>
  <lastmod>2026-08-23T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/deploy-php-app-remote-server-github-actions.webp</image:loc>
   <image:caption>Code packages flowing from a CI pipeline through a secure connection to a remote server during automated deployment</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/run-local-docker-registry-private-images</loc>
  <lastmod>2026-08-24T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
  <image:image>
   <image:loc>https://devtools.ervinalcordo.site/sites/default/files/tutorials/run-local-docker-registry-private-images.webp</image:loc>
   <image:caption>A secure private Docker registry server receiving and storing container images from a local machine</image:caption>
  </image:image>
 </url>
 <url>
  <loc>https://devtools.ervinalcordo.site/automatic-security-updates-ubuntu-unattended-upgrades</loc>
  <lastmod>2026-08-25T09:00:00+08:00</lastmod>
  <changefreq>weekly</changefreq>
  <priority>0.6</priority>
 </url>
</urlset>
