<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:mobile="http://www.google.com/schemas/sitemap-mobile/1.0" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
<url><loc>https://www.bretcameron.com/blog/state-of-ai-programming-2026</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>hourly</changefreq><priority>1</priority></url>
<url><loc>https://www.bretcameron.com/blog/focus-doesnt-scale</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>daily</changefreq><priority>0.9</priority></url>
<url><loc>https://www.bretcameron.com/blog/are-we-letting-ai-code-for-us-and-killing-our-skills</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>daily</changefreq><priority>0.9</priority></url>
<url><loc>https://www.bretcameron.com/blog/my-experience-transitioning-from-individual-contributor-to-team-lead</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>daily</changefreq><priority>0.9</priority></url>
<url><loc>https://www.bretcameron.com/blog/switching-to-a-new-data-structure-with-zero-downtime</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>daily</changefreq><priority>0.9</priority></url>
<url><loc>https://www.bretcameron.com/blog/automate-merge-requests-with-nodejs-and-jira</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>daily</changefreq><priority>0.9</priority></url>
<url><loc>https://www.bretcameron.com/blog/automate-your-release-notes-with-ai</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/automate-your-macs-audio-input-with-a-simple-script</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-create-a-super-minimal-mdx-writing-experience</loc><lastmod>2026-04-03T19:57:21.642Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/i-fixed-error-handling-in-javascript</loc><lastmod>2024-09-05T09:56:51.861Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/containerize-rust-web-server-with-mongodb</loc><lastmod>2024-09-05T10:30:49.445Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/building-a-monorepo-with-yarn-workspaces</loc><lastmod>2024-09-05T10:30:47.939Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/implementing-a-linked-list-in-rust</loc><lastmod>2024-09-05T10:30:51.890Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-easily-support-esm-and-cjs-in-your-typescript-library</loc><lastmod>2024-09-05T10:30:50.236Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/three-strategies-to-overcome-open-ai-token-limits</loc><lastmod>2024-09-05T10:30:48.685Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/sending-emails-with-nodejs-nodemailer-mjml-and-amazon-ses</loc><lastmod>2024-09-05T10:30:52.785Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-build-an-api-server-with-rust</loc><lastmod>2024-09-05T10:30:50.619Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/bad-abstractions-could-be-ruining-your-code</loc><lastmod>2024-09-05T10:30:50.755Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/learn-rust-by-coding-a-command-line-connect-4-game</loc><lastmod>2024-09-05T10:30:53.658Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/my-experience-learning-rust-as-a-typescript-developer</loc><lastmod>2024-09-05T10:30:45.657Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-learn-to-code-and-land-your-first-job-in-2024</loc><lastmod>2024-09-05T10:30:49.121Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/eight-tips-for-debugging-next-js-applications</loc><lastmod>2024-09-05T10:30:54.069Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/streams-in-nodejs-a-powerful-way-to-handle-a-lot-of-data</loc><lastmod>2024-09-05T10:30:48.786Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/a-mac-os-trick-to-develop-multiple-projects-from-a-single-command</loc><lastmod>2024-09-05T10:30:51.611Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/building-an-international-website-with-next-js</loc><lastmod>2024-09-05T10:30:47.100Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-make-lava-lamp-style-blob-animations-with-html-and-css</loc><lastmod>2024-09-05T10:30:55.942Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-avoid-hitting-api-rate-limits-using-typescript</loc><lastmod>2024-09-05T10:30:49.942Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/simple-react-scroll-animations-with-zero-dependencies</loc><lastmod>2024-09-05T10:30:54.178Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-add-bugsnag-to-strapi-v4-learn-how-to-integrate-bugsnag-into-a</loc><lastmod>2024-09-05T10:30:47.130Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/seven-vs-code-tricks-i-learned-from-my-colleagues</loc><lastmod>2024-09-05T10:30:46.830Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/why-the-dunning-kruger-curves-youve-seen-are-wrong</loc><lastmod>2024-09-05T10:30:55.341Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/the-power-and-limitations-of-javascript-promise-all</loc><lastmod>2024-09-05T10:30:56.348Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/five-lessons-i-learned-in-my-first-2-years-of-programming</loc><lastmod>2024-09-05T10:30:47.694Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/four-new-javascript-features-to-watch-out-for-in-2021</loc><lastmod>2024-09-05T10:30:55.506Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/singletons-in-javascript-how-to-implement-them-and-whether</loc><lastmod>2024-09-05T10:30:52.464Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/a-quick-guide-to-react-with-typescript</loc><lastmod>2024-09-05T10:30:54.447Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/eleven-useful-ways-to-make-your-es6-javascript-more-concise</loc><lastmod>2024-09-05T10:30:54.678Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/using-typescript-with-mongo-db-combine-the-power-of-typescript-and</loc><lastmod>2024-09-05T10:30:47.485Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/installing-mongo-db-on-mac-os-catalina</loc><lastmod>2024-09-05T10:30:47.301Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/functional-programming-in-javascript-introduction-and-practical-examples</loc><lastmod>2024-09-05T10:30:53.813Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/error-handling-in-javascript-a-quick-guide</loc><lastmod>2024-09-05T10:30:49.030Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/implementing-a-linked-list-in-javascript</loc><lastmod>2024-09-05T10:30:52.867Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/create-interactive-visuals-with-javascript-and-html5-canvas</loc><lastmod>2024-09-05T10:30:53.097Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/javascript-in-3dan-introduction-to-three-js</loc><lastmod>2024-09-05T10:30:50.989Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/building-a-classic-arcade-game-with-javascript-and-html5-canvas</loc><lastmod>2024-09-05T10:30:52.382Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/a-guide-to-this-one-of-the-least-understood-parts-of-javascript</loc><lastmod>2024-09-05T10:30:54.346Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-publish-your-first-npm-package</loc><lastmod>2024-09-05T10:30:51.393Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/thirteen-tips-to-write-faster-better-optimized-javascript</loc><lastmod>2024-09-05T10:30:51.803Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/a-guide-to-javascript-promises-a-whistle-stop-tour-of-all-things</loc><lastmod>2024-09-05T10:30:45.225Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-javascript-maps-can-make-your-code-faster</loc><lastmod>2024-09-05T10:30:45.958Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/the-3-deadliest-sins-of-form-validation</loc><lastmod>2024-09-05T10:30:51.210Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-automatically-resize-an-iframe</loc><lastmod>2024-09-05T10:30:52.193Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/mongo-db-a-beginners-guide-learn-how-to-combine-the-power-of</loc><lastmod>2024-09-05T10:30:51.129Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/seven-lessons-for-self-taught-developers</loc><lastmod>2024-09-05T10:30:49.304Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/thirteen-npm-tricks-for-faster-javascript-development</loc><lastmod>2024-09-05T10:30:52.603Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/a-beginners-guide-to-redux-with-react</loc><lastmod>2024-09-05T10:30:53.594Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-use-the-google-drive-api-with-javascript</loc><lastmod>2024-09-05T10:30:45.512Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/backend-development-an-introduction-for-frontend-developers</loc><lastmod>2024-09-05T10:30:56.157Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-build-a-web-scraper-using-javascript</loc><lastmod>2024-09-05T10:30:53.905Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/nine-javascript-interview-questions-ace-your-interview-with-examples-of</loc><lastmod>2024-09-05T10:30:48.172Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/what-javascript-developers-can-learn-from-c</loc><lastmod>2024-09-05T10:30:50.078Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/building-my-first-headless-cms-what-i-wish-i-knew-at-the-start</loc><lastmod>2024-09-05T10:30:49.617Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/why-i-believe-gatsby-js-has-javascripts-best-tools-for-image-optimisation-and-how-to-use-them</loc><lastmod>2024-09-05T10:30:54.933Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/four-templating-systems-to-write-quicker-cleaner-html</loc><lastmod>2024-09-05T10:30:46.247Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/a-guide-to-beautifying-visual-studio-code</loc><lastmod>2024-09-05T10:30:52.239Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-make-your-code-faster-using-javascript-sets</loc><lastmod>2024-09-05T10:30:54.772Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/eleven-javascript-tricks-you-wont-find-in-most-tutorials</loc><lastmod>2024-09-05T10:30:48.392Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-to-create-a-modern-web-app-using-word-press-and-react</loc><lastmod>2024-09-05T10:30:45.225Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/seven-essential-features-of-visual-studio-code-for-web-developers</loc><lastmod>2024-09-05T10:30:51.531Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/four-ways-to-solve-a-google-interview-question-in-javascript</loc><lastmod>2024-09-05T10:30:50.448Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/a-react-js-introduction-for-developers-who-know-j-query</loc><lastmod>2024-09-05T10:30:55.806Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/technical-seo-for-developers-a-checklist-to-help-you-rank-higher-on-google</loc><lastmod>2024-09-05T10:30:55.697Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/ace-your-coding-interview-by-understanding-big-o-notation-and-write-faster-code</loc><lastmod>2024-09-05T10:30:46.727Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/eight-useful-css-tricks-parallax-images-sticky-footers-and-more</loc><lastmod>2024-09-05T10:30:52.010Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
<url><loc>https://www.bretcameron.com/blog/how-i-started-learning-to-code-the-resources-ive-used-in-the-first-three-months</loc><lastmod>2024-09-05T10:30:55.183Z</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url>
</urlset>