<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://karolgalanciak.com/blog/2013/07/19/centos-6-4-server-setup-with-ruby-on-rails-nginx-and-postgresql/</loc>
<lastmod>2013-07-19T14:02:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2013/08/02/app-deployment-with-capistrano-and-after-deployment-setup/</loc>
<lastmod>2013-08-02T14:15:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2013/10/06/structuring-rails-applications/</loc>
<lastmod>2013-10-06T15:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2014/01/04/test-driven-rails-part-1/</loc>
<lastmod>2014-01-04T16:19:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2014/03/03/test-driven-rails-part-2/</loc>
<lastmod>2014-03-03T19:52:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2014/04/27/you-dont-necessarily-need-gem-for-that-feature/</loc>
<lastmod>2014-04-27T17:02:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2014/07/10/automate-to-the-max-instant-ubuntu-server-setup-with-chef/</loc>
<lastmod>2014-07-10T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2014/09/17/rails-useful-patterns/</loc>
<lastmod>2014-09-17T19:55:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2015/02/26/model-your-domain-with-composed-models/</loc>
<lastmod>2015-02-26T09:10:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2015/07/12/embarking-on-programming-journey/</loc>
<lastmod>2015-07-12T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2015/12/02/ember-and-es7-decorators/</loc>
<lastmod>2015-12-02T23:30:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2015/12/18/ember-and-es7-async-slash-await/</loc>
<lastmod>2015-12-18T09:50:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/01/06/refactoring-tips-trade-conditionals-for-type-delegation/</loc>
<lastmod>2016-01-06T23:20:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/01/24/how-to-handle-non-crud-logic-in-your-api/</loc>
<lastmod>2016-01-24T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/02/07/implementing-non-restful-actions-with-ember-data/</loc>
<lastmod>2016-02-07T10:45:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/02/20/postgresql-in-action-sorting-with-nullif-expression/</loc>
<lastmod>2016-02-20T21:20:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/04/24/security-on-rails-hacking-sessions-with-insecure-secret-key-base/</loc>
<lastmod>2016-04-24T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/05/06/when-validation-is-not-enough-postgresql-triggers-for-data-integrity/</loc>
<lastmod>2016-05-06T19:45:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/06/05/scaling-up-rails-applications-with-postgresql-table-partitioning-part-1/</loc>
<lastmod>2016-06-05T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/06/12/scaling-up-rails-applications-with-postgresql-table-partitioning-part-2/</loc>
<lastmod>2016-06-12T22:45:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/07/10/scaling-up-rails-applications-with-postgresql-table-partitioning-part-3/</loc>
<lastmod>2016-07-10T23:50:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/07/31/decoding-rails-magic-how-does-calling-class-methods-on-mailers-work/</loc>
<lastmod>2016-07-31T21:15:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/08/30/little-known-but-useful-rails-features-activerecord-querymethods-dot-extending/</loc>
<lastmod>2016-08-30T12:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/09/25/decoding-rails-magic-how-does-activejob-work/</loc>
<lastmod>2016-09-25T23:45:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/10/31/keeping-data-integrity-in-check-conditional-unique-indexes-for-soft-delete/</loc>
<lastmod>2016-10-31T23:30:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/12/04/introduction-to-activerecord-and-activemodel-attributes-api/</loc>
<lastmod>2016-12-04T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2016/12/11/ember-tips-computed-properties-and-arrow-functions-not-a-good-idea/</loc>
<lastmod>2016-12-11T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/01/22/javascript-the-surprising-parts/</loc>
<lastmod>2017-01-22T22:45:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/02/26/javascript-tips-redefining-useragent-property/</loc>
<lastmod>2017-02-26T23:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/03/26/test-driven-ember-testing-holding-button/</loc>
<lastmod>2017-03-26T23:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/04/30/ember-quick-tips-managing-timeouts-and-delays/</loc>
<lastmod>2017-04-30T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/05/28/ruby-memoization-equals-vs-defined-syntax/</loc>
<lastmod>2017-05-28T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/06/25/ember-tips-testing-outgoing-http-requests/</loc>
<lastmod>2017-06-25T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/08/27/5-years-of-professional-ruby-and-rails-development-my-reflections/</loc>
<lastmod>2017-08-27T23:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/09/24/do-or-do-not-there-is-no-try-object-number-try-considered-harmful/</loc>
<lastmod>2017-09-24T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/10/29/the-case-against-exotic-usage-of-before-validate-callbacks/</loc>
<lastmod>2017-10-29T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/11/26/traps-on-rails-overriding-boolean-methods-in-models/</loc>
<lastmod>2017-11-26T16:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2017/12/26/the-aesthetics-of-ruby-kernel-number-itself-method/</loc>
<lastmod>2017-12-26T20:30:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/01/30/postgresql-quick-tips-working-with-dates-using-extract-function/</loc>
<lastmod>2018-01-30T04:30:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/02/25/rails-quick-tips-temporarily-disabling-touching-with-activerecord-dot-no-touching/</loc>
<lastmod>2018-02-25T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/03/27/exotic-ruby-module-dot-class-exec-and-liquid-drops-in-action/</loc>
<lastmod>2018-03-27T21:30:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/04/28/advanced-ember-data-customization-different-model-types-in-ember-app-and-api-for-the-same-resource/</loc>
<lastmod>2018-04-28T19:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/05/27/the-case-for-before-validation-callback-complex-state-normalization/</loc>
<lastmod>2018-05-27T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/06/24/rails-and-conditional-validations-in-models/</loc>
<lastmod>2018-06-24T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/07/29/trolling-in-ruby-implementing-javascript-like-maths-with-implicit-conversion-hijacking/</loc>
<lastmod>2018-07-29T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/08/19/indexes-on-rails-how-to-make-the-most-of-your-postgres-database/</loc>
<lastmod>2018-08-19T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/09/30/the-problems-with-validating-activerecord-models-and-why-state-validation-is-a-bad-idea/</loc>
<lastmod>2018-09-30T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2018/12/16/inheritance-and-define-method-how-to-make-them-work-together/</loc>
<lastmod>2018-12-16T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2019/01/27/how-to-tell-the-difference-between-a-default-and-provided-value-for-optional-arguments-in-ruby/</loc>
<lastmod>2019-01-27T19:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2019/02/24/messages-on-rails-part-1-introduction-to-kafka-and-rabbitmq/</loc>
<lastmod>2019-02-24T22:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2019/04/07/messages-on-rails-part-2-kafka/</loc>
<lastmod>2019-04-07T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2019/06/23/messages-on-rails-part-3-rabbitmq/</loc>
<lastmod>2019-06-23T18:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2019/08/18/durable-sidekiq-jobs-how-to-maximize-reliability-of-sidekiq-and-redis/</loc>
<lastmod>2019-08-18T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2019/11/30/from-activerecord-callbacks-to-publish-slash-subscribe-pattern-and-event-driven-design/</loc>
<lastmod>2019-11-30T08:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2020/03/01/a-secret-weapon-for-your-rails-apps-rpc-with-rabbitmq-and-hutch/</loc>
<lastmod>2020-03-01T20:01:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2020/06/07/race-conditions-on-rails/</loc>
<lastmod>2020-06-07T20:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2020/09/20/tracking-all-paper-trail-version-from-a-single-request-with-correlation-uuids/</loc>
<lastmod>2020-09-20T09:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2020/12/20/kafka-for-rubyists-mini-course/</loc>
<lastmod>2020-12-20T11:30:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2020/12/20/kafka-for-rubyists-mini-course-fundamentals/</loc>
<lastmod>2020-12-20T11:32:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2020/12/27/kafka-for-rubyists-mini-course-consuming-and-performance/</loc>
<lastmod>2020-12-27T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2021/01/15/kafka-for-rubyists-mini-course-advanced-kafka/</loc>
<lastmod>2021-01-15T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2021/02/05/kafka-for-rubyists-mini-course-advanced-karafka/</loc>
<lastmod>2021-02-05T08:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2021/06/27/using-multiple-databases-in-a-single-query-in-your-rails-app-postgres-foreign-data-wrappers-to-the-rescue/</loc>
<lastmod>2021-06-27T07:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2021/10/10/the-story-of-a-critical-issue-with-kafka/</loc>
<lastmod>2021-10-10T08:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2022/11/12/the-inherent-unreliability-of-after_commit-callback-and-most-service-objects-implementation/</loc>
<lastmod>2022-11-12T08:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2022/12/11/an-alternative-approach-to-custom-partition-assignment-strategy-for-kafka-consumers-with-karafka/</loc>
<lastmod>2022-12-11T14:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2023/09/08/smily-engineering-blog/</loc>
<lastmod>2023-09-08T08:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2023/09/08/integration-patterns-for-distributed-architecture/</loc>
<lastmod>2023-09-08T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2023/10/05/integration-patterns-for-distributed-architecture-intro-to-kafka/</loc>
<lastmod>2023-10-05T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2023/11/07/integration-patterns-for-distributed-architecture-how-we-use-kafka-in-smily-and-why/</loc>
<lastmod>2023-11-07T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2023/12/18/integration-patterns-for-distributed-architecture-intro-to-dionysus-rb/</loc>
<lastmod>2023-12-18T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2024/02/20/a-story-of-a-spectacular-success-intro-to-aws-rds-database-migration-series/</loc>
<lastmod>2024-02-20T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2024/03/18/rds-database-migration-series-a-horror-story-of-using-aws-dms-with-a-happy-ending/</loc>
<lastmod>2024-03-18T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2024/05/13/rds-database-migration-series-facing-the-giant-how-we-migrated-11-tb-database/</loc>
<lastmod>2024-05-13T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/blog/2024/07/29/rds-database-migration-series-integrating-ruby-on-rails-applications-with-rds-proxy/</loc>
<lastmod>2024-07-29T10:00:00+00:00</lastmod>
</url>
<url>
<loc>https://karolgalanciak.com/about/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/icons/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/contact/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/archives/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/flink/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/trolling/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/ember/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/es7/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/patterns/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/ecmascript/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/rpc/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/activerecord-architecture/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/database/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/design/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/chef/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/architecture/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/unix/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/metaprogramming/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/security/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/quick-tips/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/performance/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/capistrano/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/samza/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/paper-trail/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/rest/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/liquid/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/callbacks/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/mentoring/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/activerecord/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/rails/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/postgresql/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/microservices/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/testing/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/kafka/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/api/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/race-conditions/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/learning/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/audit-log/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/concurrency/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/messages/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/refactoring/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/correlation-uuid/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/triggers/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/spark/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/storm/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/server/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/oop/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/scaling/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/activemodel/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/karafka/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/deployment/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/bdd/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/sidekiq/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/activejob/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/tdd/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/ember-data/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/soa/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/es6/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/databases/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/javascript/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/design-patterns/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/ruby/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/ruby-on-rails/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/rabbitmq/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/redis/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/categories/architeture/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/blog/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/open-source/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/presentations/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/publications/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/privacy-policy/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/</loc>
</url>
<url>
<loc>https://karolgalanciak.com/test-driven-ember/</loc>
</url>
</urlset>
