<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <url>
    <loc>https://www.gperrucci.com</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/about</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/contact</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/open-source</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/services/ecommerce-development</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/services/software-consulting</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/services/backend-development</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/services/full-stack-development</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/false-dichotomy-of-functions-and-objects</loc>
    <lastmod>Sun Mar 22 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/aws/architecting-for-resilience-zombie-instance-problem</loc>
    <lastmod>Mon Mar 09 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/stateful-scaling-crisis</loc>
    <lastmod>Sat Mar 07 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/aws/taming-the-relational-beast</loc>
    <lastmod>Thu Mar 05 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/aws/scaling-async-workloads-bullmq-aws</loc>
    <lastmod>Mon Mar 02 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/aws/architectural-orchestration-modern-network-traffic</loc>
    <lastmod>Fri Feb 27 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/resilient-multi-file-upload-architecture</loc>
    <lastmod>2026-01-31</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nodejs/solving-the-last-item-problem-handling-race-conditions-in-order-submissions</loc>
    <lastmod>Tue Jan 27 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nodejs/node-js-single-threaded-high-concurrency-io</loc>
    <lastmod>Thu Jan 08 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nodejs/diagnosing-memory-leaks-nodejs-production</loc>
    <lastmod>2026-01-07</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nodejs/understanding-libuvs-role-in-nodejs</loc>
    <lastmod>Tue Jan 06 2026 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/choosing-software-stack-2026</loc>
    <lastmod>2026-01-02</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/library-vs-framework-decision-matrix</loc>
    <lastmod>Tue Dec 16 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/pair-programming-styles</loc>
    <lastmod>Tue Dec 16 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/typescript/branded-types-zod-senior-engineer-secret-safety</loc>
    <lastmod>Sun Dec 14 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/why-migrating-design-systems-away-from-styled-components</loc>
    <lastmod>Thu Dec 11 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/how-i-structure-nextjs-projects-for-scale</loc>
    <lastmod>Sun Dec 07 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/mental-shift-nextjs-12-app-router</loc>
    <lastmod>Sat Dec 06 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/teamwork-in-software-engineering</loc>
    <lastmod>Wed Dec 03 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/css/css-subgrid-consistent-complex-layouts</loc>
    <lastmod>Mon Nov 24 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/why-back-end-development-matters-more-than-most-people-think</loc>
    <lastmod>Fri Nov 21 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/from-browser-to-cloud-how-modern-web-apps-actually-work</loc>
    <lastmod>Fri Nov 14 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/modern-front-end-development-from-html-css-to-angular-react-and-vue</loc>
    <lastmod>Fri Nov 14 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/roles-in-software-engineering-projects</loc>
    <lastmod>Thu Nov 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/software-documentation-explained</loc>
    <lastmod>Thu Nov 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/agile-in-practice-pragmatic-guide-frontend-teams</loc>
    <lastmod>Wed Nov 12 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/practical-software-versioning-package-json-ranges</loc>
    <lastmod>Wed Nov 12 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/assert-non-existence-react-testing-library</loc>
    <lastmod>Mon Nov 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/sdlc-six-phases-explained</loc>
    <lastmod>Fri Nov 07 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/what-is-software-engineering</loc>
    <lastmod>Thu Nov 06 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/software-engineering-fundamentals-sdlc</loc>
    <lastmod>Wed Nov 05 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/perfectly-fitting-text-react-tradeoffs</loc>
    <lastmod>Wed Oct 15 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nodejs/buffer-streams-in-nodejs</loc>
    <lastmod>Wed Oct 08 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/javascript/event-loop-in-depth</loc>
    <lastmod>Wed Jun 18 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/javascript/junior-interview-questions</loc>
    <lastmod>Sun Jun 15 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/javascript/event-loop-explained</loc>
    <lastmod>Fri Jun 13 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/css/attr-function</loc>
    <lastmod>Tue Apr 15 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nextjs/deploy-nextjs-to-cloudflare-workers</loc>
    <lastmod>Mon Apr 14 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/css/styling-native-select</loc>
    <lastmod>Mon Apr 07 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/css/responsive-design-clamp-min-max-dvh</loc>
    <lastmod>Sat Apr 05 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/front-end-architecture</loc>
    <lastmod>Fri Apr 04 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nextjs/alternatives-to-vercel-nextjs-hosting</loc>
    <lastmod>Thu Apr 03 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/yagni-principle-ux-design</loc>
    <lastmod>Mon Mar 31 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/css/mask-image</loc>
    <lastmod>Thu Mar 20 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/engineering/solid-clean-yagni-kiss</loc>
    <lastmod>Wed Mar 19 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nextjs/server-component-vs-client-components</loc>
    <lastmod>Mon Mar 10 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/swc-vs-react-query</loc>
    <lastmod>Thu Mar 06 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/exploring-signals-react</loc>
    <lastmod>Tue Mar 04 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nextjs/nextjs-app-router-vs-pages-router</loc>
    <lastmod>Fri Feb 28 2025 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/nextjs/nextjs-14-nextjs-13-handling-forms</loc>
    <lastmod>Fri Aug 23 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/css/animate-transition-from-display-none</loc>
    <lastmod>Mon Aug 05 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/machine-learning/references-and-code-examples</loc>
    <lastmod>Sun Jun 02 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/machine-learning/visualization-missing-values</loc>
    <lastmod>Sun Jun 02 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/machine-learning/learning-handling-missing-values</loc>
    <lastmod>Sat Jun 01 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/machine-learning/iloc-cheatsheet</loc>
    <lastmod>Wed May 29 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/machine-learning/machine-learning-feature-scaling</loc>
    <lastmod>Mon May 27 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/machine-learning/machine-learning-process</loc>
    <lastmod>Mon May 27 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/machine-learning/machine-learning-tools</loc>
    <lastmod>Sun May 26 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/blog/react/new-compiler-react-19</loc>
    <lastmod>Sun May 26 2024 00:00:00 GMT+0000 (Coordinated Universal Time)</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/web/ice-mortgage-design-system</loc>
    <lastmod>2018</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/fullstack/direct-yield-market</loc>
    <lastmod>2024</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/web/nav-finance-backoffice</loc>
    <lastmod>2023</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/web/hocelot-aserta</loc>
    <lastmod>2025</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/web/personal-website</loc>
    <lastmod>2025</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/web/riot-games-site-builder</loc>
    <lastmod>2022</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/fintech/santander-product-engine</loc>
    <lastmod>2016</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/backend/titanbank-b2b-onboarding</loc>
    <lastmod>2022</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/software/tnx-systems-evolution</loc>
    <lastmod>2014</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/development/freelance-solutions</loc>
    <lastmod>2006</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/agency/elevation-web-agency-lead</loc>
    <lastmod>2011</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/software/cit-drupal-mobile</loc>
    <lastmod>2012</lastmod>
    <changefreq>weekly</changefreq>
  </url>
  <url>
    <loc>https://www.gperrucci.com/work/ecommerce/idg-online-ecommerce</loc>
    <lastmod>2009</lastmod>
    <changefreq>weekly</changefreq>
  </url>
</urlset>