<?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-04-08T00:18:00.135Z</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-24T08:27:22.534Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/game-development-breakout-in-javascript</loc>
    <lastmod>2022-01-11T19:55:07.000Z</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-24T07:51:47.069Z</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-10T05:09:24.257Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/a-promise-of-asynchronous-javascript-2d09b9be7019</loc>
    <lastmod>2021-04-20T12:56:52.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/maintaining-multi-language-angular-applications-i18n</loc>
    <lastmod>2021-04-05T11:08:46.000Z</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-01-11T09:45:40.321Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-spread-vs-rest</loc>
    <lastmod>2020-09-22T12:42:28.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-template-literals</loc>
    <lastmod>2020-09-14T08:52:41.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-proxy</loc>
    <lastmod>2020-09-08T08:51:42.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-destructuring</loc>
    <lastmod>2020-09-03T17:58:30.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-arrow-functions</loc>
    <lastmod>2020-09-02T12:30:44.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-classes</loc>
    <lastmod>2020-08-27T08:42:58.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/javascript-variables-and-scope</loc>
    <lastmod>2020-08-25T12:39:23.000Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/learning-modern-javascript-with-tetris-92d532bcd057</loc>
    <lastmod>2019-12-02T08:49:01.480Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/game-development-tetris-in-angular-64ef96ce56f7</loc>
    <lastmod>2019-09-30T07:06:01.457Z</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>2019-07-22T08:01:01.329Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/the-state-of-web-components-e3f746a22d75</loc>
    <lastmod>2019-07-22T04:16:00.996Z</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>2019-06-05T11:52:49.323Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/get-started-with-cypress-d6ac4b910605</loc>
    <lastmod>2019-05-13T09:57:45.977Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/release-management-in-angular-with-lerna-21b4ab417c59</loc>
    <lastmod>2019-04-23T06:24:44.017Z</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>2019-04-15T08:26:28.082Z</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>2019-04-03T07:01:01.127Z</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>2019-03-05T08:32:44.521Z</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>2019-01-29T07:54:18.513Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/how-to-send-errors-into-slack-dc552e30506f</loc>
    <lastmod>2018-12-19T11:19:55.003Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/gravatar-directive-in-angular-e379a681dbe4</loc>
    <lastmod>2018-12-12T11:10:17.415Z</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>2018-11-26T09:21:24.380Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/dynamic-import-of-locales-in-angular-b994d3c07197</loc>
    <lastmod>2018-11-14T20:01:01.021Z</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>2018-10-31T16:00:13.143Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/script-your-pain-away-49fc3c81b6c6</loc>
    <lastmod>2018-10-21T13:33:29.504Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/dynamic-locales-in-angular-dd9a527ebe1f</loc>
    <lastmod>2018-10-08T13:16:40.942Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/angular-library-tutorial-46a7e1b129b3</loc>
    <lastmod>2018-09-27T10:44:52.828Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/archive</loc>
    <lastmod>2026-04-08T00:18:00.135Z</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.michaelkaren.dev/recommendations</loc>
    <lastmod>2026-04-08T00:18:00.135Z</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.4</priority>
  </url>
</urlset>