<?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://www.evantahler.com/about</loc><lastmod>2026-05-01T04:05:18.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2011-11-02-a-blog</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2011-11-02-agile-business-intelligence</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2011-12-01-movember</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2011-12-01-node-spider</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2011-12-03-the-webkit-console-is-rendered</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2011-12-11-node-checker</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2011-12-23-announcing-actionoero-js</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-01-14-githire</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-01-14-on-node-js-and-phidgets</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-01-14-running-node-on-a-phidget-board</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-01-16-running-nodejs-on-sbc2-phidget-board</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-01-21-life-manifesto-2012</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-01-27-unicorns</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-01-30-nodechecker-update-now-with-ssh-and-sockets</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-02-01-unicorns-in-node</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-02-07-give-travisci-money</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-02-13-node-spider-now-on-actionhero</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-02-15-pivotal-tracker-and-nerf-guns</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-02-16-small-update-to-node-phidgets</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-02-17-sf-from-a-yinzers-pov</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-02-24-hacked-or-a-reminder-about-why-unix-permissions-matter</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-03-18-actionhero-v1</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-03-23-actionhero-now-at-level-2</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-03-30-testing-actionhero-with-blitz</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-04-04-deploying-node-apps-with-capistrano</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-04-04-google-analytics-curl</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-04-11-actions-vs-tasks</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-04-11-phonegap-and-push-notifications</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-05-22-electric-imp</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-07-31-i-am-a-nerd</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-08-02-actionhero-v2</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-08-02-it-has-been-so-long</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-08-12-npm-and-generators</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-09-09-npm-run-script</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-09-10-production-deployment-with-node-js-clusters</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-10-04-gitHub-resume</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-11-17-actionhero-client-turns-1</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-11-24-what-to-do-when-softpedia-scrapes-your-project</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-12-04-exception-patterns-in-node-js</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-12-13-domains-and-nodejs</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-12-20-delete-old-git-branches</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2012-12-23-jekyll-markdown-and-more</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-01-07-owncloud-and-dreamhost</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-01-13-actionhero-v4-2-2</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-01-29-makara</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-02-18-authetntication-with-actionhero</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-02-28-the-real-reason-i-will-not-be-your-technical-cofounder</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-03-10-api-first-reboot</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-03-19-when-does-api-first-not-apply</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-03-24-on-task-systems</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-04-14-forklift-moving-big-databases-around-in-ruby</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-06-06-actionhero-v4-1</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-06-10-authentication-with-actionhero-again</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-07-05-actionhero-tutorials</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-10-14-on-inclusion</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-10-28-ruby-osx-mavericks</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2013-12-04-actionhero-v7</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-01-04-on-actionhero-routing</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-01-06-elasticdump</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-02-13-airbrake-and-actionhero</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-03-10-actionhero-and-newrelic</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-04-24-active-record-mysql-and-emoji</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-06-06-actionHero-v9-0-0</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-07-18-elasticsearch-in-production</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-08-27-statusbot</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2014-12-07-node-for-not-http</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2015-01-07-elasticseach-production-notes-part-2</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2015-02-16-background-tasks-in-node</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2015-03-12-ansible-static-dynamic-inventory</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2015-03-12-rebuilding-capistrano-with-ansible</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2015-04-17-git-whereami</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2015-07-14-ansible-tips-and-tricks</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2015-10-15-actionhero-bootstrap-angular</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-01-09-switchboard-chat</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-04-24-actionhero-and-tessel-2</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-05-11-background-tasks-in-nodejs-a-survey-with-redis</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-05-14-good-old-games-osx-resolution</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-05-16-actionhero-community-on-slack</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-05-28-a-memory-leak-in-node</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-06-24-actionhero-v14-and-a-problem</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-07-07-actionheros-resque-ui</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-07-23-ansible-lets-encrypt-nginx-and-actionhero</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-07-25-building-and-testing-actionhero-plugins</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-08-07-actionhero-v15</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-09-22-ruby-homebrew-and-osx-sierra</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-10-11-too-many-chrome-tabs</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-10-26-actionhero-nodejs-v7</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-10-28-actionhero-v5-1-2-security-release</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-10-28-productionizing-flynn</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-10-29-deploying-from-flynn-to-travisci</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-12-14-actionhero-and-standardjs</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2016-12-23-on-ethical-ad-supported-businesses</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2017-02-28-why-choose-actionhero</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2017-03-23-scoreboard-guru-initial-release</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2017-04-03-dont-be-a-jerk-oss</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2017-06-09-elasticdump-maintinaer</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2017-08-14-cloudflare-and-ssr-react</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2017-10-07-actionhero-v18-async-await</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2018-01-04-goodbye-scoreboard-guru</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2018-03-28-testing-node-apps-with-selenium</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2018-06-22-customizable-other-option-in-google-forms</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2018-10-09-tips-for-building-international-products</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2018-11-01-data-science-vs-analytics</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2018-12-31-repeat-rate</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-01-08-controlling-your-magic-painting-with-your-words</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-03-02-the-voom-software-engineering-interview-process</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-08-09-keep-that-vpn-connected-on-osx</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-09-13-using-next-js-for-static-sites</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-09-30-actionhero-for-real-time-games</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-10-07-failing-a-task</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-10-15-online-offline-sync</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-10-19-github-sponsorship</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-10-21-actions-tasks-and-destructured-params</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-12-02-markdown-in-react-and-custom-page-elements</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2019-12-30-proxying-free-heroku-dynos-though-cloudflare-to-a-custom-domain</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-02-18-production-node-applications-with-docker</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-03-01-actionhero-developer-survey-results</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-05-07-grouparoo-monorepo-deployment</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-05-22-pull-the-data-you-actually-want</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-07-23-nextjs-plugins</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-09-14-save-your-high-water-marks-as-strings</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-10-16-typescript-frontend-backend</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2020-11-13-developing-grouparoo-on-macos-big-sur</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-01-21-defering-side-effects-in-node</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-02-12-gifit</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-03-04-sql-dialect-differences</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-03-17-dont-use-underscores-in-http-headers</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-04-13-google-cloud-run-no-background-job</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-05-14-varchar-191</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-06-03-distributing-nextjs-via-npm</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-06-11-heroku-slack-notifications</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2021-08-16-node-js-and-ipv6</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2022-01-06-typescript-types-from-class-properties</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2022-12-19-build-software-products-faster-by-thinking-like-a-data-engineer</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2023-01-03-architecture-notes-2022-ctf</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2023-01-19-airbyte-connector-release-stages</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2023-03-01-accelerating-alpha-connectors-to-airbyte-cloud</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2023-04-28-upgrading-community-prs</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2023-06-01-airbyte-checkpointing</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2023-08-29-introducing-airbyte-destinations-v2</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2024-04-04-announcing-record-change-history</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2024-04-17-cost-conscious-elt-strategies</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2024-10-31-choose-a-database-with-hybrid-vector-search-for-your-ai-applications</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2025-01-14-permissions-for-ai-use-cases</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2025-01-15-the-components-of-an-ai-data-pipeline</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2025-07-23-designing-sql-tools-for-ai-agents</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2026-03-13-announcing-keryx</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/post/2026-03-13-curl-for-mcp</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/blog/tags</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/contact</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/</loc><lastmod>2026-05-01T02:46:45.000Z</lastmod></url><url><loc>https://www.evantahler.com/open-source</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url><url><loc>https://www.evantahler.com/speaking</loc><lastmod>2026-05-01T01:25:23.000Z</lastmod></url></urlset>