<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  
    <url>
      <loc>https://madole.xyz/404</loc>
      <lastmod>2025-07-31T12:52:48.037Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog-index</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/resume</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/side-projects</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/today-i-learned</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/a-day-in-the-life-of</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/a-quick-glance-at-the-react-19-beta-feature-set</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/analysing-codebase-metadata-to-make-refactoring-more-impactful</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/asset-hashing-with-webpack</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/async-await-es7</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/babel-loaders-hidden-feature-babelrc-false</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/babel-plugin-transform-async-to-module-method-gotcha</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/batching-with-async-await</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/building-a-raspberrypi-internet-speed-checker-with-nodejs-and-googledocs</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/building-node-canvas-in-amazon-linux-ami-for-lambdas</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/building-software-is-much-like-buying-a-house</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/creating-a-gif-from-static-image-files</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/creating-svg-animation-with-walkwayjs</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/cutting-our-codeship-pro-ci-build-time-in-half</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/debugging-minified-code</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/dropping-bananas-on-the-moon-from-a-ufo</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/efficiently-querying-large-geospatial-datasets-with-duckdb-geoparquet-and-s3</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/error-handling-in-express-with-async-await-routes</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/finite-state-machines-and-xstate</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/getting-organised-in-work</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/how-i-approach-an-algorithmic-code-challenge</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/how-i-stress-tested-mapboxs-handling-of-many-polygons</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/how-to-download-an-image-to-file-on-disk-when-scraping-a-website</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/how-to-visualise-weather-stations-on-a-map</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/javascript-interview-questions</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/javascript-toolbox</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/jsfiddle-firebug-lite</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/kablamo-taps-mcdowell-for-geo-spatial-expertise</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/lessons-from-creating-a-component-library</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/meet-the-team</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/migrating-data-from-ghost-to-gatsby</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/mocking-relative-dependencies-in-jest-with-jest-mock</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/my-favourite-atom-packages-of-2015</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/my-favourite-vscode-plugins</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/npm-uses-your-gitignore-file</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/pop-the-console-of-js-library-websites-to-demo-the-library</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/real-time-transport-data-visualization-with-gtfs</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/selenium-actionsequence</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/semver-the-sane-way</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/serverside-css-modules-with-babel</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/setting-up-eslint-on-webstorm-when-using-yarn-berry-with-pnp</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/setting-up-webpack-dev-middleware-in-express</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/some-useful-l</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/spectral-indices</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/unexpected-promise-in-the-bagging-area</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/upgrading-an-old-flow-codebase</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/using-console-time-to-profile-performance-in-your-node-app</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/using-webpack-to-set-up-polyfills-in-your-site</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/webpack-dev-server-where-does-your-css-go</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/what-if-you-could-draw-your-ai-prompts</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/whatsapp-sharing-from-the-mobile-browser</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/whitelisting-multiple-domains-with-kcors-in-koa</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/writing-a-gulpfile-in-es6</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/wtf-are-popcorn-tasks</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
    <url>
      <loc>https://madole.xyz/blog/yarn-package-manager</loc>
      <lastmod>2025-07-31T12:52:48.038Z</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.7</priority>
    </url>
  
</urlset>