<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">
  <url>
    <loc>https://ovini.site/</loc>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://ovini.site/resume.html</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/</loc>
    <lastmod>2026-08-13</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/" />
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/</loc>
    <lastmod>2026-08-13</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/" />
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/how-a-coding-agent-operates-on-a-repository.html</loc>
    <lastmod>2026-08-13</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-a-coding-agent-operates-on-a-repository.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-a-coding-agent-operates-on-a-repository.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/hotwire-native-webview-bridge.html</loc>
    <lastmod>2026-08-06</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/hotwire-native-webview-bridge.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/hotwire-native-webview-bridge.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/connection-pooling-why-your-database-runs-out-of-connections.html</loc>
    <lastmod>2026-05-21</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/connection-pooling-why-your-database-runs-out-of-connections.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/connection-pooling-why-your-database-runs-out-of-connections.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/you-don-t-understand-machine-learning-until-you-implement-it-from-scratch.html</loc>
    <lastmod>2026-05-14</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/you-don-t-understand-machine-learning-until-you-implement-it-from-scratch.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/you-don-t-understand-machine-learning-until-you-implement-it-from-scratch.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/gradient-descent-visually-explained.html</loc>
    <lastmod>2026-05-07</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/gradient-descent-visually-explained.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/gradient-descent-visually-explained.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/epoll-and-io-uring-explained-visually.html</loc>
    <lastmod>2026-04-30</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/epoll-and-io-uring-explained-visually.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/epoll-and-io-uring-explained-visually.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/how-the-linux-kernel-actually-receives-an-http-request.html</loc>
    <lastmod>2026-04-23</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-the-linux-kernel-actually-receives-an-http-request.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-the-linux-kernel-actually-receives-an-http-request.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/the-exactly-once-myth.html</loc>
    <lastmod>2026-04-16</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/the-exactly-once-myth.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/the-exactly-once-myth.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/how-to-avoid-retry-storms-in-background-jobs.html</loc>
    <lastmod>2026-04-09</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-to-avoid-retry-storms-in-background-jobs.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-to-avoid-retry-storms-in-background-jobs.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/idempotency-in-real-systems.html</loc>
    <lastmod>2026-04-02</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/idempotency-in-real-systems.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/idempotency-in-real-systems.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/lock-contention-the-silent-killer-in-postgresql.html</loc>
    <lastmod>2026-03-26</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/lock-contention-the-silent-killer-in-postgresql.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/lock-contention-the-silent-killer-in-postgresql.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/what-vacuum-actually-does-in-postgresql.html</loc>
    <lastmod>2026-03-19</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/what-vacuum-actually-does-in-postgresql.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/what-vacuum-actually-does-in-postgresql.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/explain-analyze-should-be-mandatory.html</loc>
    <lastmod>2026-03-12</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/explain-analyze-should-be-mandatory.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/explain-analyze-should-be-mandatory.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/you-don-t-understand-rails-until-you-understand-the-full-request-cycle.html</loc>
    <lastmod>2026-03-05</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/you-don-t-understand-rails-until-you-understand-the-full-request-cycle.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/you-don-t-understand-rails-until-you-understand-the-full-request-cycle.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/refactoring-a-monolith-without-blowing-up-production.html</loc>
    <lastmod>2026-02-26</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/refactoring-a-monolith-without-blowing-up-production.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/refactoring-a-monolith-without-blowing-up-production.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/how-to-identify-a-performance-bottleneck-in-minutes.html</loc>
    <lastmod>2026-02-19</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-to-identify-a-performance-bottleneck-in-minutes.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-to-identify-a-performance-bottleneck-in-minutes.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/debugging-memory-leaks-in-ruby-without-crying.html</loc>
    <lastmod>2026-02-12</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/debugging-memory-leaks-in-ruby-without-crying.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/debugging-memory-leaks-in-ruby-without-crying.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/writing-a-simple-dsl-from-scratch-in-ruby.html</loc>
    <lastmod>2026-02-05</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/writing-a-simple-dsl-from-scratch-in-ruby.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/writing-a-simple-dsl-from-scratch-in-ruby.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/how-activerecord-builds-sql-under-the-hood.html</loc>
    <lastmod>2026-01-29</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-activerecord-builds-sql-under-the-hood.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-activerecord-builds-sql-under-the-hood.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/ancestors-chain-how-ruby-actually-resolves-methods.html</loc>
    <lastmod>2026-01-22</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/ancestors-chain-how-ruby-actually-resolves-methods.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/ancestors-chain-how-ruby-actually-resolves-methods.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/how-ruby-resolves-methods-internally.html</loc>
    <lastmod>2026-01-15</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-ruby-resolves-methods-internally.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-ruby-resolves-methods-internally.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/gil-the-lock-every-rubyist-needs-to-understand.html</loc>
    <lastmod>2026-01-08</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/gil-the-lock-every-rubyist-needs-to-understand.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/gil-the-lock-every-rubyist-needs-to-understand.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/en/understanding-ruby-s-runtime-not-just-the-language.html</loc>
    <lastmod>2026-01-01</lastmod>
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/understanding-ruby-s-runtime-not-just-the-language.html" />
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/understanding-ruby-s-runtime-not-just-the-language.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/how-a-coding-agent-operates-on-a-repository.html</loc>
    <lastmod>2026-08-13</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-a-coding-agent-operates-on-a-repository.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-a-coding-agent-operates-on-a-repository.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/hotwire-native-webview-bridge.html</loc>
    <lastmod>2026-08-06</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/hotwire-native-webview-bridge.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/hotwire-native-webview-bridge.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/connection-pooling-why-your-database-runs-out-of-connections.html</loc>
    <lastmod>2026-05-21</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/connection-pooling-why-your-database-runs-out-of-connections.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/connection-pooling-why-your-database-runs-out-of-connections.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/you-don-t-understand-machine-learning-until-you-implement-it-from-scratch.html</loc>
    <lastmod>2026-05-14</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/you-don-t-understand-machine-learning-until-you-implement-it-from-scratch.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/you-don-t-understand-machine-learning-until-you-implement-it-from-scratch.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/gradient-descent-visually-explained.html</loc>
    <lastmod>2026-05-07</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/gradient-descent-visually-explained.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/gradient-descent-visually-explained.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/epoll-and-io-uring-explained-visually.html</loc>
    <lastmod>2026-04-30</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/epoll-and-io-uring-explained-visually.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/epoll-and-io-uring-explained-visually.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/how-the-linux-kernel-actually-receives-an-http-request.html</loc>
    <lastmod>2026-04-23</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-the-linux-kernel-actually-receives-an-http-request.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-the-linux-kernel-actually-receives-an-http-request.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/the-exactly-once-myth.html</loc>
    <lastmod>2026-04-16</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/the-exactly-once-myth.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/the-exactly-once-myth.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/how-to-avoid-retry-storms-in-background-jobs.html</loc>
    <lastmod>2026-04-09</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-to-avoid-retry-storms-in-background-jobs.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-to-avoid-retry-storms-in-background-jobs.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/idempotency-in-real-systems.html</loc>
    <lastmod>2026-04-02</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/idempotency-in-real-systems.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/idempotency-in-real-systems.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/lock-contention-the-silent-killer-in-postgresql.html</loc>
    <lastmod>2026-03-26</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/lock-contention-the-silent-killer-in-postgresql.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/lock-contention-the-silent-killer-in-postgresql.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/what-vacuum-actually-does-in-postgresql.html</loc>
    <lastmod>2026-03-19</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/what-vacuum-actually-does-in-postgresql.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/what-vacuum-actually-does-in-postgresql.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/explain-analyze-should-be-mandatory.html</loc>
    <lastmod>2026-03-12</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/explain-analyze-should-be-mandatory.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/explain-analyze-should-be-mandatory.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/you-don-t-understand-rails-until-you-understand-the-full-request-cycle.html</loc>
    <lastmod>2026-03-05</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/you-don-t-understand-rails-until-you-understand-the-full-request-cycle.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/you-don-t-understand-rails-until-you-understand-the-full-request-cycle.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/refactoring-a-monolith-without-blowing-up-production.html</loc>
    <lastmod>2026-02-26</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/refactoring-a-monolith-without-blowing-up-production.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/refactoring-a-monolith-without-blowing-up-production.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/how-to-identify-a-performance-bottleneck-in-minutes.html</loc>
    <lastmod>2026-02-19</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-to-identify-a-performance-bottleneck-in-minutes.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-to-identify-a-performance-bottleneck-in-minutes.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/debugging-memory-leaks-in-ruby-without-crying.html</loc>
    <lastmod>2026-02-12</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/debugging-memory-leaks-in-ruby-without-crying.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/debugging-memory-leaks-in-ruby-without-crying.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/writing-a-simple-dsl-from-scratch-in-ruby.html</loc>
    <lastmod>2026-02-05</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/writing-a-simple-dsl-from-scratch-in-ruby.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/writing-a-simple-dsl-from-scratch-in-ruby.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/how-activerecord-builds-sql-under-the-hood.html</loc>
    <lastmod>2026-01-29</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-activerecord-builds-sql-under-the-hood.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-activerecord-builds-sql-under-the-hood.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/ancestors-chain-how-ruby-actually-resolves-methods.html</loc>
    <lastmod>2026-01-22</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/ancestors-chain-how-ruby-actually-resolves-methods.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/ancestors-chain-how-ruby-actually-resolves-methods.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/how-ruby-resolves-methods-internally.html</loc>
    <lastmod>2026-01-15</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/how-ruby-resolves-methods-internally.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/how-ruby-resolves-methods-internally.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/gil-the-lock-every-rubyist-needs-to-understand.html</loc>
    <lastmod>2026-01-08</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/gil-the-lock-every-rubyist-needs-to-understand.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/gil-the-lock-every-rubyist-needs-to-understand.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://ovini.site/blog/pt/understanding-ruby-s-runtime-not-just-the-language.html</loc>
    <lastmod>2026-01-01</lastmod>
    <xhtml:link rel="alternate" hreflang="pt-BR" href="https://ovini.site/blog/pt/understanding-ruby-s-runtime-not-just-the-language.html" />
    <xhtml:link rel="alternate" hreflang="en" href="https://ovini.site/blog/en/understanding-ruby-s-runtime-not-just-the-language.html" />
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
