<?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://learn.railsfullstack.com/</loc></url><url><loc>https://learn.railsfullstack.com/databases/</loc></url><url><loc>https://learn.railsfullstack.com/drills/example/</loc></url><url><loc>https://learn.railsfullstack.com/hotwire/</loc></url><url><loc>https://learn.railsfullstack.com/interview/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/best-rails-gems-2026/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/hotwire-vs-inertia-vs-react/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-approach/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-behavioral/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-modern-stack/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-active-record-callbacks/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-asset-pipeline/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-background-jobs/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-caching/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-includes-preload-joins/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-n-plus-one/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-rails-magic/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-request-cycle/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-service-objects/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-question-session-cookies/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/interview-system-design/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/modern-rails-stack-2026/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/payments-async-confirmation/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/payments-idempotency/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/payments-intents/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/payments-ledger/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/payments-refunds-chargebacks/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/payments-webhooks/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/postgres-vs-mysql-for-rails/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-interview-hotwire/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-interview-includes-variants/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-interview-n-plus-one/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-interview-rails-magic/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-interview-service-objects/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-interview-sidekiq-solid/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-payments-event-ordering/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-payments-ledger-pick/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-payments-no-idempotency/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-payments-refund-state/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-payments-trust-redirect/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-payments-webhook-verify/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-background-jobs/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-bulk-operations/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-cache-stampede/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-concurrency-race/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-hot-row-contention/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-index-choice/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-n-plus-one-count/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-scaling-offset-pagination/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-dip-hardcoded-dep/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-dip-test-clock/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-isp-fat-concern/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-isp-role-interfaces/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-lsp-duck-shape/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-lsp-rectangle-square/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-ocp-case-statement/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-ocp-status-spread/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-srp-fat-controller/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-solid-srp-query-object/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-source-before-action-halt/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-source-belongs-to-optional/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-source-raw-form-missing/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-source-require-vs-bracket/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/practice-source-when-sql-runs/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/rails-8-features/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-explain-analyze/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-indexing-beyond-btree/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-isolation-locking/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-mvcc-vacuum-bloat/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-planner-statistics/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-read-replicas/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-window-and-cte/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-db-zero-downtime-migrations/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-dip-config-injection/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-dip-dependency-injection/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-dip-test-seams/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-eager-loading/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-glossary/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-hotwire-lazy-frames/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-hotwire-morphing/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-hotwire-optimistic-ui/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-hotwire-stimulus-boundary/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-hotwire-streams-vs-broadcasts/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-hotwire-when-not-to/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-isp-focused-concerns/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-isp-role-interfaces/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-lsp-contract-breaking/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-lsp-duck-typing/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-ocp-adapter/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-ocp-delegated-type/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-ocp-middleware/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-ocp-pub-sub/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-ocp-registry/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-open-closed-payouts-2/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-open-closed-payouts/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-background-jobs/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-bulk-operations/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-caching/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-concurrency/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-diagnose/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-hot-rows/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-indexes/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-scaling-pagination/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-srp-concerns/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-srp-decorators/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-srp-form-objects/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-srp-policy-objects/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-srp-query-objects/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-srp-service-objects/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/senior-srp-value-objects/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/sidekiq-vs-solid-queue/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-activerecord-query/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-attribute/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-before-action/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-belongs-to/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-delegated-type/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-enum/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-form-with/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-has-many/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-has-secure-password/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-params/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-routing/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/source-view-rendering/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/spot-the-tax-slides/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/spot-the-tax-stepped/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-aggregate-roots/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-anemic-models/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-atomic-updates/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-batched-iteration/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-bounded-contexts/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-bulk-operations/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-callback-bypass/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-database-constraints/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-dependency-inversion/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-domain-events/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-exception-handling/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-idempotent-jobs/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-indexable-storage/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-interface-segregation/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-liskov-substitution/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-open-closed/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-scoped-queries/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-single-responsibility/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-transaction-scope/</loc></url><url><loc>https://learn.railsfullstack.com/lessons/tax-value-objects/</loc></url><url><loc>https://learn.railsfullstack.com/payments/</loc></url><url><loc>https://learn.railsfullstack.com/practice/</loc></url><url><loc>https://learn.railsfullstack.com/practice/interview/</loc></url><url><loc>https://learn.railsfullstack.com/practice/payments/</loc></url><url><loc>https://learn.railsfullstack.com/practice/reading-the-source/</loc></url><url><loc>https://learn.railsfullstack.com/practice/scaling/</loc></url><url><loc>https://learn.railsfullstack.com/practice/solid/</loc></url><url><loc>https://learn.railsfullstack.com/practice/spot-the-tax/</loc></url><url><loc>https://learn.railsfullstack.com/reading-the-source/</loc></url><url><loc>https://learn.railsfullstack.com/scaling/</loc></url><url><loc>https://learn.railsfullstack.com/solid/</loc></url></urlset>