<?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: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.dennisokeeffe.com/</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2026-06-08-building-the-pocket-rice-marketing-website</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2026-05-07-two-pointers</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2026-05-01-software-interview-guideline-2026</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2026-04-09-using-buildkite-with-aws-codebuild</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-11-19-using-aws-bedrock-with-opencode</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-11-16-interface-based-functional-options-in-golang</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-10-02-adding-swift-packages-in-xcode</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-09-10-swift-from-the-command-line</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-08-19-building-tuis-with-golang-and-tview</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-08-03-implementing-more-manageable-transform-streams-in-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-07-17-configuring-arch-linux-omarchy-via-mac</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-07-16-typescript-private-elements-vs-private-modifiers</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-07-08-tail-recursion</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-06-23-typescript-data-classes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-06-09-isolating-postgresql-tests-with-pglite</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-05-27-postgresql-performance</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-05-24-multitenant-testing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-04-10-retries-spans-timeouts-for-ts-rest</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-04-09-well-known-jwks</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-04-08-mutual-transport-layer-security-mtls</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-04-07-roll-your-own-api-keys</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-03-29-the-boundaries-of-typescript-testing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-03-16-effective-typescript-principles-in-2025</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2025-02-23-better-dotnet-controllers-with-oneof</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-12-05-aws-aurora-dsql-in-action</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-08-14-exploring-git-worktree</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-31-expressing-your-thoughts-in-software</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-15-resource-management-in-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-14-creating-a-result-type-in-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-14-nodejs-streams-in-action-with-the-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-13-stream-pipelines-in-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-12-transform-streams-in-nodejs%20copy</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-11-duplex-streams-in-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-10-writable-streams-in-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-08-readable-streams-in-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-05-understanding-nodejs-streams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-07-04-nodejs-buffers-explained</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-04-25-dependency-injection-with-inversifyjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-02-18-up-and-running-with-go-1-22s-new-built-in-router</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2024-01-03-typescript-react-as-prop-for-flexible-components</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-11-28-mounting-your-own-cloud-storage-with-cloud-mounter-and-aws</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-11-29-prisma-migrations-drizzle-orm-querying%20copy</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-10-27-nodejs-profile-flag</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-10-26-explaining-cjs-vs-amd-vs-umd-vs-esm</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-10-27-testing-express-apps-with-jest-and-supertest</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-26-diving-into-typescripts-type-system-type-operators</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-25-typescript-and-promises-conquering-asynchronous-programming</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-24-typescript-and-functional-programming</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-23-advanced-union-and-intersection-types-in-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-22-typescript-modules-for-organizing-and-sharing-code-effectively</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-21-harnessing-the-power-of-the-keyof-operator</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-20-advanced-typescript-generics-in-practice</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-19-typescript-decorators-an-introduction-to-metadata-and-annotation</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-16-ensuring-type-safety-with-type-guards</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-16-nextjs-ai-package-demo</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-15-exploring-typescript-mapped-types-and-transformations</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-14-mastering-conditional-types-in-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-06-13-understanding-advance-type-inference-in-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2023-02-25-combining-static-site-generation-with-incremental-static-regeneration</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-10-18-a-practical-look-at-unknown-in-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-10-15-using-the-new-vercel-opengraph-image-generation</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-10-13-exploring-the-tremor-ui-library</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-09-30-iterating-on-our-bulk-visi-exports-feature</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-08-25-discriminated-unions-in-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-04-07-annotated-rails-models</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-04-07-local-activestorage-development-with-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-04-06-mocks-with-minitest</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-04-06-pry-debugger-tips</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-04-06-ruby-smartercsv-gem</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-04-05-uploading-files-in-active-admin</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-04-05-processing-local-yaml-files-with-sidekiq</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-19-automating-rubygem-package-releases-with-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-19-deploying-your-gem-to-rubygems</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-19-creating-your-own-ruby-gem</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-18-minitest-with-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-18-rspec-with-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-17-rails-entity-relationship-diagrams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-17-through-rails-associations</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-16-part-10-devise-token-auth</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-16-part-11-authentication-tokens-with-doorkeeper</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-16-understanding-rails-associations</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-15-exploring-ahoy-analytics-with-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-12-active-admin-with-ruby-on-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-12-getting-started-with-the-friendly-id-gem-in-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-12-ruby-memoization-basics-and-memoist</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-12-simplecov-with-ruby-and-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-09-part-7-testing-with-rspec-and-factory-bot</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-09-part-8-policy-authorization-in-rails-7-with-pundit</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-09-part-9-setting-up-302-redirection-vs-401-unauthorized-handlers</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-08-benchmarking-in-ruby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-08-part-5-oauth-with-github-and-omniauth</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-08-sending-your-first-email-with-action-mailer-in-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-08-part-6-adding-recaptcha-to-prevent-fraud-and-abuse</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-07-part-1-setting-up-devise-with-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-07-part-2-using-redis-sessions-instead-of-cookie-store</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-07-part-3-updating-our-devise-views-with-tailwind-css</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-07-part-4-authenticated-with-a-separate-frontend</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-06-rate-limiting-with-rack-attack-in-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-05-rate-limiting-with-rack-throttle-in-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-04-getting-started-with-sidekiq-in-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-03-using-the-rails-cache-with-redis</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-02-ruby-on-rails-pagination-with-kaminari</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-03-01-action-cable-messages-with-redux</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-28-action-cable-hello-world-with-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-24-factory-bot-with-rails</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-23-dry-validation-with-rails</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-22-repository-pattern-in-rails</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-21-exploring-dry-rb-with-dry-matcher-and-dry-monads</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-20-setting-up-a-base-graphql-server-and-graphiql-with-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-19-rails-7-using-react-with-esbuild</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-18-rails-7-using-react-with-htm</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-17-the-beginners-guide-to-monkey-patching-in-ruby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-16-bang-methods-in-ruby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-15-pattern-matching-in-ruby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-02-14-understanding-ruby-blocks</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-01-18-my-core-principles-for-2022</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-01-16-python-decorators-in-action</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2022-01-12-jest-snapshot-testing-for-template-languages</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-12-10-generating-fake-data-from-json-schema</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-12-09-generating-json-schema-from-typescript-types</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-12-08-generating-dbml-files-from-a-prisma-schema</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-12-07-create-stripe-subscription-product-from-the-cli</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-12-06-nextjs-enterprise-project-structure</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-11-23-5-must-have-figma-plugins-for-web-ui-design</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-11-20-scheduled-post</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-11-09-scheduling-one-off-cron-jobs-with-aws-eventbridge-and-aws-lambda</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-11-04-nextjs-shortened-url-automation</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-11-03-in-my-first-5-days-of-nfts-i-minted-2460-collectibles-from-hotel-quarantine</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-10-27-jest-with-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-10-15-building-typescript-npm-packages-with-parcel-2</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-10-04-locking-redis-transactions-in-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-09-30-introduction-to-caching-with-nextjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-09-29-converting-the-interim-swyftx-data-structure-into-a-valid-openapi-format</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-09-28-authenticating-use-for-the-swyftx-api-with-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-09-28-scraping-the-swyftx-apiary-docs-into-a-json-file-with-puppeteer</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-23-5-handy-python-tips-for-beginners</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-19-regression-with-scikit-learn-part-four</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-18-regression-with-scikit-learn-part-three</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-17-regression-with-scikit-learn-part-two</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-16-recapping-kubernetes-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-16-regression-with-scikit-learn</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-15-measuring-classifier-model-performance</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-14-first-look-at-supervised-learning-with-classification</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-13-python-lambda-functions-deployed-with-the-typescript-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-12-deploying-an-eks-fargate-cluster-with-the-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-12-oil-paint-effect-with-open-cv-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-11-automating-pip-package-deployment-with-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-11-deploying-a-fargate-cluster-with-localstack-and-the-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-11-generating-fake-csv-data-with-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-10-dynamodb-with-localstack-and-the-aws-cdk-part-two</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-10-semantic-versioning-in-python-with-git-hooks</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-09-dynamodb-with-localstack-and-the-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-09-your-first-pip-package-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-08-building-a-cdn-with-s3-cloudfront-and-the-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-08-pytest-with-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-07-how-pydoc-helps-your-python-development</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-07-using-the-aws-cdk-with-localstack-and-aws-cdk-local</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-06-aws-cdk-with-typescript-foundations</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-06-time-functionality-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-05-mocking-python-datetime-in-tests-with-freezegun</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-04-datetime-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-03-exceptions-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-02-working-with-regex-expressions-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-08-01-beautiful-clis-with-the-rich-python-library</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-31-annotating-video-clips-with-moviepy</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-30-pretty-error-output-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-29-cli-prompts-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-28-interactive-python-notebooks-with-binder</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-27-making-directories-recursively-with-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-26-python-unit-testing-with-pytest</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-25-building-clis-with-python-fire</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-25-dev-only-nextjs-routes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-25-workingoutloud-dev-released</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-24-reading-a-file-directory-with-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-23-frontmatter-parsing-with-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-22-composing-images-and-text-with-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-20-python-unsplash</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-07-19-hello-jupyter-notebook</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-02-12-a-first-look-at-generative-art-with-p5js</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-02-12-debugging-performance-with-ndb</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-02-02-debugging-nodejs-with-vscode</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-01-19-running-cronjobs-on-your-local-mac</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2021-01-12-getting-started-with-localstack</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-12-24-setting-up-dynamodb-on-your-local-machine</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-12-09-dynamic-components-nextjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-12-02-building-a-ui-component-library-with-react-and-typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-28-gatsby-starter-blog-creating-similar</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-16-nextjs-simple-auth</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-08-nextjs-10-image-component</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-08-nextjs-intl-with-react-intl</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-07-nextjs-10-with-stripe</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-06-exploring-vercel-analytics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-05-deploying-with-vercel-cli</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-04-deploying-websites-to-aws-s3-with-the-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-11-04-exporting-static-nextjs-10-websites</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-10-28-updating-snowpack-post-announcement</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-10-15-webpack-for-lambdas</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-09-30-self-destructing-tweets</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-09-20-generating-types-with-quicktype</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-09-20-json-schema-to-ts</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-09-20-openapi-diff</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-09-20-openapi-validator</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-09-03-mental-models</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-08-18-2020-08-21-creating-eslint-rules</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-08-18-push-notifications-with-cra</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-08-15-aws-secrets-manager</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-08-08-10-time-management-tips-for-the-developer-who-wants-it-all-know</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-08-07-error-tracing-with-sentry-and-es6-classes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-31-d3-heatmap</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-28-redirections-in-c</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-26-using-tailwind-theme-anywhere</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-25-cra-tailwind-quickstart</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-23-using-npm-modules-with-deno</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-22-one-month-of-writing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-19-cra-with-snowpack</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-17-what-the-flip-are-unix-pipes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-16-generating-basic-diagrams-with-roughjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-13-generating-custom-forms-with-react</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-11-twitter-bot</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-09-hello-github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-09-understand-pipe-and-compose-by-implementing-them</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-08-going-back-into-isolation</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-07-css-is-hard</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-06-deploying-a-serverless-go-api</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-05-learning-a-new-language-tips</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-05-your-first-github-npm-package-in-five-minutes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-04-abcs-of-pipenv</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-04-hello-fiber</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-02-up-and-running-with-factory-bot</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-07-01-screenshot-anything-with-puppeteer</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-30-javascript-code-generation</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-29-resources-for-design-systems</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-27-stripe-with-dotnet-in-five-minutes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-27-stripe-with-flask-in-five-minutes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-27-stripe-with-gin-in-five-minutes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-27-stripe-with-slim-in-five-minutes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-27-stripe-with-spring-in-five-minutes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-26-hello-stripe-creating-your-first-charge-with-rails-in-five-minutes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-25-express-redis-rate-limiting</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-25-seven-things-to-say-right-now-for-an-instant-promotion</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-24-next-auth-with-nextjs-docker-mysql</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-23-creating-alfred-shortcut-for-dev-notes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-23-dead-code-elimination-with-the-babel-ast-parser</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-23-electron-with-parcel</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-22-cdk-lambda-to-send-slack-message</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-22-scraping-with-xray</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-22-tmuxinator</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-22-using-octokit-to-create-files</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-21-deriving-the-quadratic-formula</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-21-generating-open-api-yml-from-rails-routes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2020-06-19-converting-blog-to-gatsby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-26-network-addressing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-24-osi-layers</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-20-write-ahead-log</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-18-scala-data-types</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-16-js-fetch-api</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-14-auxiliary-and-space-complexity</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-12-hello-java-streams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-10-kafka-basic-terms</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-08-intro-to-elasticsearch</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-06-intro-to-cassandra</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-04-autocomplete-with-rxjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-06-01-basics-on-programming-paradigms</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-31-logistic-regression-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-28-d3-scale</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-25-reselect-quick-and-dirty</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-22-moving-to-melbourne</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-20-go-binary-search-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-17-process-description-and-control</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-10-cra-d3-wordcloud</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-07-nodejs-redis-kue</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-05-02-eks-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-29-redux-persist-with-react-native</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-25-python-anagrams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-22-intro-to-helm</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-20-thread-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-19-b-tree-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-15-istio-with-eks</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-15-react-hook-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-13-rust-fizzbuzz</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-12-ruby-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-11-running-detox-with-expo</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-10-php-binary-search-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-08-go-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-05-java-linked-list</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-04-01-ruby-binary-search-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-31-js-anagrams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-30-go-linked-list</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-22-python-binary-search-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-18-js-spiral-matrix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-16-mysql-dev-with-docker</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-12-redis-cli-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-11-python-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-09-install-redis-with-helm</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-07-eks-pulling-from-docker-hub</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-07-php-anonymous-functions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-03-01-eksctl</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-02-25-go-basic-slices</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-02-20-ruby-contructors</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-02-16-python-exceptions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-02-12-php-constructors</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-02-09-java-spiral-matrix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-02-09-php-unit-testing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-02-05-java-lambda-functions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-29-docker-nginx-nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-25-ruby-lambda-functions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-22-go-basic-strings</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-22-php-array-method-applications</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-17-php-linked-list</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-14-java-maps</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-06-java-initialising-arrays</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-03-javascript-logging-conventions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2019-01-02-braintree-node-react</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-12-25-hello-gin</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-12-22-react-portal-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-12-18-diagrams-with-mermaid</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-11-22-go-spiral-matrix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-25-ruby-error-handling</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-22-expo-amplify</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-22-intro-to-myrocks</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-22-java-anagrams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-22-java-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-22-js-naming-conventions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-22-lsm-tree-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-22-principles</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-19-contrast-colors</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-15-hello-shave</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-12-yargs-parser</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-10-09-ruby-linked-list</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-09-22-depth-sharp-cli</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-09-22-go-fizzbuzz</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-09-22-react-debounce</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-09-18-react-context-basics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-09-12-react-dynamic-imports</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-09-11-python-spiral-matrix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-08-12-php-trees</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-08-12-python-linked-list</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-08-07-ruby-anagrams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-08-02-php-anagrams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-24-kubernetes-healthchecks</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-19-ruby-fizzbuzz</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-15-php-spiral-matrix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-15-python-fizzbuzz</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-15-ruby-spiral-matrix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-12-expo-facebook-login</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-04-java-fizzbuzz</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-04-js-fizzbuzz</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-04-php-fizzbuzz</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/2018-07-02-hello-world</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/exploring-next-js-10</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/34-days-of-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/testing-with-py-test</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/working-with-dates-and-times-in-python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/working-with-the-type-script-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/dynamo-db-with-local-stack-and-the-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/deploying-an-eks-fargate-cluster-with-the-aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/supervised-learning</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/kubernetes-with-eks-recap</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/creating-a-trading-bot-on-swyftx</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/50-days-of-ruby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/devise-with-ruby-on-rails-7</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/releasing-your-own-ruby-gem</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/20-days-of-type-script</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/node-js-streams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/series/software-engineering-soft-skills</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/lambda</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/slack</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/typescript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/aws</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/golang</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/api</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/react</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/webdev</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/beginners</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/tutorial</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/productivity</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/career</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/writing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/deno</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/beginner</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/codenewbie</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/tailwind</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/javascript</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/c</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/unix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/posix</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/d-3</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/learning</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/nodejs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/sentry</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/security</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/eslint</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/json</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/yml</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/webpack</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/snowpack</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/npm</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/update</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/s-3</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/cloudfront</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/nextjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/vercel</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/analytics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/stripe</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/i-18-n</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/auth</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/gatsby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/blog</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/components</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/dynamodb</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/art</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/debugging</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/vscode</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/python</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/100-daysofpython</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/product</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/pytest</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/tips</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/jupyternotebooks</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/localstack</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/cdn</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/route-53</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/aws-cdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/pip</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/package-management</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/kubernetes</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/aws-lambda</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/machine-learning</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/swyftx</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/puppeteer</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/openapi</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/caching</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/react-query</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/redis</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/parcel</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/jest</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/nft</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/ethereum</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/aws-sdk</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/aws-lambda</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/aws-eventbridge</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/airtable</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/github</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/figma</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/design</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/prisma</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/dbml</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/data</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/testing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/template-languages</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/ruby</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/personal</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/ruby-on-rails</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/devise</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/github-actions</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/rails</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/visibuild</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/static-site-generation</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/incremental-static-regeneration</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/zod</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/planetscale</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/type-guards</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/type-safety</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/ai</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/decorators</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/metadata</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/annotation</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/generics</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/bun</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/expressjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/drizzleorm</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/orm</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/postgresql</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/inversifyjs</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/soft-skills</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/git</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/database</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/sql</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/dotnet</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/csharp</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/jwts</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/kotlin</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/zig</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/linux</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/streams</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/swift</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/buildkite</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/ci-cd</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/interviews</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/algorithms</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/marketing</loc><changefreq>daily</changefreq><priority>0.7</priority></url><url><loc>https://www.dennisokeeffe.com/blog/tags/architecture</loc><changefreq>daily</changefreq><priority>0.7</priority></url></urlset>