<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://kelvinmwinuka.com</loc>
    <lastmod>2026-04-09T08:31:21.369Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/echovault-embeddable-redis-alternative-in-go</loc>
    <lastmod>2024-07-23T15:39:05.737Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/social-login-with-cognito-and-nextauth</loc>
    <lastmod>2023-02-24T20:13:33.475Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/web-sockets-with-api-gateway-and-aws-lambda</loc>
    <lastmod>2022-11-19T11:25:06.860Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/google-login-on-aws-cognito-without-hosted-ui-work-around</loc>
    <lastmod>2022-04-23T17:50:54.617Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/deploy-cognito-triggers-using-serverless-framework</loc>
    <lastmod>2022-04-11T15:36:48.433Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/pre-signup-validation-on-aws-cognito</loc>
    <lastmod>2022-04-08T20:27:19.667Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/basic-authentication-with-aws-cognito-and-nextjs</loc>
    <lastmod>2022-04-04T15:36:46.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/verify-users-in-expressjs</loc>
    <lastmod>2020-12-30T06:29:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/handle-password-reset-in-expressjs</loc>
    <lastmod>2020-12-24T13:05:34.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/create-registration-and-authentication-with-express-and-passportjs</loc>
    <lastmod>2020-12-21T06:47:38.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/set-up-mongoose-with-expressjs</loc>
    <lastmod>2020-12-17T03:12:58.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/set-up-nunjucks-with-expressjs</loc>
    <lastmod>2020-12-16T02:33:04.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/periodically-pull-financial-data-with-python-and-cron</loc>
    <lastmod>2020-10-11T19:11:49.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/optimise-react-with-usememo-and-reactmemo</loc>
    <lastmod>2020-10-07T18:45:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/manage-react-state-with-usereducer</loc>
    <lastmod>2020-08-21T00:48:44.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/easy-workbox-integration-with-create-react-app</loc>
    <lastmod>2020-08-05T05:25:57.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/setting-up-redux-in-react</loc>
    <lastmod>2020-07-11T12:06:42.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/testing-react-app-with-jest-and-puppeteer</loc>
    <lastmod>2020-07-02T05:47:18.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/python-higher-order-functions</loc>
    <lastmod>2019-12-29T23:39:43.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/python-lambda-functions</loc>
    <lastmod>2019-12-23T16:56:41.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/structuring-large-applications-in-flask-using-blueprints</loc>
    <lastmod>2019-11-12T05:17:11.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/5-mistakes-i-made-as-a-new-programmer</loc>
    <lastmod>2019-11-10T21:30:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/using-environment-variables-in-flask-configuration</loc>
    <lastmod>2019-11-06T19:27:02.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/the-best-programming-language</loc>
    <lastmod>2019-11-06T08:00:00.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/organise-flask-configurations-the-right-way</loc>
    <lastmod>2019-11-02T12:48:50.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/automating-tasks-using-a-web-crawler</loc>
    <lastmod>2019-11-02T03:34:26.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/run-selenium-on-macos-using-chromedriver</loc>
    <lastmod>2019-11-01T22:13:42.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/the-importance-of-soft-skills-in-a-developer</loc>
    <lastmod>2019-11-01T22:07:47.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/series/the-aws-cognito-series</loc>
    <lastmod>2026-04-09T08:31:21.369Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/series/express-js-series</loc>
    <lastmod>2026-04-09T08:31:21.369Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/series/caching</loc>
    <lastmod>2026-04-09T08:31:21.369Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/archive</loc>
    <lastmod>2026-04-09T08:31:21.369Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://kelvinmwinuka.com/recommendations</loc>
    <lastmod>2026-04-09T08:31:21.369Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>