<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <lastmod>2026-04-04</lastmod>
    <loc>https://gajus.com/</loc>
  </url>
  <url>
    <lastmod>2026-03-18</lastmod>
    <loc>https://gajus.com/blog/isolated-development-environments-for-agentic-development</loc>
  </url>
  <url>
    <lastmod>2026-03-12</lastmod>
    <loc>https://gajus.com/blog/batching-redis-lookups-with-dataloader-and-mget</loc>
  </url>
  <url>
    <lastmod>2026-01-21</lastmod>
    <loc>https://gajus.com/blog/this-blog-was-made-by-ai</loc>
  </url>
  <url>
    <lastmod>2026-01-21</lastmod>
    <loc>https://gajus.com/blog/test-markdown</loc>
  </url>
  <url>
    <lastmod>2026-01-20</lastmod>
    <loc>https://gajus.com/blog/x-for-you-algorithm-disected</loc>
  </url>
  <url>
    <lastmod>2024-11-14</lastmod>
    <loc>https://gajus.com/blog/twitter-most-likely-regrets-adding-follow</loc>
  </url>
  <url>
    <lastmod>2024-04-24</lastmod>
    <loc>https://gajus.com/blog/fine-tuning-openai-models</loc>
  </url>
  <url>
    <lastmod>2024-04-22</lastmod>
    <loc>https://gajus.com/blog/avoiding-visually-ambiguous-characters-in-ids</loc>
  </url>
  <url>
    <lastmod>2024-04-12</lastmod>
    <loc>https://gajus.com/blog/setting-up-postgre-sql-for-running-integration-tests</loc>
  </url>
  <url>
    <lastmod>2024-04-03</lastmod>
    <loc>https://gajus.com/blog/designing-one-to-one-relationships-in-postgresql</loc>
  </url>
  <url>
    <lastmod>2024-04-02</lastmod>
    <loc>https://gajus.com/blog/the-case-for-native-assertions-in-postgresql</loc>
  </url>
  <url>
    <lastmod>2024-03-21</lastmod>
    <loc>https://gajus.com/blog/how-to-add-sentry-tracing-to-your-node-js-app</loc>
  </url>
  <url>
    <lastmod>2023-10-16</lastmod>
    <loc>https://gajus.com/blog/what-makes-great-engineering-teams</loc>
  </url>
  <url>
    <lastmod>2023-10-16</lastmod>
    <loc>https://gajus.com/blog/testing-rehype-pretty-code</loc>
  </url>
  <url>
    <lastmod>2023-09-30</lastmod>
    <loc>https://gajus.com/blog/integrating-fastify-with-slonik</loc>
  </url>
  <url>
    <lastmod>2023-09-29</lastmod>
    <loc>https://gajus.com/blog/integrating-slonik-with-express-js</loc>
  </url>
  <url>
    <lastmod>2023-06-29</lastmod>
    <loc>https://gajus.com/blog/attempting-large-code-refactor-using-llms</loc>
  </url>
  <url>
    <lastmod>2023-02-15</lastmod>
    <loc>https://gajus.com/blog/detecting-unnecessarily-mounted-react-components-in-a-large-app</loc>
  </url>
  <url>
    <lastmod>2022-11-16</lastmod>
    <loc>https://gajus.com/blog/debugging-mysterious-traffic-from-boardman-or</loc>
  </url>
  <url>
    <lastmod>2022-10-06</lastmod>
    <loc>https://gajus.com/blog/bulk-inserting-nested-data-into-the-database-part-ii</loc>
  </url>
  <url>
    <lastmod>2022-10-06</lastmod>
    <loc>https://gajus.com/blog/how-a-few-lines-of-code-reduced-database-load</loc>
  </url>
  <url>
    <lastmod>2022-10-05</lastmod>
    <loc>https://gajus.com/blog/routing-postgresql-queries-between-read-write-and-read-only-instances</loc>
  </url>
  <url>
    <lastmod>2022-09-30</lastmod>
    <loc>https://gajus.com/blog/building-advanced-sql-search-from-a-user-text-input</loc>
  </url>
  <url>
    <lastmod>2022-09-23</lastmod>
    <loc>https://gajus.com/blog/writing-composable-sql-using-javascript</loc>
  </url>
  <url>
    <lastmod>2022-09-11</lastmod>
    <loc>https://gajus.com/blog/fully-qualified-names-vs-a-jungle-of-imports</loc>
  </url>
  <url>
    <lastmod>2022-09-07</lastmod>
    <loc>https://gajus.com/blog/rewriting-tests-from-cypress-to-playwright-using-gpt3</loc>
  </url>
  <url>
    <lastmod>2022-09-07</lastmod>
    <loc>https://gajus.com/blog/migrating-from-cypress-to-playwright-using-gpt3</loc>
  </url>
  <url>
    <lastmod>2022-08-05</lastmod>
    <loc>https://gajus.com/blog/validating-postgresql-results-inferring-query-static-types</loc>
  </url>
  <url>
    <lastmod>2022-06-27</lastmod>
    <loc>https://gajus.com/blog/what-makes-a-good-commit</loc>
  </url>
  <url>
    <lastmod>2021-08-10</lastmod>
    <loc>https://gajus.com/blog/cto-vs-head-of-engineer</loc>
  </url>
  <url>
    <lastmod>2020-10-26</lastmod>
    <loc>https://gajus.com/blog/redesigning-remote-team-culture</loc>
  </url>
  <url>
    <lastmod>2020-09-25</lastmod>
    <loc>https://gajus.com/blog/how-i-got-my-first-nodejs-job</loc>
  </url>
  <url>
    <lastmod>2020-09-21</lastmod>
    <loc>https://gajus.com/blog/gitignore-mistake-that-everyone-makes</loc>
  </url>
  <url>
    <lastmod>2020-08-23</lastmod>
    <loc>https://gajus.com/blog/onboarding-email-with-80-response-rate</loc>
  </url>
  <url>
    <lastmod>2020-08-15</lastmod>
    <loc>https://gajus.com/blog/why-remote-working-is-bad</loc>
  </url>
  <url>
    <lastmod>2020-08-09</lastmod>
    <loc>https://gajus.com/blog/the-magic-of-engineered-serendipity</loc>
  </url>
  <url>
    <lastmod>2020-06-05</lastmod>
    <loc>https://gajus.com/blog/5-tips-for-remote-job-seekers</loc>
  </url>
  <url>
    <lastmod>2020-04-30</lastmod>
    <loc>https://gajus.com/blog/how-to-execute-effective-daily-standups-using-slack</loc>
  </url>
  <url>
    <lastmod>2020-04-22</lastmod>
    <loc>https://gajus.com/blog/solving-social-isolation</loc>
  </url>
  <url>
    <lastmod>2020-02-22</lastmod>
    <loc>https://gajus.com/blog/stack-overflow-is-leaking-user-emails</loc>
  </url>
  <url>
    <lastmod>2020-02-07</lastmod>
    <loc>https://gajus.com/blog/mocking-postgresql-queries-in-node-js</loc>
  </url>
  <url>
    <lastmod>2020-01-31</lastmod>
    <loc>https://gajus.com/blog/ultimate-guide-to-concurrent-logging-in-node-js</loc>
  </url>
  <url>
    <lastmod>2020-01-29</lastmod>
    <loc>https://gajus.com/blog/using-http-proxy-with-puppeteer</loc>
  </url>
  <url>
    <lastmod>2020-01-27</lastmod>
    <loc>https://gajus.com/blog/traveling-and-working-remotely-from-japan</loc>
  </url>
  <url>
    <lastmod>2020-01-19</lastmod>
    <loc>https://gajus.com/blog/how-to-terminate-a-http-server-in-nodejs</loc>
  </url>
  <url>
    <lastmod>2019-11-18</lastmod>
    <loc>https://gajus.com/blog/why-imdb-ids-cannot-be-trusted-and-why-not-to-use-padded-ids</loc>
  </url>
  <url>
    <lastmod>2019-11-09</lastmod>
    <loc>https://gajus.com/blog/ensuring-healthy-nodejs-program-using-watchdog-timer</loc>
  </url>
  <url>
    <lastmod>2019-11-02</lastmod>
    <loc>https://gajus.com/blog/declarative-way-to-cache-postgresql-queries-using-nodejs</loc>
  </url>
  <url>
    <lastmod>2019-11-02</lastmod>
    <loc>https://gajus.com/blog/handling-unhandled-promise-rejections</loc>
  </url>
  <url>
    <lastmod>2019-11-01</lastmod>
    <loc>https://gajus.com/blog/detecting-a-promise-that-will-never-resolve-reject</loc>
  </url>
  <url>
    <lastmod>2019-09-26</lastmod>
    <loc>https://gajus.com/blog/stop-using-package-lock-json-or-yarn-lock</loc>
  </url>
  <url>
    <lastmod>2019-09-11</lastmod>
    <loc>https://gajus.com/blog/mistake-that-cost-thousands-kubernetes-gke</loc>
  </url>
  <url>
    <lastmod>2019-09-04</lastmod>
    <loc>https://gajus.com/blog/my-favorite-css-hack</loc>
  </url>
  <url>
    <lastmod>2019-08-30</lastmod>
    <loc>https://gajus.com/blog/dynamically-generating-sql-queries-using-nodejs</loc>
  </url>
  <url>
    <lastmod>2019-08-14</lastmod>
    <loc>https://gajus.com/blog/logging-in-browser</loc>
  </url>
  <url>
    <lastmod>2019-08-09</lastmod>
    <loc>https://gajus.com/blog/warming-cache</loc>
  </url>
  <url>
    <lastmod>2019-08-03</lastmod>
    <loc>https://gajus.com/blog/capturing-stdout-stderr-in-node-js-using-domain-module</loc>
  </url>
  <url>
    <lastmod>2019-02-12</lastmod>
    <loc>https://gajus.com/blog/stop-using-knex-js</loc>
  </url>
  <url>
    <lastmod>2019-02-11</lastmod>
    <loc>https://gajus.com/blog/processing-large-volumes-of-data-safely-and-fast-using-nodejs-and-postgresql</loc>
  </url>
  <url>
    <lastmod>2019-01-28</lastmod>
    <loc>https://gajus.com/blog/lessons-learned-scaling-postgresql-database-to-1-2bn-records-month</loc>
  </url>
  <url>
    <lastmod>2018-07-06</lastmod>
    <loc>https://gajus.com/blog/the-case-for-array-replace</loc>
  </url>
  <url>
    <lastmod>2018-06-22</lastmod>
    <loc>https://gajus.com/blog/automating-persistent-integration-testing-and-alerting</loc>
  </url>
  <url>
    <lastmod>2018-05-25</lastmod>
    <loc>https://gajus.com/blog/ive-accessed-my-email-inbox-that-i-have-not-used-for-7-years-and-found-15559-emails</loc>
  </url>
  <url>
    <lastmod>2018-04-09</lastmod>
    <loc>https://gajus.com/blog/do-not-protect-your-website-from-scraping-part-1-technology-barriers</loc>
  </url>
  <url>
    <lastmod>2018-02-14</lastmod>
    <loc>https://gajus.com/blog/compressing-graphql-response</loc>
  </url>
  <url>
    <lastmod>2017-12-03</lastmod>
    <loc>https://gajus.com/blog/applaudience-go2cinema</loc>
  </url>
  <url>
    <lastmod>2017-11-15</lastmod>
    <loc>https://gajus.com/blog/i-reduced-graphql-codebase-size-by-40-and-increased-type-coverage-to-90</loc>
  </url>
  <url>
    <lastmod>2017-11-15</lastmod>
    <loc>https://gajus.com/blog/using-dataloader-to-batch-requests</loc>
  </url>
  <url>
    <lastmod>2017-10-31</lastmod>
    <loc>https://gajus.com/blog/web-app-error-tracking</loc>
  </url>
  <url>
    <lastmod>2017-10-27</lastmod>
    <loc>https://gajus.com/blog/flow-runtime</loc>
  </url>
  <url>
    <lastmod>2017-10-02</lastmod>
    <loc>https://gajus.com/blog/roarr-the-perfect-json-logger</loc>
  </url>
  <url>
    <lastmod>2017-09-30</lastmod>
    <loc>https://gajus.com/blog/the-twitter-effect</loc>
  </url>
  <url>
    <lastmod>2017-09-09</lastmod>
    <loc>https://gajus.com/blog/file-sharing-and-piracy-cinema-industry</loc>
  </url>
  <url>
    <lastmod>2017-09-08</lastmod>
    <loc>https://gajus.com/blog/do-file-sharing-and-piracy-eat-at-the-roots</loc>
  </url>
  <url>
    <lastmod>2017-09-05</lastmod>
    <loc>https://gajus.com/blog/hacking-medium-self-hosted-blogging</loc>
  </url>
  <url>
    <lastmod>2017-08-20</lastmod>
    <loc>https://gajus.com/blog/react-v16-self-destructing-components</loc>
  </url>
  <url>
    <lastmod>2017-08-07</lastmod>
    <loc>https://gajus.com/blog/biggest-ux-mistake-ecommerce-discount-code</loc>
  </url>
  <url>
    <lastmod>2017-07-29</lastmod>
    <loc>https://gajus.com/blog/london-filming-sites-imdb-top-1000</loc>
  </url>
  <url>
    <lastmod>2017-07-11</lastmod>
    <loc>https://gajus.com/blog/replacing-coordinates-with-mgrs</loc>
  </url>
  <url>
    <lastmod>2017-07-08</lastmod>
    <loc>https://gajus.com/blog/pre-rendering-spa-for-seo-and-improved-perceived-page-loading-speed</loc>
  </url>
  <url>
    <lastmod>2017-07-05</lastmod>
    <loc>https://gajus.com/blog/making-anchor-links-work-spa</loc>
  </url>
  <url>
    <lastmod>2017-07-01</lastmod>
    <loc>https://gajus.com/blog/react-application-seen-as-a-blank-page-via-fetch-as-google</loc>
  </url>
  <url>
    <lastmod>2017-05-12</lastmod>
    <loc>https://gajus.com/blog/distributing-a-self-replicating-malicious-code-using-npm</loc>
  </url>
  <url>
    <lastmod>2017-04-27</lastmod>
    <loc>https://gajus.com/blog/stop-using-css-in-javascript-for-web-development</loc>
  </url>
  <url>
    <lastmod>2017-02-02</lastmod>
    <loc>https://gajus.com/blog/protecting-apis-from-ddos-attacks-by-signing-resource-identifiers</loc>
  </url>
  <url>
    <lastmod>2017-01-26</lastmod>
    <loc>https://gajus.com/blog/the-wheels-of-open-source</loc>
  </url>
  <url>
    <lastmod>2017-01-25</lastmod>
    <loc>https://gajus.com/blog/making-docker-in-docker-builds-x2-faster</loc>
  </url>
  <url>
    <lastmod>2017-01-20</lastmod>
    <loc>https://gajus.com/blog/parsing-absolutely-anything-in-javascript</loc>
  </url>
  <url>
    <lastmod>2017-01-09</lastmod>
    <loc>https://gajus.com/blog/developing-isomorphic-applications-using-webpack</loc>
  </url>
  <url>
    <lastmod>2017-01-08</lastmod>
    <loc>https://gajus.com/blog/helm-kubernetes</loc>
  </url>
  <url>
    <lastmod>2017-01-06</lastmod>
    <loc>https://gajus.com/blog/git-gui-staging</loc>
  </url>
  <url>
    <lastmod>2016-12-30</lastmod>
    <loc>https://gajus.com/blog/babel-debugging</loc>
  </url>
  <url>
    <lastmod>2016-12-09</lastmod>
    <loc>https://gajus.com/blog/dont-use-babel-transpilers-when-debugging-an-application</loc>
  </url>
  <url>
    <lastmod>2016-08-19</lastmod>
    <loc>https://gajus.com/blog/using-dataloader-to-batch-requests</loc>
  </url>
  <url>
    <lastmod>2016-04-24</lastmod>
    <loc>https://gajus.com/blog/using-mysql-in-node-js</loc>
  </url>
  <url>
    <lastmod>2016-04-24</lastmod>
    <loc>https://gajus.com/blog/behaviour-driven-development-with-javascript</loc>
  </url>
  <url>
    <lastmod>2016-04-24</lastmod>
    <loc>https://gajus.com/blog/mysql-sinsert</loc>
  </url>
  <url>
    <lastmod>2016-04-24</lastmod>
    <loc>https://gajus.com/blog/pro-angularjs</loc>
  </url>
  <url>
    <lastmod>2016-04-24</lastmod>
    <loc>https://gajus.com/blog/the-definitive-guide-to-the-es7-async-functions</loc>
  </url>
  <url>
    <lastmod>2016-04-24</lastmod>
    <loc>https://gajus.com/blog/the-definitive-guide-to-the-javascript-generators</loc>
  </url>
  <url>
    <lastmod>2015-01-26</lastmod>
    <loc>https://gajus.com/blog/harder-better-faster-stronger-lodash-v3</loc>
  </url>
  <url>
    <lastmod>2014-10-04</lastmod>
    <loc>https://gajus.com/blog/the-definitive-guide-to-the-javascript-generators</loc>
  </url>
  <url>
    <lastmod>2014-09-24</lastmod>
    <loc>https://gajus.com/blog/behaviour-driven-development-with-javascript</loc>
  </url>
</urlset>