<?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://cristhedev.com/</loc></url><url><loc>https://cristhedev.com/blog/</loc></url><url><loc>https://cristhedev.com/blog/about/</loc></url><url><loc>https://cristhedev.com/blog/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/contact/</loc></url><url><loc>https://cristhedev.com/blog/de/</loc></url><url><loc>https://cristhedev.com/blog/de/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/de/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/de/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/de/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/de/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/de/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/de/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/de/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/de/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/de/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/de/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/de/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/de/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/de/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/de/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/de/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/de/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/de/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/de/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/de/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/de/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/de/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/de/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/de/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/de/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/de/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/de/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/de/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/de/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/de/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/de/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/de/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/de/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/de/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/de/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/de/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/de/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/de/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/de/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/de/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/de/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/de/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/de/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/de/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/de/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/de/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/de/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/de/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/de/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/de/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/de/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/de/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/de/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/de/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/de/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/de/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/de/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/de/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/de/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/de/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/de/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/de/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/de/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/de/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/de/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/de/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/de/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/de/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/de/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/de/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/de/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/de/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/de/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/de/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/de/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/de/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/de/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/de/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/de/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/de/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/de/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/de/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/de/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/de/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/de/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/de/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/de/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/de/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/de/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/de/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/de/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/de/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/de/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/de/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/de/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/de/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/result-and-option-rust-style-error-handling/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/de/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/de/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/de/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/de/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/de/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/de/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/de/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/de/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/de/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/de/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/de/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/de/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/de/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/de/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/de/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/de/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/de/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/de/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/de/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/de/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/de/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/de/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/</loc></url><url><loc>https://cristhedev.com/blog/en/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/en/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/en/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/en/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/en/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/en/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/en/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/en/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/en/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/en/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/en/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/en/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/en/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/en/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/en/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/en/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/en/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/en/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/en/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/en/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/en/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/en/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/en/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/en/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/en/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/en/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/en/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/en/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/en/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/en/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/en/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/en/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/en/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/en/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/en/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/en/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/en/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/en/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/en/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/en/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/en/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/en/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/en/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/en/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/en/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/en/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/en/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/en/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/en/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/en/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/en/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/en/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/en/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/en/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/en/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/en/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/en/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/en/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/en/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/en/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/en/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/en/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/en/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/en/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/en/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/en/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/en/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/en/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/en/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/en/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/en/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/en/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/en/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/en/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/en/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/en/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/en/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/en/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/en/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/en/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/en/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/en/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/en/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/en/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/en/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/en/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/en/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/en/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/en/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/en/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/en/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/en/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/en/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/en/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/en/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/en/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/result-and-option-rust-style-error-handling/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/en/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/en/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/en/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/en/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/en/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/en/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/en/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/en/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/en/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/en/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/en/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/en/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/en/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/en/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/en/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/en/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/en/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/en/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/en/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/en/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/en/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/en/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/es/</loc></url><url><loc>https://cristhedev.com/blog/es/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/es/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/es/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/es/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/es/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/es/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/es/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/es/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/es/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/es/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/es/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/es/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/es/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/es/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/es/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/es/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/es/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/es/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/es/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/es/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/es/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/es/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/es/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/es/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/es/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/es/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/es/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/es/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/es/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/es/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/es/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/es/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/es/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/es/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/es/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/es/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/es/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/es/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/es/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/es/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/es/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/es/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/es/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/es/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/es/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/es/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/es/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/es/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/es/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/es/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/es/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/es/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/es/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/es/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/es/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/es/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/es/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/es/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/es/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/es/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/es/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/es/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/es/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/es/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/es/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/es/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/es/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/es/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/es/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/es/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/es/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/es/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/es/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/es/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/es/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/es/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/es/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/es/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/es/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/es/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/es/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/es/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/es/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/es/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/es/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/es/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/es/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/es/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/es/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/es/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/es/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/es/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/es/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/es/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/es/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/es/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/result-and-option-rust-style-error-handling/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/es/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/es/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/es/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/es/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/es/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/es/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/es/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/es/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/es/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/es/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/es/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/es/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/es/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/es/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/es/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/es/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/es/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/es/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/es/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/es/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/es/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/es/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/fr/</loc></url><url><loc>https://cristhedev.com/blog/fr/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/fr/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/fr/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/fr/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/fr/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/fr/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/fr/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/fr/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/fr/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/fr/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/fr/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/fr/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/fr/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/fr/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/fr/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/fr/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/fr/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/fr/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/fr/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/fr/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/fr/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/fr/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/fr/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/fr/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/fr/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/fr/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/fr/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/fr/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/fr/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/fr/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/fr/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/fr/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/fr/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/fr/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/fr/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/fr/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/fr/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/fr/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/fr/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/fr/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/fr/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/fr/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/fr/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/fr/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/fr/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/fr/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/fr/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/fr/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/fr/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/fr/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/fr/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/fr/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/fr/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/fr/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/fr/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/fr/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/fr/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/fr/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/fr/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/fr/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/fr/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/result-and-option-rust-style-error-handling/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/fr/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/fr/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/fr/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/fr/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/fr/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/fr/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/fr/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/fr/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/fr/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/fr/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/fr/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/fr/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/fr/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/fr/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/fr/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/fr/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/fr/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/fr/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/fr/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/fr/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/fr/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/ja/</loc></url><url><loc>https://cristhedev.com/blog/ja/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/ja/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/ja/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/ja/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/ja/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/ja/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/ja/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/ja/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/ja/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/ja/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/ja/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/ja/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/ja/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/ja/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/ja/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/ja/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/ja/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/ja/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/ja/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/ja/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/ja/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ja/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/ja/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/ja/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/ja/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/ja/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/ja/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/ja/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/ja/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/ja/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ja/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/ja/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/ja/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/ja/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/ja/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/ja/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/ja/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/ja/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/ja/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/ja/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/ja/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/ja/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/ja/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/ja/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/ja/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/ja/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/ja/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/ja/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/ja/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/ja/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/ja/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/ja/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/ja/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/ja/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ja/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/ja/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/ja/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/ja/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/ja/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/ja/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/ja/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/result-and-option-rust-style-error-handling/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/ja/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/ja/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/ja/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/ja/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/ja/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/ja/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/ja/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/ja/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/ja/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/ja/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/ja/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/ja/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/ja/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/ja/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/ja/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ja/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/ja/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/ja/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/ja/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ja/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/ja/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/</loc></url><url><loc>https://cristhedev.com/blog/ko/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/ko/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/ko/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/ko/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/ko/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/ko/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/ko/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/ko/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/ko/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/ko/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/ko/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/ko/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/ko/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/ko/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/ko/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/ko/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/ko/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/ko/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/ko/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/ko/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/ko/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/ko/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/ko/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/ko/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/ko/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/ko/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/ko/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/ko/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/ko/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/ko/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ko/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/ko/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/ko/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/ko/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/ko/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/ko/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/ko/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/ko/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/ko/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/ko/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/ko/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/ko/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/ko/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/ko/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/ko/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/ko/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/ko/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/ko/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/ko/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/ko/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/ko/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/ko/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/ko/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/ko/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/ko/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/ko/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/ko/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/ko/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/ko/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/ko/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/ko/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/ko/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/ko/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/ko/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/ko/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/ko/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/ko/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/ko/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/ko/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/ko/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/ko/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/ko/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/ko/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/ko/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/ko/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/ko/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/ko/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/ko/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/ko/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/ko/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/ko/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/ko/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/privacy/</loc></url><url><loc>https://cristhedev.com/blog/pt/</loc></url><url><loc>https://cristhedev.com/blog/pt/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/pt/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/pt/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/pt/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/pt/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/pt/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/pt/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/pt/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/pt/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/pt/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/pt/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/pt/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/pt/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/pt/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/pt/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/pt/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/pt/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/pt/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/pt/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/pt/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/pt/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/pt/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/pt/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/pt/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/pt/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/pt/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/pt/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/pt/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/pt/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/pt/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/pt/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/pt/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/pt/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/pt/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/pt/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/pt/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/pt/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/pt/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/pt/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/pt/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/pt/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/pt/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/pt/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/pt/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/pt/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/pt/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/pt/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/pt/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/pt/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/pt/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/pt/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/pt/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/pt/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/pt/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/pt/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/pt/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/pt/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/pt/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/pt/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/pt/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/pt/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/pt/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/pt/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/pt/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/pt/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/pt/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/pt/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/pt/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/pt/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/pt/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/pt/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/pt/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/pt/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/pt/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/pt/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/pt/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/pt/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/pt/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/pt/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/pt/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/pt/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/pt/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/rust/result-and-option-rust-style-error-handling/</loc></url><url><loc>https://cristhedev.com/blog/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/topics/ai/page/2/</loc></url><url><loc>https://cristhedev.com/blog/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/page/2/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/page/3/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/page/4/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/page/2/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/page/3/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/page/4/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/page/5/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/page/6/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/topics/trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url><url><loc>https://cristhedev.com/blog/zh/</loc></url><url><loc>https://cristhedev.com/blog/zh/agent/5-ai-agent-patterns-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/agent/12-claude-code-features-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/agent/grab-uses-ai-agent-to-boost-productivity-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/agent/microsoft-ship-ai-agent-framework-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/agent/top-ai-repos-on-github-2026-detailed-explanation-with-agent-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/agent/what-is-ai-agent-the-observe-reason-act-loop/</loc></url><url><loc>https://cristhedev.com/blog/zh/agent/what-is-an-ai-agent-detailed-explanation-with-java-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/algorithms/big-o-through-code-examples-understanding-algorithm-complexity/</loc></url><url><loc>https://cristhedev.com/blog/zh/algorithms/binary-search-and-variations-lower-bound-rotated-array-answer-search/</loc></url><url><loc>https://cristhedev.com/blog/zh/algorithms/hashmap-solutions-for-counting-problems-in-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/algorithms/two-pointers-and-sliding-window-optimizing-arrays-and-strings/</loc></url><url><loc>https://cristhedev.com/blog/zh/aws/aws-fundamentals-region-iam-and-key-services/</loc></url><url><loc>https://cristhedev.com/blog/zh/aws/iam-users-roles-and-policies-done-right/</loc></url><url><loc>https://cristhedev.com/blog/zh/aws/s3-in-spring-boot-secure-file-storage-and-proper-permission-management/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-1-1-and-group-chat-storing-messages-and-read-status/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-billing-and-subscription-renewal-system/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-concert-ticketing-system-virtual-queue-for-millions/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-facebook-like-news-feed-fan-out-on-write-or-read/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-google-drive-like-file-storage-and-sharing-system/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-medical-appointment-booking-system-time-slots-and-concurrency/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-multi-channel-notification-system-push-email-sms-with-retry-and/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-rate-limiter-for-an-api-gateway-with-redis-and-spring/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-real-time-order-tracking-and-shipper-location-system/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-real-time-transaction-fraud-detection-system/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-ride-sharing-app-finding-nearby-drivers-and-matching/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-a-voucher-system-usage-limits-under-high-load/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-an-airline-booking-system-seat-hold-payments-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-an-online-auction-system-concurrent-bids-and-closure/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/designing-real-time-game-leaderboards-with-redis-sorted-sets/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/electronic-wallet-design-safe-money-transfer-with-double-entry-ledger/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/flash-sale-design-selling-10-000-products-in-1-second-without-overselling/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/food-delivery-system-design-orders-restaurants-shippers/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/hotel-room-booking-system-design-per-night-inventory-overbooking-prevention/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/movie-ticket-system-design-seat-holds-and-reservation-expiry/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/payment-system-design-idempotency-reconciliation-and-refunds/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/shopping-cart-order-design-for-e-commerce-platform/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/system-design-for-car-rental-scheduling-deposits-and-cancellations/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/system-design-for-high-traffic-url-shortener/</loc></url><url><loc>https://cristhedev.com/blog/zh/case-study/system-design-product-search-with-autocomplete/</loc></url><url><loc>https://cristhedev.com/blog/zh/design-pattern/builder-pattern-for-objects-with-many-parameters-in-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/design-pattern/factory-method-and-abstract-factory-in-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/design-pattern/how-observer-differs-from-pub-sub/</loc></url><url><loc>https://cristhedev.com/blog/zh/design-pattern/strategy-pattern-replace-if-else-with-an-interface/</loc></url><url><loc>https://cristhedev.com/blog/zh/docker/docker-basics-image-container-and-layer/</loc></url><url><loc>https://cristhedev.com/blog/zh/docker/writing-good-dockerfiles-multi-stage-build-for-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/evm/how-does-evm-work-decoding-ethereum-virtual-machine/</loc></url><url><loc>https://cristhedev.com/blog/zh/evm/transactions-in-ethereum-nonce-gas-and-signatures/</loc></url><url><loc>https://cristhedev.com/blog/zh/evm/what-is-gas-and-why-fees-change-in-evm/</loc></url><url><loc>https://cristhedev.com/blog/zh/git/git-basics-commit-branch-and-merge/</loc></url><url><loc>https://cristhedev.com/blog/zh/git/git-rebase-or-merge-choose-the-right-strategy-for-your-team/</loc></url><url><loc>https://cristhedev.com/blog/zh/git/undoing-in-git-reset-revert-and-restore/</loc></url><url><loc>https://cristhedev.com/blog/zh/git/writing-good-commit-messages-in-git/</loc></url><url><loc>https://cristhedev.com/blog/zh/github-actions/ci-for-java-projects-with-maven-using-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/zh/github-actions/ci-for-node-js-projects-with-github-actions/</loc></url><url><loc>https://cristhedev.com/blog/zh/github-actions/github-actions-basics-workflows-jobs-and-steps/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/building-rest-apis-with-net-http-using-go-1-22-s-new-routing/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/context-in-go-timeout-cancel-and-value-passing/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/defer-panic-and-recover-in-go-when-to-use/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/error-handling-in-go-errors-is-errors-as-and-error-wrapping/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/generics-in-go-type-parameters-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/go-modules-managing-dependencies-and-versioning/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/goroutine-leak-silent-memory-eater-in-golang/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/goroutines-and-channels-the-foundation-of-concurrency-in-go/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/graceful-shutdown-for-http-servers-in-go/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/interfaces-in-go-small-implicit-and-done-right/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/maps-in-go-and-the-concurrent-map-writes-error/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/profiling-go-with-pprof-finding-cpu-memory-and-goroutine-bottlenecks/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/reading-and-writing-json-in-go-with-encoding-json/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/slices-in-go-len-cap-and-append-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/struct-embedding-in-go-instead-of-inheritance/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/sync-waitgroup-mutex-and-errgroup-coordinating-goroutines-in-go/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/table-driven-tests-in-go/</loc></url><url><loc>https://cristhedev.com/blog/zh/golang/worker-pools-in-go-limiting-goroutines-collecting-results-safe-cancellation/</loc></url><url><loc>https://cristhedev.com/blog/zh/huggingface/fine-tune-small-models-with-hugging-face-trainer/</loc></url><url><loc>https://cristhedev.com/blog/zh/huggingface/hugging-face-datasets-library-loading-and-processing-data/</loc></url><url><loc>https://cristhedev.com/blog/zh/huggingface/hugging-face-hub-finding-and-using-models/</loc></url><url><loc>https://cristhedev.com/blog/zh/huggingface/running-embedding-models-with-sentence-transformers/</loc></url><url><loc>https://cristhedev.com/blog/zh/huggingface/tokenizer-in-hugging-face-principles-and-how-to-use-in-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/huggingface/transformers-pipeline-running-nlp-models-in-a-few-lines-of-code/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/collectors-groupingby-and-partitioningby-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/comparator-sorting-by-multiple-criteria-with-comparing-and-thencomparing/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/completablefuture-asynchronous-execution-and-combining-results/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/concurrenthashmap-vs-hashmap-and-collections-synchronizedmap/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/equals-and-hashcode-contract-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/exceptions-in-java-checked-unchecked-and-design/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/executorservice-and-thread-pool-choosing-the-right-type/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/garbage-collectors-in-java-g1-zgc-and-how-to-choose/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/generics-in-java-wildcards-extends-and-super/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/immutable-collections-in-java-list-of-copyof-and-unmodifiable/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/java-records-when-to-use-and-when-to-avoid/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/java-time-localdate-zoneddatetime-and-duration/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/java-virtual-threads-practical-guide/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/optional-in-java-using-it-correctly-and-common-anti-patterns/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/sealed-classes-and-pattern-matching-for-switch-in-java-21/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/stream-api-map-filter-reduce-and-collect-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/text-blocks-and-new-string-apis-java-15/</loc></url><url><loc>https://cristhedev.com/blog/zh/java/try-with-resources-and-autocloseable-in-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/change-data-capture-with-debezium-and-kafka/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/consumer-groups-and-rebalancing-in-kafka-why-consumers-stop/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/consumer-groups-and-rebalancing-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/designing-partition-keys-in-kafka-message-ordering-and-load-balancing/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/event-sourcing-with-kafka-save-events-instead-of-state/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/kafka-basics-topics-partitions-and-offsets/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/kafka-monitoring-consumer-lag-and-key-metrics-to-track/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/kafka-producer-acks-idempotence-and-batching/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/kafka-producer-getting-acks-retry-and-idempotence-right/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/kafka-retry-and-dead-letter-topic-with-spring-kafka/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/outbox-pattern-with-kafka-never-lose-events-on-database-write/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/saga-pattern-with-kafka-for-distributed-transactions-tour-booking-example/</loc></url><url><loc>https://cristhedev.com/blog/zh/kafka/schema-registry-and-avro-protobuf-in-kafka-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/coroutines-in-kotlin-launch-async-and-scope/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/data-class-and-copy-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/delegated-properties-in-kotlin-lazy-and-observable/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/extension-functions-in-kotlin-adding-methods-to-existing-classes/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/higher-order-functions-and-lambdas-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/kotlin-and-java-in-a-single-spring-boot-project-with-maven/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/kotlin-collection-map-filter-and-groupby-with-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/kotlin-flow-asynchronous-data-streams/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/kotlin-for-backend-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/null-safety-in-kotlin-let-and-elvis-operator/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/object-companion-object-and-singleton-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/scope-functions-in-kotlin-let-run-apply-also-with/</loc></url><url><loc>https://cristhedev.com/blog/zh/kotlin/sealed-classes-and-when-in-kotlin/</loc></url><url><loc>https://cristhedev.com/blog/zh/kubernetes/configmap-and-secret-in-kubernetes-separating-configuration-from-image/</loc></url><url><loc>https://cristhedev.com/blog/zh/kubernetes/kubernetes-basics-pod-deployment-and-service/</loc></url><url><loc>https://cristhedev.com/blog/zh/kubernetes/kubernetes-ingress-exposing-your-application-to-the-world/</loc></url><url><loc>https://cristhedev.com/blog/zh/kubernetes/liveness-readiness-and-startup-probes-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/zh/kubernetes/resource-requests-and-limits-in-kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/zh/linux/file-permissions-in-linux-chmod-chown-and-umask/</loc></url><url><loc>https://cristhedev.com/blog/zh/linux/linux-commands-every-developer-needs-to-know/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/12-ai-papers-that-changed-everything-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/ai-inference-engineering-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/calling-llm-apis-temperature-top-p-and-max-tokens/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/counting-tokens-and-estimating-costs-when-calling-llms-in-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/function-calling-and-tool-use-with-spring-ai/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/gpt-live-listen-and-speak-how-it-works-and-java-integration/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/how-llms-work-tokens-context-window-and-sampling/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/prompt-engineering-practical-techniques-you-can-use-now/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/streaming-responses-from-llm-apis-with-java-21-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/structured-output-force-llm-to-return-json-matching-schema/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/top-20-ai-concepts-in-llm-detailed-explanations-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/updating-rag-documents-versioning-over-overwriting/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/use-ai-to-save-hours-for-dev-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/llm/zero-cost-ai-stack-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/mcp/building-your-first-mcp-server-with-java-and-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/mcp/how-mcp-tool-resource-and-prompt-differ/</loc></url><url><loc>https://cristhedev.com/blog/zh/mcp/mcp-vs-rag-vs-ai-agent-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/mcp/what-is-mcp-model-context-protocol-explained-for-java-devs/</loc></url><url><loc>https://cristhedev.com/blog/zh/microservices/inter-service-communication-rest-grpc-or-message-queue/</loc></url><url><loc>https://cristhedev.com/blog/zh/microservices/monolith-or-microservices-how-to-choose-right/</loc></url><url><loc>https://cristhedev.com/blog/zh/microservices/saga-pattern-for-distributed-transactions-in-microservices/</loc></url><url><loc>https://cristhedev.com/blog/zh/nextjs/app-router-in-next-js-layout-page-and-route/</loc></url><url><loc>https://cristhedev.com/blog/zh/nextjs/data-fetching-and-caching-in-next-js-app-router/</loc></url><url><loc>https://cristhedev.com/blog/zh/nextjs/route-handlers-writing-apis-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/zh/nextjs/server-actions-handle-forms-without-a-separate-api/</loc></url><url><loc>https://cristhedev.com/blog/zh/nextjs/server-component-and-client-component-in-next-js/</loc></url><url><loc>https://cristhedev.com/blog/zh/nodejs/async-await-and-error-handling-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/zh/nodejs/building-rest-apis-with-express-in-node-js/</loc></url><url><loc>https://cristhedev.com/blog/zh/nodejs/event-loop-in-node-js-how-it-works-and-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/nodejs/streams-in-node-js-processing-large-files-without-memory-drain/</loc></url><url><loc>https://cristhedev.com/blog/zh/postgresql/ai-debug-database-on-databricks-with-postgresql-complete-guide/</loc></url><url><loc>https://cristhedev.com/blog/zh/postgresql/indexes-in-postgresql-b-tree-gin-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/zh/postgresql/reading-explain-analyze-in-postgresql-for-beginners/</loc></url><url><loc>https://cristhedev.com/blog/zh/postgresql/transactions-and-isolation-levels-in-postgresql/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/asyncio-or-threading-decide-with-3-key-questions/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/context-managers-and-the-with-statement-in-python/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/dataclasses-lean-data-classes-in-python/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/decorators-in-python-from-basics-to-parameters/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/fastapi-building-rest-api-with-automatic-validation/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/generators-and-yield-in-python-process-large-data-without-wasting-ram/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/list-dict-set-comprehension-in-python-concise-yet-readable/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/logging-in-python-production-configuration/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/multiprocessing-in-python-for-cpu-bound-tasks/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/packaging-and-releasing-python-packages-to-pypi/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/pathlib-instead-of-os-path-modern-file-path-handling/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/proper-exception-handling-in-python/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/pydantic-v2-input-data-validation-in-python/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/type-hints-in-python-and-mypy-checking/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/virtual-environment-pip-and-pyproject-toml-in-python/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/what-is-gil-in-python-and-how-it-impacts-performance/</loc></url><url><loc>https://cristhedev.com/blog/zh/python/writing-tests-with-pytest-and-fixtures-in-python/</loc></url><url><loc>https://cristhedev.com/blog/zh/rag/embeddings-for-semantic-search-detailed-guide-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/rag/from-found-passages-to-grounded-answers-in-rag/</loc></url><url><loc>https://cristhedev.com/blog/zh/rag/llms-need-evidence-to-answer-correctly-rag-explained-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/rag/rag-from-a-to-z-retrieve-documents-then-answer/</loc></url><url><loc>https://cristhedev.com/blog/zh/rag/why-exhaustive-search-costs-so-much-detailed-explanation-with-examples-rag/</loc></url><url><loc>https://cristhedev.com/blog/zh/react/custom-hooks-in-react-extracting-reusable-logic-the-right-way/</loc></url><url><loc>https://cristhedev.com/blog/zh/react/usememo-and-usecallback-in-react-when-you-really-need-them/</loc></url><url><loc>https://cristhedev.com/blog/zh/react/usestate-and-useeffect-using-them-correctly/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/bloom-filter-with-redis-preventing-cache-penetration-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/caching-with-redis-ttl-eviction-and-cache-stampede/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/distributed-locks-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/hot-keys-and-big-keys-in-redis-detection-and-handling/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/keeping-cache-and-database-consistent-with-redis/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/pub-sub-and-redis-streams-differences-and-how-to-use-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/rate-limiting-with-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redis-basics-data-types-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redis-choosing-cache-aside-write-through-or-write-behind/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redis-for-reservation-systems-seat-locking-with-set-nx-px-and-auto-expiry/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redis-geo-finding-nearest-locations-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redis-persistence-rdb-aof-and-when-data-loss-occurs/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redis-sorted-set-leaderboard-priority-queue-and-sliding-window/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redis-streams-with-consumer-groups-reliable-event-processing/</loc></url><url><loc>https://cristhedev.com/blog/zh/redis/redlock-distributed-lock-across-multiple-redis-nodes-and-the-controversy-around/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/async-rust-with-tokio-async-await-tasks-and-channels/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/borrowing-and-lifetime-in-rust-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/building-rest-apis-with-axum-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/cargo-create-projects-manage-dependencies-and-organize-workspaces/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/enum-and-pattern-matching-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/error-handling-in-rust-with-thiserror-and-anyhow/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/iterators-and-closures-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/ownership-in-rust-memory-safety-without-gc/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/result-and-option-rust-style-error-handling/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/safe-concurrency-in-rust-with-mutex-and-channel/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/smart-pointers-in-rust-box-rc-and-arc/</loc></url><url><loc>https://cristhedev.com/blog/zh/rust/traits-in-rust-defining-shared-behavior/</loc></url><url><loc>https://cristhedev.com/blog/zh/solidity/erc-20-write-your-first-token-with-solidity-and-foundry/</loc></url><url><loc>https://cristhedev.com/blog/zh/solidity/reentrancy-the-vulnerability-that-cost-the-dao-60-million/</loc></url><url><loc>https://cristhedev.com/blog/zh/solidity/solidity-basics-contracts-state-and-functions/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/caching-with-cacheable-and-redis-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/calling-external-apis-with-restclient-spring-boot-3-2/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/centralized-exception-handling-with-controlleradvice/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/configuration-with-configurationproperties-instead-of-value/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/creating-your-first-rest-api-with-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/database-migration-with-flyway-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/handling-scheduled-tasks-with-scheduled-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/integration-testing-with-testcontainers-in-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/packing-spring-boot-into-lightweight-docker-images/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/pagination-and-sorting-with-pageable-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/securing-rest-api-with-spring-security-and-jwt/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/sending-and-receiving-kafka-messages-in-spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/spring-boot-actuator-health-checks-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/spring-boot-profiles-dev-test-prod-configuration/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/spring-data-jpa-repository-query-methods-and-query/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/transactions-in-spring-transactional-and-common-pitfalls/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/validation-in-spring-boot-with-bean-validation/</loc></url><url><loc>https://cristhedev.com/blog/zh/spring-boot/writing-controller-tests-with-webmvctest-and-mockmvc/</loc></url><url><loc>https://cristhedev.com/blog/zh/svm/evm-vs-svm-why-solana-runs-in-parallel/</loc></url><url><loc>https://cristhedev.com/blog/zh/svm/solana-account-model-understanding-svm-state-storage-via-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/system-design/7-load-balancer-functions-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/system-design/api-concepts-every-software-engineer-should-know-comprehensive-guide/</loc></url><url><loc>https://cristhedev.com/blog/zh/system-design/caching-cache-aside-write-through-and-ttl/</loc></url><url><loc>https://cristhedev.com/blog/zh/system-design/load-balancer-algorithms-and-when-to-use-them/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/ai-code-review-how-to-use-effectively-and-safely/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/are-vector-databases-still-necessary-with-longer-context-windows/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/documentation-beats-memory-building-repos-for-humans-and-ai/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/edge-and-serverless-hybrid-running-code-close-to-users/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/it-job-market-2026-which-skills-should-developers-invest-in/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/junior-dev-in-the-ai-era-what-to-learn-to-stay-irreplaceable/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/local-first-software-offline-apps-and-sync-with-crdt/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/mcp-model-context-protocol-is-the-new-standard-for-ai-tools/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/meta-frameworks-next-js-nuxt-as-the-new-default/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/multi-agent-when-ai-agents-delegate-to-each-other/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/observability-for-llm-applications-tracking-prompts-costs-and-quality/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/opentelemetry-common-standard-for-traces-logs-and-metrics/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/optimizing-llm-call-costs-prompt-caching-small-models-and-batch/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/passkey-instead-of-passwords-how-it-works-and-integration/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/platform-engineering-and-internal-developer-platform-concepts-and-application/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/postgres-does-everything-queue-search-vector-in-one-database/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/react-compiler-goodbye-to-manual-usememo-and-usecallback/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/running-llms-locally-when-to-self-host-models/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/rust-in-infrastructure-why-many-tools-are-rewritten-in-rust/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/sandbox-for-ai-agents-running-agent-code-safely/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/software-supply-chain-security-sbom-signing-and-blocking-malicious-packages/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/webassembly-outside-the-browser-wasi-and-server-side-wasm/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/what-is-an-ai-coding-agent-and-how-it-changes-developer-work/</loc></url><url><loc>https://cristhedev.com/blog/zh/tech-trends/why-coding-agents-make-mistakes-common-errors-and-prevention/</loc></url><url><loc>https://cristhedev.com/blog/zh/testing/good-unit-tests-naming-structure-and-coverage/</loc></url><url><loc>https://cristhedev.com/blog/zh/testing/how-mock-stub-and-fake-differ/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/ai/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/ai/agent/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/ai/huggingface/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/ai/llm/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/ai/mcp/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/ai/rag/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/case-study/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/case-study/page/2/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/design-pattern/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/kafka/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/microservices/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/postgresql/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/redis/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/arch/system-design/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/blockchain/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/blockchain/evm/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/blockchain/rust/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/blockchain/solidity/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/blockchain/svm/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/cs/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/cs/algorithms/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/cs/testing/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/devops/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/devops/aws/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/devops/docker/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/devops/git/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/devops/github-actions/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/devops/kubernetes/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/devops/linux/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/golang/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/java/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/kotlin/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/python/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/rust/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/spring-boot/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/lang/typescript/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/trends/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/trends/tech-trends/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/trends/tech-trends/page/2/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/web/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/web/nextjs/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/web/nodejs/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/web/react/</loc></url><url><loc>https://cristhedev.com/blog/zh/topics/web/web-security/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/configuring-tsconfig-for-a-new-typescript-project/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/discriminated-unions-in-typescript-for-state-and-api-response/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/enum-or-union-string-literal-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/keyof-typeof-and-indexed-access-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/mapped-types-and-conditional-types-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/runtime-data-validation-in-typescript-with-zod/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/strict-mode-in-typescript-what-gets-enabled/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/template-literal-types-in-typescript-through-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/type-guard-and-assertion-function-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/typescript-generics-through-practical-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/typing-async-functions-and-promises-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/union-intersection-and-narrowing-in-typescript/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/unknown-any-and-never-in-typescript-which-one-to-use/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/utility-types-in-typescript-partial-pick-omit-record/</loc></url><url><loc>https://cristhedev.com/blog/zh/typescript/writing-a-typescript-library-with-type-declarations/</loc></url><url><loc>https://cristhedev.com/blog/zh/web-security/5-ways-to-block-prompt-injection-detailed-explanation-with-examples/</loc></url><url><loc>https://cristhedev.com/blog/zh/web-security/csrf-and-samesite-cookie-defense-mechanisms-in-spring-security/</loc></url><url><loc>https://cristhedev.com/blog/zh/web-security/jwt-proper-usage-and-common-security-mistakes/</loc></url><url><loc>https://cristhedev.com/blog/zh/web-security/oauth-2-0-and-openid-connect-by-example-with-spring-boot-3/</loc></url><url><loc>https://cristhedev.com/blog/zh/web-security/sql-injection-and-prepared-statements-in-java/</loc></url><url><loc>https://cristhedev.com/blog/zh/web-security/storing-passwords-correctly-bcrypt-and-argon2/</loc></url><url><loc>https://cristhedev.com/blog/zh/web-security/xss-attacks-and-prevention-in-spring-boot-applications/</loc></url></urlset>