<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Farhan Hasin Chowdhury on foojay.io - Friends of OpenJDK</title><link>https://foojayio.github.io/website/today/author/farhan-chowdhury/</link><description>Articles written by Farhan Hasin Chowdhury on foojay.io - Friends of OpenJDK</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 14 May 2026 17:09:39 +0000</lastBuildDate><atom:link href="https://foojayio.github.io/website/today/author/farhan-chowdhury/index.xml" rel="self" type="application/rss+xml"/><item><title>AI-Powered Code Review Assistant: Automated Code Analysis with Spring AI and MongoDB</title><link>https://foojayio.github.io/website/today/ai-powered-code-review-assistant-automated-code-analysis-with-spring-ai-and-mongodb/</link><pubDate>Thu, 14 May 2026 17:09:39 +0000</pubDate><guid>https://foojayio.github.io/website/today/ai-powered-code-review-assistant-automated-code-analysis-with-spring-ai-and-mongodb/</guid><description>&lt;p&gt;Code reviews catch bugs before they ship, but they take time. Most teams rely on manual review or basic linters that flag syntax issues but miss deeper problems like subtle resource leaks, poor exception handling, or security anti-patterns. Static analysis tools help, but they work with rigid rules that cannot generalize across code variations. A rule that catches &lt;code&gt;catch (Exception e) {}&lt;/code&gt; will miss &lt;code&gt;catch (Throwable t) { return null; }&lt;/code&gt;, even though both are the same underlying problem.&lt;/p&gt;</description></item><item><title>Building a Personalized Content Delivery System</title><link>https://foojayio.github.io/website/today/building-a-personalized-content-delivery-system/</link><pubDate>Thu, 23 Apr 2026 15:10:45 +0000</pubDate><guid>https://foojayio.github.io/website/today/building-a-personalized-content-delivery-system/</guid><description>&lt;p&gt;Recommendation engines have a reputation for requiring specialized ML infrastructure: matrix factorization pipelines, training jobs, and model serving layers. That is one way to do it, but not the only way. If your data already lives in MongoDB and your application runs on Spring Boot, you can build a practical recommendation system using tools you already have. MongoDB aggregation pipelines handle the scoring math server-side, and Atlas Vector Search adds semantic matching without a separate vector database.&lt;/p&gt;</description></item><item><title>Clean Architecture with Spring Boot and MongoDB</title><link>https://foojayio.github.io/website/today/clean-architecture-with-spring-boot-and-mongodb/</link><pubDate>Tue, 24 Mar 2026 16:43:14 +0000</pubDate><guid>https://foojayio.github.io/website/today/clean-architecture-with-spring-boot-and-mongodb/</guid><description>&lt;p&gt;Most Spring Boot tutorials tightly wire everything together. Controllers call services, services call repositories, and MongoDB annotations like &lt;code&gt;@Document&lt;/code&gt; and &lt;code&gt;@Field&lt;/code&gt; sit right next to your business logic. It works until you need to swap the database, test logic in isolation, or reuse domain rules in a different context.&lt;/p&gt;
&lt;p&gt;Clean Architecture enforces one rule: source code dependencies always point inward. Your business logic never imports Spring or MongoDB classes. The database becomes a pluggable detail at the outermost layer, something you can replace without rewriting core application code.&lt;/p&gt;</description></item><item><title>Optimizing MongoDB Queries in Java Applications</title><link>https://foojayio.github.io/website/today/optimizing-mongodb-queries-in-java-applications/</link><pubDate>Tue, 09 Dec 2025 17:45:09 +0000</pubDate><guid>https://foojayio.github.io/website/today/optimizing-mongodb-queries-in-java-applications/</guid><description>&lt;p&gt;Modern Java applications often struggle with performance bottlenecks that have little to do with the JVM itself. In most cases, the culprit lies deeper in how the application interacts with its database. Slow queries, missing indexes, or inefficient access patterns can quietly degrade user experience, increase latency, and inflate infrastructure costs. MongoDB, known for its flexibility and document-oriented design, can deliver remarkable performance when used correctly. However, that performance can quickly diminish when queries and indexes are not aligned with real-world access patterns.&lt;/p&gt;</description></item></channel></rss>