<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.michaelkaren.dev</loc>
    <lastmod>2026-08-12T18:37:38.172Z</lastmod>
    <changefreq>always</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/angular-error-interceptor</loc>
    <lastmod>2022-01-31T10:10:31.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-combine-add-and-edit-forms-in-angular</loc>
    <lastmod>2022-01-24T09:54:46.393Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/game-development-breakout-in-javascript</loc>
    <lastmod>2022-01-24T07:59:11.739Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-get-started-with-canvas-animations-in-javascript</loc>
    <lastmod>2021-05-25T21:46:32.622Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/7-useful-javascript-tricks-and-tips</loc>
    <lastmod>2021-05-25T21:44:03.746Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/a-promise-of-asynchronous-javascript-2d09b9be7019</loc>
    <lastmod>2021-05-11T13:36:25.326Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/maintaining-multi-language-angular-applications-i18n</loc>
    <lastmod>2023-12-12T08:48:01.945Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-save-high-scores-in-local-storage-7860baca9d68</loc>
    <lastmod>2021-05-13T13:47:55.378Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-spread-vs-rest</loc>
    <lastmod>2021-06-02T11:12:56.798Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-template-literals</loc>
    <lastmod>2021-08-22T09:12:32.874Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-proxy</loc>
    <lastmod>2021-05-13T13:54:56.233Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-destructuring</loc>
    <lastmod>2021-05-13T13:55:42.559Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-arrow-functions</loc>
    <lastmod>2021-05-13T14:13:20.657Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-classes</loc>
    <lastmod>2021-05-13T14:13:41.518Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-variables-and-scope</loc>
    <lastmod>2021-08-22T09:16:14.758Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/learning-modern-javascript-with-tetris-92d532bcd057</loc>
    <lastmod>2021-05-13T13:50:14.583Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/game-development-tetris-in-angular-64ef96ce56f7</loc>
    <lastmod>2021-05-13T14:15:06.650Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-talk-with-web-components-in-react-and-angular-8deb7d2fb92a</loc>
    <lastmod>2021-05-13T14:15:24.559Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/the-state-of-web-components-e3f746a22d75</loc>
    <lastmod>2021-05-13T14:15:42.885Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-get-started-with-canvas-animations-in-angular-2f797257e5b4</loc>
    <lastmod>2021-05-18T21:13:10.853Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/get-started-with-cypress-d6ac4b910605</loc>
    <lastmod>2021-08-16T10:26:05.573Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/release-management-in-angular-with-lerna-21b4ab417c59</loc>
    <lastmod>2021-05-13T14:17:53.317Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-build-a-component-library-with-angular-and-storybook-718278ab976</loc>
    <lastmod>2021-05-13T14:18:17.665Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/the-angular-devops-series-ct-and-code-coverage-with-teamcity-21e3d0ed77eb</loc>
    <lastmod>2021-05-13T14:22:39.797Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/top-10-ways-to-use-interceptors-in-angular-db450f8a62d6</loc>
    <lastmod>2021-05-13T14:23:00.023Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/expecting-the-unexpected-best-practices-for-error-handling-in-angular-21c3662ef9e4</loc>
    <lastmod>2022-01-29T17:17:56.232Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-send-errors-into-slack-dc552e30506f</loc>
    <lastmod>2021-05-13T14:45:06.515Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/gravatar-directive-in-angular-e379a681dbe4</loc>
    <lastmod>2021-05-13T14:45:26.597Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-command-tfs-with-npm-scripts-e3d1183d30</loc>
    <lastmod>2021-05-13T14:45:52.356Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/dynamic-import-of-locales-in-angular-b994d3c07197</loc>
    <lastmod>2021-05-13T16:27:26.698Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/enhance-your-angular-grid-reports-with-formatted-values-and-links-34fa57ca2952</loc>
    <lastmod>2021-07-20T13:23:05.862Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/script-your-pain-away-49fc3c81b6c6</loc>
    <lastmod>2021-05-13T16:26:51.103Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/dynamic-locales-in-angular-dd9a527ebe1f</loc>
    <lastmod>2021-05-13T16:26:12.948Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/angular-library-tutorial-46a7e1b129b3</loc>
    <lastmod>2021-05-13T16:25:37.152Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/archive</loc>
    <lastmod>2026-08-12T18:37:38.172Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/recommendations</loc>
    <lastmod>2026-08-12T18:37:38.172Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>