| BoxLang 1.17.0 Released: Module Inception, CLI Checker, Jar Loading and much more! | Cristobal Escobar | — |
| What's New In The September 2026 Azul Payara Release? | Dominika Tasarz | 2 |
| Can You Explain the Diff Your AI Agent Just Wrote? | Viktoria Evdokimova | 1 |
| How I Built an AI Assistant for My Career with Java, Spring AI, and MongoDB | Ricardo Mello | — |
| Hello Java 27! Have You Been Working Out? | Hanno Embregts | 1 |
| Foojay Podcast #101: Java 27 in Practice: Smaller Heaps, Smarter Defaults, and Valhalla on the Horizon | Frank Delporte, Simon Ritter | — |
| Come for Java. Get a Whole Lot More. | Richard Fichtner | 4 |
| Reflection-Free Serialization on the JVM: Four Formats In, Avro Out | Dmitry Moskalyuk | 1 |
| One Base URL, Many Coding Agents: What an OpenAI-Compatible Gateway Looks Like From java.net.http | Viktoria Evdokimova | 1 |
| Masking a JVM thread dump without breaking the analysis | Felipe Maschio | 1 |
| Debugging Is Invariant Discovery: What One Kafka Session Taught Us About AI Agents | Viktoria Evdokimova | — |
| Community Spotlight: BoxLang Express Brings Node-Style HTTP to the JVM | Cristobal Escobar | — |
| “Commit created” — but it isn’t: why the agent’s word needs external verification, and what the mistake costs | Viktoria Evdokimova | 70 |
| From OpenTelemetry to DuckDB | Geertjan Wielenga | 60 |
| Featured Foojay Authors for September 2026: Marit van Dijk and Graeme Robinson | Frank Delporte | 63 |
| Bringing Raspberry Pico to Quarkus with Firmata | Igor De Souza | 82 |
| From Spec-Driven Development to Living Specifications in Java Projects | Maximillian Arruda | 3 |
| Building an Agentic Warehouse Management System — Part 3: Tools, Decisions, and Actions | Ricardo Mello | 106 |
| Building an Agentic Warehouse Management System — Part 2: Java and Spring AI | Ricardo Mello | 118 |
| Agentic WMS — Part 1: Where AI Agents Add Value | Ricardo Mello | 156 |
| Did Your AI Agent Run the Debugger? One JVM Bug, Two Agent Runs | Viktoria Evdokimova | 166 |
| No Database Operations Found: What Writing a Spring Boot Analyzer Taught Me About Spring | Braham Shakti | 515 |
| MongoDB Search Server, improved! | Erik Hatcher | 5 |
| Aggregation Optimization in MongoDB: Sorting With Indexes (Part 5) | Graeme Robinson | 115 |
| Announcing BX-WORD: Native Microsoft Word Automation for BoxLang | Cristobal Escobar | 1 |
| Aggregation Optimization in MongoDB: Data Duplication to Improve Read Performance (Part 4) | Graeme Robinson | 1 |
| JavaFX Links of August 2026 | Frank Delporte | 155 |
| NetBeans DataWrangler: Query, Convert, and Edit Data Analytics Files | Geertjan Wielenga | 165 |
| Jakarta Faces, Java Web Framework, Stateless Edition: Marketplace AliFaces | Angelo Rubini | 1 |
| Running DuckDB's JDBC Driver in a GraalVM Native Image | Geertjan Wielenga | 1 |
| SQLite Across Every Port: One Contract, One Encrypted File Format | Shai Almog | 145 |
| App Shield: Your Server Should Not Trust the App Calling It | Shai Almog | 1 |
| BoxLang 1.16.0 Released! | Cristobal Escobar | 1 |
| Scripting in small apps: you don't need a container for a macro | Austin Lehman | 6 |
| What's New in the August 2026 Azul Payara Release? | Dominika Tasarz, Luqman Saeed | 1 |
| Offline Crypto Address Validation in Java | Oleksandr Dendeberia | 101 |
| The Third-Generation GUI Builder: One Workspace for Every Form | Shai Almog | 139 |
| Aggregation Optimization in MongoDB: Optimizing Many-to-Many Relationships (Part 3) | Graeme Robinson | 98 |
| Azul August 2026 Release: Java's First Monthly CSPU | Frank Delporte | 147 |
| Introducing BoxLang AI Explorer: A Local Catalog for Every AI Pattern | Cristobal Escobar | 236 |
| Your AI Assistant Is Choosing Your Dependencies | Steve Poole | 384 |
| Idempotent Write Paths: Keeping an Integration Pipeline Correct When Messages Repeat | Yuelin Ou | 211 |
| Build Secure AI Chat Applications with BoxLang, RAG, Ollama, and Amazon Bedrock with Dan Card | Cristobal Escobar | 251 |
| DuckDB in Spring Batch: Replace In-Memory Java Loops with One SQL Statement | Geertjan Wielenga | 557 |
| Introduction to Retrieval-Augmented Generation with Java and MongoDB | Otavio Santana | 340 |
| Push V3: One Message From Your Server to Every Surface | Shai Almog | 392 |
| Embedding DuckDB in a Maven App (and Using It for Things That Aren't Databases) | Geertjan Wielenga | 545 |
| Sheetmusic4J 0.0.3: ABC Notation, Guitar Pro, Engraving Improvements | Frank Delporte | 300 |
| Jakarta Agentic AI Hits Its First Milestone | Dominika Tasarz | 593 |
| Idempotent Spring Boot: Safe REST with One Annotation | Youssef Ben Henda | 1,513 |
| The Codename One JavaScript Port Is Now Free and Open Source | Shai Almog | 480 |
| JavaFX Links of July 2026 | Frank Delporte | 371 |
| Keeping Java Hot This Summer | Dominika Tasarz | 372 |
| How to Create a Spring Boot Fraud Scoring Service | Geertjan Wielenga, Zoran Sevarac | 776 |
| HTTP QUERY Method Explained: RFC 10008, Ecosystem Adoption, and a Quarkus Implementation | Hüseyin Akdoğan | 756 |
| Introducing Sheetmusic4J, a Java(FX) Library to Render and Interact with Sheet Music | Frank Delporte | 259 |
| Featured Foojay Authors for July and August 2026 | Frank Delporte | 305 |
| New Between-Quarters Security Updates for Java: What CSPUs Mean for Your Release Pipeline | Frank Delporte | 1,002 |
| Own Your Pixels: Native Fidelity on Your Schedule | Shai Almog | 273 |
| AI Found the Bugs. Who's Patching Your EOL Java Code? | Steve Poole | 645 |
| Azul Zulu July 2026 Quarterly Update Released | Frank Delporte | 554 |
| What's New In The July 2026 Azul Payara Release? | Luqman Saeed | 535 |
| BoxLang AWS, Azure, and Google Secrets Manager Module Released | Cristobal Escobar | 308 |
| First Test of Java on Banana Pi (ARM and RISC-V), Plus a Blinking LED with Pi4J | Frank Delporte | 563 |
| Toward a Durable Spring PetClinic | Geertjan Wielenga | 713 |
| How We Beat HotSpot Performance (By Cheating, But Not Like That) | Shai Almog | 631 |
| Warm Up Fast, Run Lean: Vertical Scaling for Java on Kubernetes with Azul Prime and Kedify | Jiří Holuša, Zbyněk Roubalík | 610 |
| Your Loom App Quietly Became a Thread Pool Again: A Field Guide to Virtual Thread Pinning | Felipe Maschio | 1,061 |
| BoxLang 1.15.0 Released: Blazing Fast Strings, Runtime Portability, and much more | Cristobal Escobar | 403 |
| I Asked GitHub Copilot to Profile a Java App. It Found a Bug in My Heap Sizing, and Offered to Fix It | Bruno Borges | 936 |
| Foojay Podcast #100: Java Podcasters on Why They Started, What Broke, and What They Learned | Frank Delporte, Jennifer Reif, Kadi McKean, Oumaima Zerouali, Steve Poole | 503 |
| Temporal Is to Your Code What a Database Is to Your Data | Geertjan Wielenga | 1,009 |
| When NOT TO USE Event-Driven Architecture (EDA) | Vincent Vauban | 812 |
| More Surfaces, Same Deal: Cars, Sensors, Commerce, Video And Builds | Shai Almog | 272 |
| "This Can't Possibly Work": What I Learned at a Temporal.io Workshop | Geertjan Wielenga | 551 |
| BoxLang 1.14.0: Sets, Ranges, Inner Classes, and a Runtime That Talks Back | Cristobal Escobar | 242 |
| Nulling Out References Won't Help Your Garbage Collector | Kirk Pepperdine | 1,180 |
| The Java Story: A Film About All of Us | Dominika Tasarz | 2,037 |
| What's New in actions/setup-java 5.4 and 5.5: Signature Verification, Kona JDK, and a Better Maven Experience | Bruno Borges | 705 |
| Why We Moved Our Timefold Java Worker Pods from AMD to ARM64 | Tom Cools | 436 |
| Closing the Visual Gap Between the Official Lottie Webplayer and Lottie4J | Frank Delporte | 391 |
| A Week of Housekeeping: What Changed on Foojay.io | Dominika Tasarz, Frank Delporte | 1,507 |
| Getting Started with Exposed: Kotlin ORM Made Simple | Mahendra Rao B | 862 |
| Funding Open Source Without The Bait And Switch: Analytics, Native Maps, TV And More | Shai Almog | 223 |
| This Dependency Update Looked Exactly Like an Account Takeover | Muhammad Usman | 751 |
| BoxLang 1.14.0: Navigate Anything: JSONPath Comes to BoxLang's DataNavigator | Cristobal Escobar | 439 |
| Building AI Systems with MongoDB: Implementing the Planning Pattern | Otavio Santana | 7,507 |
| Using the Raspberry Pi Sense HAT with Pi4J Drivers | Igor De Souza | 402 |
| JavaFX Links of June 2026 | Frank Delporte | 392 |
| You’re invited to IntelliJ IDEA Conf 2026! | Marit van Dijk | 1,485 |
| 7 Jackson CVEs in One Day: AI-Assisted Security Research | Steve Poole | 1,818 |
| Building an AI-Powered Operations Assistant with Spring AI and MongoDB Atlas — Part 3: Stateful Workflows and Human-in-the-Loop | Matteo Rossi | 282 |
| Endive 1.0 Is Here: Wasm on the JVM Ships Under the Bytecode Alliance | Andrea Peruffo | 2,054 |
| AI-Assisted Unused & Dead Code Removal | Erik Costlow, Frank Delporte | 958 |
| Native Linux, Apple Watch, A Game Builder And Crash Protection | Shai Almog | 284 |
| Jurassic JDK: Migrate or Extinct | Aicha Laafia | 1,203 |
| Aggregation Optimization in MongoDB: Unnecessary Unwinds (Part 2) | Graeme Robinson | 459 |
| Pi4J Drivers: Simplifying Sensor and Hardware Integration in Java | Igor De Souza | 662 |
| What's New In The June 2026 Azul Payara Release? | Dominika Tasarz, Luqman Saeed | 667 |
| BoxLang 1.14.0: Query Transformers - Take Full Control of Your Query Results | Cristobal Escobar | 421 |
| double, BigDecimal, or Fixed-Point? Precision, Performance, and Sane Choices for Numbers in Java | Stefano Fago | 328 |
| Systematic AI Coding: My Takeaways from the Eclipse Foundation Workshop in Brussels | Frank Delporte | 643 |
| Aggregation Optimization in MongoDB: A Case Study From the Field (Part 1) | Graeme Robinson | 460 |
| Quarkus Unpacked: Insights from the Foojay Podcast | Michal Maléř | 516 |
| Bringing Raspberry Pi Development to Quarkus with the Quarkus Pi4J Extension | Igor De Souza | 527 |
| Foojay Podcast #99: Testing the Untestable: LLM Security for Java Developers with Tiberius | Frank Delporte, Iryna Dohndorf | 565 |
| We Will Not Sabotage Your Code | Shai Almog | 555 |
| Native Java Win32, 3D Gaming, Printing and Wallet | Shai Almog | 342 |
| Where production policy belongs: building Eliya in public | Fahim Farook | 859 |
| Building Java Containers Without a Dockerfile: Azul Zulu and Paketo Buildpacks | Frank Delporte | 725 |
| OpenAPI, ORM, SVG and Lottie | Shai Almog | 525 |
| Mac Native Builds, Live Protocols, And Open Issues Under 350 | Shai Almog | 225 |
| BoxLang 1.14.0: BoxSet is Here, BoxLang's New First-Class Set Type | Cristobal Escobar | 415 |
| Did AI Just Break Software Security For Ever? | Steve Poole | 1,233 |
| Ask a Lille Dev | Vincent Vauban | 876 |
| Spring, Quarkus,Jooby, or Vert.x: Java Framework Comparison | Catherine Edelveis | 1,448 |
| AI, OAuth, And Other Platform APIs In The Core | Shai Almog | 317 |
| Foojay Podcast #98: The End of JNI Pain: How WebAssembly Is Quietly Replacing Native Libraries in Java | Andrea Peruffo, Frank Delporte | 462 |
| Observing Apache NetBeans with OpenTelemetry and Dash0 | Geertjan Wielenga | 525 |
| On-Device Debugging And JUnit 5 | Shai Almog | 332 |
| BoxLang 1.14.0: Introducing Inner Classes | Cristobal Escobar | 370 |
| Building an AI-Powered Operations Assistant with Spring AI and MongoDB Atlas — Part 2: Conversational Memory | Matteo Rossi | 519 |
| Why Spring Teams Don't Need a Second Runtime for AI Agents | Sekka | 1,047 |
| Your TLS Stack Is Lying to You About Zero-Copy | Arkadiusz Przychocki | 559 |
| JC-AI Newsletter #16 | Miro Wengner | 3,518 |
| Introduction to CQRS using MongoDB | Otavio Santana | 466 |
| Lottie4J Meets LottieFiles: A Conversation with Naail Abdul Rahman | Frank Delporte | 299 |
| Metal Default, A New Build Cloud, And A New Format | Shai Almog | 332 |
| "Agentic" Was Everywhere at Money20/20 Amsterdam | Geertjan Wielenga | 583 |
| Spring Boot 3.5 Migration and the CRA: When Good Enough Isn't" | Steve Poole | 2,195 |
| Context Is Code: A Tour of APM and AgentRC | Soham Dasgupta | 1,244 |
| Tiberius: A Security Testing Framework for LLM Applications in Java | Iryna Dohndorf | 2,355 |
| MongoDB as a Vector Database for AI Agents-MongoDB | Aasawari Sahasrabuddhe | 1,693 |
| NFC, Crypto, Biometrics, And A New Build Cloud | Shai Almog | 1,059 |
| What is Sharding in MongoDB and When Should You Use It? | Nancy Agarwal | 1,022 |
| BoxLang AI 3.2.0 — Image Generation, Web Search, Fluent Audio, Agent Registry & MCP Observability | Cristobal Escobar | 1,604 |
| Jakarta EE is Ready for AI – Five Talks from OCX26 That Prove It | Dominika Tasarz | 1,104 |
| Foojay Podcast #97: From Scripting Language to AI Powerhouse: How BoxLang Is Redefining JVM Development | Cristobal Escobar, Frank Delporte, Luis Majano | 898 |
| JavaFX Links of May 2026 | Frank Delporte | 496 |
| Free Webinar: Making AI useful for Java developers in Real Applications with BoxLang! | Cristobal Escobar | 5,108 |
| Enterprise Java quality gates in the age of AI | Anton Lem | 1,962 |
| Exploring MongoT | Luke Thompson | 1,159 |
| Intro to the BoxLang Formatter | Cristobal Escobar | 1,018 |
| Scoped Values: Why I Banned ThreadLocal in Exeris | Arkadiusz Przychocki | 1,110 |
| Skills, Java 17, And Theme Accents with Codename One | Shai Almog | 1,302 |
| A New Generation of Java Libraries Is Born: Wasm Becomes the Implementation Detail | Andrea Peruffo | 2,925 |
| Introducing bx-jwt: Enterprise-Grade JSON Web Tokens for BoxLang | Cristobal Escobar | 1,293 |
| Foojay Podcast #96: Local AWS Development Without LocalStack: Meet Floci, the GraalVM-Powered Alternative | Frank Delporte, Hector Ventura | 1,254 |
| Context Is a Budget — Reducing Token Usage in AI-Assisted Development | Soham Dasgupta | 3,663 |
| Introducing skills.boxlang.io — The Open Agent Skills Ecosystem for BoxLang & the Ortus World | Cristobal Escobar | 1,386 |
| Implementing Soft Deletes in Java | Daniel Hartmann | 1,139 |
| Metal and Skins | Shai Almog | 909 |
| All Azul Zulu Container Images Explained: CA, SA, and Chainguard | Frank Delporte | 1,274 |
| From Zero (Really Zero) to OpenTelemetry | Geertjan Wielenga | 6,168 |
| GlassFish 8.0.2 Released: With important security fixes, other improvements, and commercial support | Ondro Mihalyi | 891 |
| BoxLang v1.13.0: Compatibility, Concurrency, and Formatter Maturity | Cristobal Escobar | 1,347 |
| A New Chapter for the Payara Community | Dominika Tasarz | 1,147 |
| Don't Panic: The Thymeleaf Template Injection That Only Hurts If You Let It (CVE-2026-40478) | Brian Vermeer | 1,046 |
| Debugging BentoFX in MelodyMatrix with Matt Coley, Scenic View, and an Honest Look at AI-Generated Code | Frank Delporte | 812 |
| AI-Powered Code Review Assistant: Automated Code Analysis with Spring AI and MongoDB | Farhan Hasin Chowdhury | 2,543 |
| What's New in the May 2026 Payara Platform Release | Azul | Luqman Saeed | 1,411 |
| BoxLang AI Series: Complete Guide to Building AI Agents | Cristobal Escobar | 1,417 |
| Testing Lottie4J JavaFX Animations in GitHub Actions Without a Display: JavaFX 26 Headless to the Rescue | Frank Delporte | 729 |
| How to Develop AI Agents Using BoxLang AI: A Practical Guide | Cristobal Escobar | 3,980 |
| Foojay Podcast #95: Is Your Java App Actually Secure, Or Does It Just Look That Way? | Frank Delporte, Steve Poole | 919 |
| Liquid Glass, Material 3, And A Lot Of Plumbing | Shai Almog | 3,105 |
| Explore Spring AI SDK – Amazon Bedrock AgentCore – Part 3 | Mahendra Rao B | 769 |
| THE 12 LABOURS OF PRIMEFACES 15.0.15 #release | Vincent Vauban | 1,115 |
| Using the Azul Zulu Docker Official Images: From Simple Pull to Lean Container | Frank Delporte | 1,467 |
| BoxLang AI Deep Dive — Part 7 of 7: MCP — The Protocol That Connects Everything | Cristobal Escobar | 1,660 |
| Building an AI-Powered Operations Assistant with Spring AI and MongoDB Atlas — Part 1: RAG Foundation | Matteo Rossi | 1,275 |
| Java is Not the Dark Side: Why Learning Java is Easier Than You Think | Igor De Souza | 1,689 |
| UCanAccess: The Modern Pure-Java Bridge to Microsoft Access | Markus Spann | 1,862 |
| When Should You Use a Cache With MongoDB? | Andrew Morgan | 1,118 |
| BoxLang AI Deep Dive — Part 6 of 7: Memory Systems & RAG — Building AI That Remembers | Cristobal Escobar | 1,546 |
| The Code Was Always the Door | Markus Westergren | 3,765 |
| JCast | Oumaima Zerouali | 1,049 |
| Foojay Podcast #94: More Than a Blog: How Foojay Connects, Sustains, and Evolves the Java Community | Frank Delporte, Annelore Egger, Buhake Sindi, Catherine Edelveis, Dominika Tasarz, François Martin, Geertjan Wielenga, Gerrit Grunwald, Iryna Dohndorf, Jago de Vreede, Markus Westergren, René Schwietzke | 1,116 |
| Large-Scale ETL Pipeline Architecture | Matteo Rossi | 2,266 |
| JavaFX Links of April 2026 | Frank Delporte | 760 |
| BoxLang AI Deep Dive — Part 5 of 7: One API, 17 Providers — The Provider Architecture Deep Dive | Cristobal Escobar | 1,838 |
| Dockerizing a Java 26 Project with Docker Init | Mohammad-Ali A'râbi | 2,682 |
| Explore Spring AI SDK – Amazon Bedrock AgentCore – Part 2 | Mahendra Rao B | 832 |
| The Road to Docker Official Images for Java: The Azul Zulu Story | Frank Delporte | 1,398 |
| Building a Personalized Content Delivery System | Farhan Hasin Chowdhury | 1,448 |
| BoxLang AI Deep Dive — Part 4 of 7: Middleware — The Missing Layer in Every AI Framework | Cristobal Escobar | 1,212 |
| Eliminating Flaky Tests to End World Hunger | François Martin | 1,465 |
| Azul Zulu April 2026 Quarterly Update Released | Frank Delporte | 2,143 |
| Distributed Cache Invalidation Patterns | Matteo Rossi | 4,809 |
| BoxLang AI Deep Dive — Part 3 of 7: Multi-Agent Orchestration — Building AI Teams That Work | Cristobal Escobar | 1,908 |
| MelodyMatrix V1.0.0 Released: Shipping a JavaFX App with jDeploy, GitHub Actions, and Auto-Update | Frank Delporte | 798 |
| Explore Spring AI SDK - Amazon Bedrock AgentCore - Part 1 | Mahendra Rao B | 1,500 |
| Spring Boot 3.5 EOL — The CVE Blind Spot Nobody Talks About | Steve Poole | 3,515 |
| Choosing the Right OpenJDK Distribution for Production | Catherine Edelveis | 5,639 |
| Spring I/O 2026: Field Notes from Barcelona | Steve Poole | 1,460 |
| CQRS in Java: Separating Reads and Writes Cleanly | Mike LaSpina | 1,585 |
| BoxLang AI Deep Dive — Part 2 of 7: Building a Production-Grade AI Tool Ecosystem | Cristobal Escobar | 1,218 |
| How I Automated Weekly Twitter/X Posts With Java, JBang and GitHub Actions | Bruno Borges | 1,016 |
| BoxLang AI Deep Dive — Part 1 of 7: The Skills Revolution | Cristobal Escobar | 1,582 |
| Foojay Podcast #93: Update Your JDK, Read More Code, and Talk to Your Users: Interviews From VoxxedDays Amsterdam | Frank Delporte, Johannes Bechberger, Joost Kaan, Ko Turk, Marit van Dijk | 896 |
| AWS Nitro and CPU Graviton Meets Unikernels | Angelo Rubini | 2,252 |
| Building a Kotlin App with Spring Boot and MongoDB Search | Ricardo Mello | 1,426 |
| Why Java Developers Over-Trust AI-Generated Code | Steve Poole | 2,136 |
| Introducing BoxLings! An interactive teacher for BoxLang and TDD/BDD | Luis Majano | 744 |
| Manage HTTP Sessions with Spring Session MongoDB | Tim Kelly | 1,028 |
| Thread Safe Native Memory in Java | David Vlijmincx | 3,241 |
| BoxLang AI v3 Has Landed - Multi-Agent Orchestration, Tooling, Skills and so much more | Luis Majano | 972 |
| From Zero to Full Observability with Dash0 | Geertjan Wielenga | 2,240 |
| Introducing Floci: A High-Performance, GraalVM-Powered AWS Emulator | Hector Ventura | 2,016 |
| Does Java Really Use Too Much Memory? Let’s Look at the Facts (JEPs) | Igor De Souza | 3,457 |
| Java Faceted Full-Text Search API Using MongoDB Atlas Search | Luke Thompson | 1,587 |
| Oracle's Java Verified Portfolio and JavaFX: What It Actually Means | Frank Delporte | 1,902 |
| Grails Is Back: Inside the Apache Software Foundation Migration | Steve Poole | 1,927 |
| MongoDB Search Score Breakdown | Erik Hatcher | 1,513 |
| JavaFX Links of March 2026 | Frank Delporte | 954 |
| Best practices for Mastering AI Agents, Subagents, Skills & MCP | Jonathan Vila | 10,822 |
| The Java in Education Catalog Now Has a Beautiful Home | Frank Delporte, Igor De Souza | 1,920 |
| Modeling One-to-Many Relationships in Java with MongoDB | Arthur Ribeiro | 2,043 |
| Spring Boot Actuator Health for MicroProfile Developers | Luqman Saeed | 2,697 |
| Does Language Still Matter in the Age of AI? Yes — But the Tradeoff Has Changed | David Parry | 2,682 |
| How We Built a Java AI Agent by Connecting the Dots the Ecosystem Already Had | Nicholas D'hondt | 4,853 |
| Grails Is Back: Inside the Apache Software Foundation Migration | Steve Poole | 3,213 |
| TestBox 7: Real-Time Feedback, a Browser-Based IDE, and Modern Testing Workflows on the JVM | Cristobal Escobar | 2,606 |
| Clean Architecture with Spring Boot and MongoDB | Farhan Hasin Chowdhury | 3,293 |
| Eclipse GlassFish: This Isn’t Your Father’s GlassFish | Ondro Mihalyi | 20,856 |
| Lottie4J 1.2.0: dotLottie Support, Marker Playback, Cropping, and a Big Speed Boost | Frank Delporte | 1,388 |
| How to Use Java as a Scripting Language | Loïc Magnette | 6,617 |
| Azul Zulu OpenJDK Docker Images Now Available on Docker Hub | Dominika Tasarz | 2,399 |
| Native Memory in Java: Arenas, Malloc, and Pools | David Vlijmincx | 17,384 |
| JC-AI Newsletter #15 | Miro Wengner | 8,249 |
| Building Reactive Data Streams with Project Reactor | Matteo Rossi | 1,909 |
| Introducing the BoxLang Spring Boot Starter: Dynamic JVM Templating for Spring | Cristobal Escobar | 8,105 |
| How is Leyden improving Java Performance? Part 3 of 3 | María Arias de Reyna Domínguez | 2,653 |
| How is Leyden improving Java Performance? Part 2 of | María Arias de Reyna Domínguez | 2,665 |
| Language Learning Flashcard System - Part 1 | Diego Freniche Brito | 2,158 |
| How is Leyden improving Java Performance? Part 1 of 3 | María Arias de Reyna Domínguez | 3,809 |
| BoxLang 1.11.0 Release | Cristobal Escobar | 1,583 |
| Java 26 Is Here, And With It a Solid Foundation for the Future | Hanno Embregts | 2,458 |
| Foojay Podcast #92: Java 26 Is Here: What's New, What's Gone, and Why It Matters in 2026 | Frank Delporte, Loic Mathieu, Simon Ritter | 3,429 |
| Lottie4J 1.1.0: Better Rendering, Smarter Debugging, and an animated Lottie4J Logo! | Frank Delporte | 1,583 |
| Atlas Online Archive: Efficiently Manage the Data Lifecycle | Ravindar Karampuri | 2,633 |
| Event-Driven Architecture in Java and Kafka | Graeme Robinson | 2,901 |
| Introducing the BoxLang IDE Plugin for IntelliJ | Cristobal Escobar | 1,359 |
| Introducing Lottie4J, a Java(FX) Library to Parse and Play Lottie Animation Files | Frank Delporte | 1,268 |
| DPoP: What It Is, How It Works, and Why Bearer Tokens Aren't Enough | Hüseyin Akdoğan | 4,822 |
| Role-Based Access Control in Java Applications | Matteo Rossi | 3,208 |
| No Keys, No LLM: Building a Wikidata Definition API with Embabel | Vincent Vauban | 2,352 |
| I Benchmarked Java on Single-Board Computers: Orange Pi 5 Ultra and Raspberry Pi 5 Lead the Pack | Frank Delporte | 2,745 |
| Data Enrichment in MongoDB | Mike LaSpina | 2,017 |
| JC-AI Newsletter #14 | Miro Wengner | 6,800 |
| BoxLang Homebrew Installer Released | Cristobal Escobar | 1,059 |
| Java 26: What’s New? | Loic Mathieu | 4,870 |
| Shaping Jakarta Agentic AI Together | Dominika Tasarz | 1,548 |
| 25 Years of IntelliJ IDEA: The IDE That Grew Up With Java | Frank Delporte, Marit van Dijk | 2,010 |
| JavaFX Links of February 2026 | Frank Delporte | 1,332 |
| How to Build a Search Service in Java with MongoDB | Erik Hatcher | 1,539 |
| Gotta Code 'Em All: How Java Evolved Beyond Verbosity – Celebrating 30 Years of Pokémon | Igor De Souza | 2,119 |
| Tomcat TLSv1.3 cipher configuration | Joe Kuhel | 3,420 |
| Translating a Website into 8 Languages with AI Agents in One Night | Bruno Borges | 1,692 |
| Personal Branding Tips for Java Developers | Dominika Tasarz | 1,524 |
| I Got Java 25 Running on the RISC-V BeagleBoard BeagleV-Fire | Frank Delporte | 1,234 |
| MongoDB and the Raft Algorithm | Elie Hannouch | 1,815 |
| From “Crypto AI” to general AI: Do AI agents dream of electric langoustines? | Michal Maléř | 2,834 |
| Announcing Cloud-Native BoxLang for $5/Month | Cristobal Escobar | 1,393 |
| The Triforce That Slays Legacy Java Myths – Happy 40th Zelda! | Igor De Souza | 2,045 |
| Stop Writing YAML: Automating Your Repo with Plain Natural Language | Bruno Borges | 1,291 |
| A Visual Diff of Java’s Evolution: Inside java.evolved | A N M Bazlur Rahman | 4,719 |
| Ports and Adapters in Java: Keeping Your Core Clean | Matteo Rossi | 4,441 |
| GlassFish 8 is here with Jakarta EE 11, virtual threads, and Jakarta Data | Ondro Mihalyi | 1,896 |
| BoxLang NeoVim Plugin Released | Cristobal Escobar | 1,638 |
| First Test of Java on BeagleBoards (ARM and RISC-V) | Frank Delporte | 1,263 |
| Optimizing the MongoDB Java Driver | Nasir Qureshi | 1,687 |
| Runtime Code Analysis in the Age of Vibe Coding | Suneet Kamath | 2,384 |
| DevBcn, the developer's conference in Barcelona | Jonathan Vila | 1,876 |
| What 2,000+ Professionals Told Us About the State of Java, AI, Cloud Costs, and the Future of the Java Ecosystem | Scott Sellers | 2,060 |
| Enabling AI Agents to Use a Real Debugger Instead of Logging | Bruno Borges | 3,281 |
| Windsurf AI and SonarQube The Dream Team for AI Code Quality | Jonathan Vila | 3,677 |
| Foojay Podcast #90: Highlights of the Java Features Between LTS 21 and 25 | Frank Delporte, Jakob Jenkov | 2,543 |
| How to Customize JaCoCo Report Styling in Your Java Project | Bruno Borges | 5,785 |
| MongoDB Sharding: What to Know Before You Shard a Collection | Ricardo Mello | 5,610 |
| Shai-Hulud and the npm Worm: How Speed-Optimised Dev Ecosystems Made a Self-Propagating Supply Chain Attack Inevitable | Steve Poole | 1,999 |
| Unikernel: Profiling and Troubleshooting JVM on Nanos Unikernel | Angelo Rubini | 2,008 |
| Reactive Java with Project Reactor | Matteo Rossi | 4,618 |
| Join Our Webinar: Build Agents, RAG Pipelines and More | Cristobal Escobar | 1,247 |
| Machine Learning in Java - SPAM detection using ONNX | Zikani Nyirenda Mwase | 2,047 |
| JC-AI Newsletter #13 | Miro Wengner | 9,422 |
| MongoDB 8.0 Migration Guide: What You Need to Know Before Upgrading | Ricardo Mello | 3,796 |
| From a JAR to a full-fledged MacOS app | Nicolas Frankel | 1,546 |
| BoxLang 1.10.0: Functional Arrays, Elegant Loops & Distributed Locking | Cristobal Escobar | 1,549 |
| First Test of Java on the VisionFive 2 Lite (RISC-V | Frank Delporte | 1,313 |
| GraphQL for Java Developers: Building a Flexible Data Layer | Matteo Rossi | 2,091 |
| FOSDEM 2026: Open Source Supply Chains, CRA Compliance, and the Future of Software | Steve Poole | 2,370 |
| Bringing Java Closer to Education: A Community-Driven Initiative | Igor De Souza | 3,534 |
| Claude Code SonarQube MCP: A Java Developer’s Workflow | Jonathan Vila | 7,248 |
| Announcing: Sustainability for Java Developers | A N M Bazlur Rahman, Frank Delporte, Geertjan Wielenga, Ko Turk, Markus Westergren, Maarten Mulders, Simon Martinelli | 2,412 |
| JavaFX Links of January 2026 | Frank Delporte | 1,443 |
| One Java community. Many countries. One place to meet: JCON EUROPE | Richard Fichtner | 1,142 |
| Abstracting Data Access in Java With the DAO Pattern | Tim Kelly | 6,006 |
| Enterprise Java in Practice | Chiara Civardi, Dominika Tasarz | 2,198 |
| Testing Emails with Testcontainers and Mailpit | Simon Martinelli | 2,784 |
| Bootstrapping a Java File System | Scott Sosna | 3,833 |
| First Test of Java on the Orange Pi (ARM and RISC-V) | Frank Delporte | 1,750 |
| Introduction to Behavior Driving Development with Java and MongoDB | Otavio Santana | 1,859 |
| DocBox v5 - Reborn: Modern API Docs for BoxLang & CFML | Cristobal Escobar | 1,459 |
| What’s New in the January 2026 Payara Platform Release? | Dominika Tasarz, Luqman Saeed | 2,177 |
| Webinar: "Moving Applications From JDK 21 to JDK 25: What You Need to Know" | Geertjan Wielenga | 2,221 |
| Foojay Podcast #89: Quarkus and Agentic Commerce | Frank Delporte, Michal Maléř | 1,736 |
| Bring AI into your Jakarta EE apps with LangChain4J-CDI | Buhake Sindi | 3,985 |
| Security Doesn’t Start at Liftoff | Steve Poole | 2,772 |
| Java on Single Board Computers: x86 vs ARM vs RISC-V | Frank Delporte | 2,586 |
| BoxLang AI v2: Enterprise AI Development Without the Complexity | Cristobal Escobar | 2,095 |
| OpenJDK January 2026 Critical Patch Update and Patch Set Update Released | Frank Delporte | 8,097 |
| Get high performance Java applications with IBM Semeru Runtimes | Grace Jansen, Laura Cowen | 1,947 |
| Command completion (..) in IntelliJ IDEA | Marit van Dijk | 2,654 |
| SonarQube AI Code Assurance & MCP: Auto-Fix Java (Part 4) | Jonathan Vila | 4,134 |
| foojay – Documentation as Code with AsciiDoctor, GitLab CI, and GitLab Pages | Jens Knipper | 2,087 |
| The FFM API: How OpenJDK Changed the Game for Native Interactions (And Made Pi4J Better!) | Frank Delporte | 2,348 |
| The Ultimate 10 Years Java Garbage Collection Guide (2016–2026) - Choosing the Right GC for Every Workload | Alexius Dionysius Diakogiannis | 13,720 |
| Pointer Arithmetic in Modern Java | David Vlijmincx | 3,026 |
| Why is my Talk selected? Reflections from a Program Committee Reviewer | Soham Dasgupta | 2,026 |
| JC-AI Newsletter #12 | Miro Wengner | 6,180 |
| Flaky Tests: a journey to beat them all | Loic Mathieu | 2,994 |
| BoxLang Dynamic JVM Language Release 1.9.0 | Luis Majano | 2,264 |
| How to choose your LLM without ruining your Java code | Jonathan Vila | 4,013 |
| Not a Lucid Web3 Dream Anymore: x402, ERC-8004, A2A, and The Next Wave of AI Commerce | Michal Maléř | 7,238 |
| Java Warmup and the Scaling Loop Problem | Frank Delporte | 2,596 |
| Optimizing Java for the Cloud-Native Era with Quarkus | Michal Maléř | 3,981 |
| Java and Jakarta EE and the Evolution of the Cloud with Nanos Unikernel | Angelo Rubini | 4,161 |
| Quarkus: A Runtime and Framework for Cloud-Native Java | Michal Maléř | 4,470 |
| Project Panama for Newbies (Part 2) | Carl Dea | 13,825 |
| Project Panama for Newbies (Part 1) | Carl Dea | 70,791 |
| JavaFX Links of December 2025 | Frank Delporte | 1,691 |
| TornadoInsight - Compatibility with TornadoVM SDK 2.0+ & Configuration Guide | Thanos Stratikopoulos | 1,990 |
| Foojay Podcast #88: From Code to Stage: Organizing Conferences and Finding Your Voice as a Speake | Frank Delporte | 2,797 |
| Video series “JavaFX In Action”, Part 6 with Vlad Protsenko (Clojure), Matt Coley (Recaf), Craig Raw (Sparrow), and Florian Enner (3D Robot Visualization) | Frank Delporte | 3,001 |
| Stop the trojan horse in your pom: SonarQube Advace Security | Jonathan Vila | 3,652 |
| Getting Started with TornadoVM 2.0 for Accelerating Java Applications | Thanos Stratikopoulos | 2,476 |
| Foojay Podcast #87: The Human Side of Development: Career Growth, Staying Healthy, and Why People Matter More Than AI | Frank Delporte | 2,329 |
| The Real Mechanics of Vulnerabilities in an Upstream/Downstream, Topsy-Turvy EOL World | Steve Poole | 3,115 |
| MongoDB and WiredTiger: A Journey Through the Storage Engine | Elie Hannouch | 4,369 |
| Scalable Enterprise Java for the Cloud | Dominika Tasarz | 1,928 |
| Make Java Fleets Warm Up Faster on AWS With Azul Optimizer Hub | Frank Delporte, John Ceccarelli | 2,763 |
| Inside the Engine: Performance Relay of MongoDB 8.0 | Elie Hannouch | 3,421 |
| Announcing bx-ldap: Enterprise LDAP for BoxLang | Cristobal Escobar | 1,741 |
| Java developer's guide: Sync Rules & Stop CI Failures | Jonathan Vila | 4,397 |
| BoxLang Native Couchbase Module | Luis Majano | 2,445 |
| Foojay Podcast #86: Agents, MCP, and Graph Databases: Java Developers Navigate the AI Revolution | Frank Delporte | 2,938 |
| The End of One-Sized-Fits-All Prompts: Why LLM Models Are No Longer Interchangeable | Nehal Gajraj | 2,225 |
| SonarQube for IDE in IntelliJ: The Ultimate Java Developer’s Guide | Jonathan Vila | 4,042 |
| Jakarta Data Makes Persistence a Breeze | Alfonso Altamirano, Dominika Tasarz | 2,679 |
| How to Release a Java Module to Maven Central with JReleaser and GitHub Actions (2025 Guide) | Jago de Vreede | 5,429 |
| Building Java Microservices with the Repository Pattern | Mike LaSpina | 5,659 |
| First Experiments with Java on the LattePanda IOTA: An Alternative to Raspberry Pi? | Frank Delporte | 2,780 |
| More Java From Azul! | Simon Ritter | 3,532 |
| Spring Boot 4 - OpenTelemetry Guide | Mahendra Rao B | 21,039 |
| Optimizing MongoDB Queries in Java Applications | Farhan Hasin Chowdhury | 8,601 |
| JC-AI Newsletter #11 | Miro Wengner | 6,084 |
| The 5 Knights of the MCP Apocalypse | Jonathan Vila | 13,529 |
| BoxLang v1.8.0: Revolutionary HTTP Client, SOAP Integration, and Production-Grade Stability | Cristobal Escobar | 2,394 |
| Java, What's Old? Part III - I/O | Anthony Goubard | 3,577 |
| Foojay Podcast #85: Code, Community, and Opportunity: Making Tech Accessible for Everyone | Frank Delporte, Igor De Souza | 2,383 |
| How CodeRabbit's Agentic Code Validation helps with code reviews | Ewa Szyszka | 3,218 |
| Building Systems That Know Why They Exist ~ When Data, Logic, and Intent Finally Align | Elie Hannouch | 3,432 |
| Java 21+ on Raspberry Pi Zero 2 is Back In Business | Frank Delporte | 2,478 |
| Java 25: What's New? | Loic Mathieu | 6,121 |
| Atlas Searching with the Java Driver | Erik Hatcher | 5,957 |
| BoxLang RSS: Full-Featured RSS/Atom Feed Module for BoxLang | Cristobal Escobar | 2,261 |
| Unleashing the Power of Data Visualization: Introducing BX-Charts for BoxLang | Cristobal Escobar | 1,529 |
| Foojay Podcast #84: Developing Performant, Cost Efficient, and Eco-friendly Code | Daniel Witkowski, Frank Delporte, Ko Turk, Ronald Dehuysser | 1,840 |
| JavaFX Links of November 2025 | Frank Delporte | 1,650 |
| From Spring Boot To Jakarta EE 11 | Dominika Tasarz | 2,666 |
| JC-AI Newsletter #10 | Miro Wengner | 9,864 |
| The Visitor Pattern - 'Revisited' using Data Oriented Programming techniques | Wim De Troyer | 2,201 |
| Will OpenJFX Be Merged Into OpenJDK? It Would Be a Perfect Match with Java on Mobile! | Frank Delporte | 2,789 |
| BoxLang Redis Has Landed: Enterprise-Grade Caching, Pub/Sub, and Distributed Locking | Cristobal Escobar | 2,094 |
| The Art of Performance Tuning: Why Saving 30% in the Cloud Means Nothing if Your Code Wastes 1000× More | Daniel Witkowski | 3,874 |
| Foojay Podcast 83: OpenJDK Evolutions plus Tips and Tricks | François Martin, Frank Delporte, Johan Vos | 2,290 |
| Spring Framework 7.0 Jakarta EE 11 Compatibility | Dominika Tasarz | 3,424 |
| Navigating the Nuances of GraphRAG vs. RAG | Thibaut Gourdel | 10,599 |
| Goodbye Payara Community 6, welcome Payara Community 7 | Dominika Tasarz | 3,701 |
| Service Layer Pattern in Java With Spring Boot | Tim Kelly | 21,892 |
| Foojay Podcast #82: OpenJDK Projects (Leyden, Babylon, Panama) and TornadoVM | Frank Delporte, John Ceccarelli | 2,800 |
| Micrometer & Prometheus in Spring Boot: Kafka Burger Orders | Vincent Vauban | 6,287 |
| Beyond Keywords: Hybrid Search With Atlas and Vector Search (Part 3) | Ricardo Mello | 6,015 |
| JC-AI Newsletter #9 | Miro Wengner | 11,541 |
| The Cost of Not Knowing MongoDB - Part 3: (appV6R0 to appV6R4) | Artur Costa | 2,665 |
| BoxLang 1.7 Released! | Luis Majano | 2,661 |
| Java Security Starts with the JVM | Anthony Layton | 2,277 |
| A Guide to SonarQube MCP Server on IntelliJ | Jonathan Vila | 9,753 |
| JC-AI Newsletter: Easy Access to Expanding Challenges | Miro Wengner | 9,386 |
| Modeling Relationships With Hibernate ORM and MongoDB | Ricardo Mello | 2,012 |
| Getting Started With Hibernate ORM and MongoDB | Ricardo Mello | 4,131 |
| Sonar Connect Zurich | Jonathan Vila | 1,434 |
| Let's create an AI MCP server with Quarkus | Jonathan Vila | 4,687 |
| Foojay Podcast #81: Maven 4 - The Future of Java Build Automation | Frank Delporte, Maarten Mulders | 3,704 |
| JavaFX Links of October 2025 | Frank Delporte | 1,868 |
| The Pitfall of Increasing Read Capacity by Reading From Secondary Nodes in a MongoDB Replica Set | Artur Costa | 2,188 |
| JC-AI Newsletter #8 | Miro Wengner | 10,992 |
| BoxLang v1.6.0 - Performance, AI-Powered Docs, and Advanced Async Monitoring | Cristobal Escobar | 2,837 |
| Spring Framework 7 API Versioning Explained | Mahendra Rao B | 7,577 |
| How MongoDB Decides What to Forget? | Elie Hannouch | 2,597 |
| Certified for the Future: Jakarta EE 11 with Payara Platform | Dominika Tasarz | 2,356 |
| Beyond Keywords: Optimizing Vector Search with Filters and Caching (Part 2) | Ricardo Mello | 3,449 |
| The Cost of Not Knowing MongoDB - Part 2 | Artur Costa | 3,111 |
| Transactions and ThreadLocal in Spring | Nicolas Frankel | 4,557 |
| Foojay Podcast #80: AI4Devs Interviews - Part 2 | Frank Delporte | 1,807 |
| Beyond Keywords: Implementing Semantic Search in Java With Spring Data (Part 1) | Ricardo Mello | 5,488 |
| How Chat Memory Manipulation Can Ruin Your AI System | Brian Vermeer | 3,116 |
| 7 habits of Highly Effective Java Coding | Jonathan Vila | 7,321 |
| The Cost of Not Knowing MongoDB (Part 1) | Artur Costa | 3,134 |
| JC-AI Newsletter #7 | Miro Wengner | 7,283 |
| What Happens When 10,000 JVMs Collaborate | Simon Ritter | 4,406 |
| Keywords Meet Vectors: Hybrid Search on MongoDB | Arek Borucki | 7,341 |
| Working with Geo Location Data in MongoDB | Justin Jenkins | 5,243 |
| Super Early Bird Tickets: Voxxed Days Amsterdam | Geertjan Wielenga, Ko Turk | 2,144 |
| Take the State of Java 2025 Survey | Geertjan Wielenga | 4,690 |
| Foojay Podcast #79: AI4Devs Interviews - Part 1 | Frank Delporte | 2,481 |
| Ai4Devs Amsterdam: Successful Inaugural Developer-Focused AI Conference | Geertjan Wielenga | 1,797 |
| Agents Meet Databases: The Future of Agentic Architectures | Thibaut Gourdel | 4,125 |
| Think in Graphs, Not Just Chains: JGraphlet for TaskPipelines | Shaaf Syed | 2,322 |
| JC-AI Newsletter #6 | Miro Wengner | 9,757 |
| Building an AI Semantic Movie Recommender with Vector Search | Arek Borucki | 3,155 |
| Payara Server Maven Plugin + AI Agent | Dominika Tasarz | 3,204 |
| JavaFX Links of September 2025 | Frank Delporte | 2,690 |
| Introduction to Data-Driven Testing with Java and MongoDB | Otavio Santana | 4,635 |
| Design Patterns Update to JDK25 | Miro Wengner | 8,461 |
| Power your AI application with Vector Search | Arek Borucki | 3,559 |
| How to Kickstart Your Jakarta EE 11 Projects with Payara Starter | Dominika Tasarz | 3,877 |
| From Zero to Vector Hero - Locally! (Vector Search) | Arek Borucki | 3,478 |
| JC-AI Newsletter #5 | Miro Wengner | 10,777 |
| Azul’s High-Performance Java Platform Achieves Historic First | John Ceccarelli | 5,514 |
| Best Practices for Deploying MongoDB in Kubernetes | Tim Kelly | 10,721 |
| Here's Java 25, Ready to Perform to the Limit | Hanno Embregts | 11,848 |
| Foojay Podcast #78: Welcome to OpenJDK 25! | Frank Delporte, Simon Ritter | 6,231 |
| Research: Measuring Energy Consumption in Programming Languages for AI Applications | Miro Wengner | 2,678 |
| MongoDB Schemas in Java | Luke Thompson | 5,864 |
| Stochastic AI Agility: Breaking Cycles of Debt | Miro Wengner | 8,571 |
| JetBrains and Azul Collaborate on Kotlin Performance in Various JVMs | Jiří Holuša | 6,062 |
| Building REST APIs in Java with Spring Boot | Tim Kelly | 9,709 |
| Spec-Driven Development with AI: A New Approach and a Journey into the Past | Simon Martinelli | 8,496 |
| MongoDB Aggregations: Organizing Recipes by Meal Type with $group | Justin Jenkins | 3,892 |
| KCDC 2025 | Nicolas Frankel | 2,227 |
| JC-AI Newsletter #4 | Miro Wengner | 6,943 |
| Copy of Queryable Encryption with Spring Data MongoDB: How to Query Encrypted Fields | Ricardo Mello | 4,433 |
| AI4Devs - Schedule published | Jonathan Vila | 2,700 |
| JavaFX Links of August 2025 | Frank Delporte | 2,600 |
| Boosting Kafka Latency Performance by 3x with Zing JVM and AutoMQ | John Ceccarelli, Kaiming Wan | 2,932 |
| Taking Java Arrays to Another Dimension | Simon Ritter | 6,977 |
| What happens when a Primary fails in a MongoDB replica set? | Shrey Batra | 4,949 |
| GitHub workflows tips and tricks | Nicolas Frankel | 1,786 |
| Git default options | Nicolas Frankel | 2,167 |
| AI Gives Time, Not Confidence: Developer Productivity Toolkit | Jonathan Vila | 6,192 |
| Managing MongoDB Database Changes Using Liquibase Pro | Ravindar Karampuri | 4,887 |
| JC-AI Newsletter #3 | Miro Wengner | 4,339 |
| New Java Benchmark for Coding LLMs puts GPT-5 at the top | Jonathan Ellis | 5,277 |
| OpenTelemetry configuration gotchas | Nicolas Frankel | 1,722 |
| OpenTelemetry Tracing on the JVM | Nicolas Frankel | 2,960 |
| Domain-Driven Design in Java: A Practical Guide | Rajesh Nair | 12,546 |
| Enforcing Governance in MongoDB Atlas with Resource Policies | Samuel Molling | 7,968 |
| Do we understand the value of AI knowledge? | Miro Wengner | 3,458 |
| Preparing for Spring Boot 4 and Spring Framework 7: What’s New? | Mahendra Rao B | 44,967 |
| New Features in Jakarta EE 11, with Examples | Ondro Mihalyi | 4,765 |
| Semantic Caching with SpringBoot & Redis | Raphael De Lio | 9,213 |
| Pattern-matching across different languages | Nicolas Frankel | 2,830 |
| Run an Atlas cluster locally in minutes | Arek Borucki | 4,674 |
| JC-AI Newsletter #2 | Miro Wengner | 9,108 |
| Release V0.0.2 of Java DMX512 Library With Universes and USB-to-DMX support | Frank Delporte | 1,835 |
| Monolith vs Microservices in 2025 | Vincent Vauban | 18,760 |
| Why Java is Still Worth Learning in 2025: A Developer's 25-Year Journey | Markus Westergren | 5,770 |
| JavaFX Links of July 2025 | Frank Delporte | 2,206 |
| Java, What's Old? Part II: Utils | Anthony Goubard | 3,992 |
| AI Applications with LangChain4j Guardrails and Spring Boot | A N M Bazlur Rahman | 4,028 |
| Why Mirroring Production in Dev Helps You Avoid Costly Mistakes | Ricardo Mello | 3,004 |
| CodeRabbit Tutorial for Java Developers | Aravind Putrevu, Geertjan Wielenga | 14,904 |
| Foojay Podcast #77: DevBcn Report, Part 2 – Spanish Knowledge Sharing | Frank Delporte, Jonathan Vila | 2,241 |
| Introducing a New Java DMX512 Library With Demo JavaFX User Interface | Frank Delporte | 3,542 |
| Agent Memory with Spring AI & Redis | Raphael De Lio | 12,874 |
| Java 22 to 24: Level up your Java Code by embracing new features in a safe way | Jonathan Vila | 10,372 |
| MongoDB ACID Transactions With Java | Tim Kelly | 10,227 |
| AI Newsletter #1 | Miro Wengner | 14,880 |
| Spring Cloud Stream for Real-Time Event-Driven Systems | Mahendra Rao B | 8,061 |
| Foojay Podcast #76: DevBcn Report, Part 1 – Learn from the Community | Frank Delporte, Geertjan Wielenga, Jonathan Vila | 3,247 |
| Video series “JavaFX In Action”, Part 5 with Cormac Redmond (KafkIO), Brian Schlining (Annotating the Deep-Sea Wildlife), Gerrit Grunwald (JavaFX Libraries), Dirk Lemmermann (JavaFX Libraries and Applications, JFX Central) | Frank Delporte, Gerrit Grunwald | 5,943 |
| How to Make a RAG Application With LangChain4j | Tim Kelly | 4,407 |
| Understanding MCP Through Raw STDIO Communication | David Parry | 36,420 |
| Spring Boot documentation with Redocusaurus | Vincent Vauban | 6,841 |
| Getting Started With Scala | Steve Wilcockson | 3,271 |
| Sustainability Starts with Your Runtime: Meet a Green JVM | Anthony Layton | 2,500 |
| The Great Data Reimagination: From Static to Agile in the AI Era | Karin Lauria | 2,620 |
| Testing an OpenRewrite Recipe | Nicolas Frankel | 1,816 |
| Foojay Podcast #75: JCON Report, Part 4 - Tips and Tricks for Java Devs | Frank Delporte | 2,977 |
| How I Improved Zero-Shot Classification in Deep Java Library (DJL) OSS: Enhancing Machine Learning Model Translators | Raphael De Lio | 8,568 |
| Building a Spring Boot CRUD Application Using MongoDB’s Relational Migrator | Aasawari Sahasrabuddhe | 3,893 |
| Prime Time: The High Performance Java Event | Geertjan Wielenga | 15,309 |
| CAP in the Pocket | Johannes Bechberger | 9,172 |
| New AI Conference For And By Developers | Geertjan Wielenga, Jonathan Vila | 5,766 |
| Carbon Aware Job Processing With JobRunr v8 | Nicholas D'hondt | 3,662 |
| When ReadyNow Can Only Compile on Traffic Loads | Frank Delporte | 2,607 |
| Data Modeling for Java Developers: Structuring With PostgreSQL and MongoDB | Aasawari Sahasrabuddhe | 4,323 |
| Java 21+ Not Working on the Raspberry Pi Zero 2 | Frank Delporte | 2,231 |
| Kotlin adoption inside ING, five years later | Julien Lengrand-Lambert | 2,531 |
| Java Virtual Threads in Action: Optimizing MongoDB Operation | Otavio Santana | 5,309 |
| Foojay Podcast #74: JCON Report, Part 3 – AI, ChatGPT, LLM, ML, RAG, MCP, GenAI, and more | Frank Delporte | 12,105 |
| JavaFX Links of June 2025 | Frank Delporte | 2,098 |
| Improve Your Java Applications’ Startup and Compilation Speed with Optimizer Hub | Frank Delporte | 2,984 |
| How to Identify the Underlying Causes of Connection Timeout Errors for MongoDB With Java | Rajesh Nair | 3,185 |
| Sentiment Analysis with Java, Quarkus, LangChain4j, and Local LLMs | Markus Eisele | 2,785 |
| Benchmark and profiling Java with JMH | David Vlijmincx | 4,737 |
| Clean and Modular Java: A Hexagonal Architecture Approach | Ricardo Mello | 26,323 |
| Save Time and Money by Reducing False Positives | Gerrit Grunwald | 4,982 |
| How to Train ReadyNow to Achieve Optimal Java Performance | Frank Delporte | 3,429 |
| Multi-cloud Strategies With MongoDB Atlas | Luce Carter | 2,738 |
| SpringBoot and Kafka Streams – Event Routing & Testing | Vincent Vauban | 6,694 |
| Java, What's Old? Part I: Collections | Anthony Goubard | 6,306 |
| Book Review: Writing for Developers | Nicolas Frankel | 2,251 |
| Ensuring Safe and Reliable AI Interactions with LLM Guardrails | Brian Vermeer | 3,436 |
| Your Complete Guide to Diagnose Slow Queries in MongoDB | Tim Kelly | 14,260 |
| Sonar Connect Amsterdam 2025 | Jonathan Vila | 2,430 |
| Foojay Podcast #73: JCon Report, Part 2 – Evolutions in the Java language and runtime | Cay Horstmann, Frank Delporte, Hanno Embregts, Jens Knipper, Karl Heinz Marbaise, Miro Wengner | 2,480 |
| How ReadyNow Improves Java Warmup Time | Frank Delporte | 4,644 |
| Java Concurrency Best Practices for MongoDB | Vivekanandan Sakthivelu | 5,744 |
| Performance Best Practise No. 1: Optimize Database Operations | Ondro Mihalyi | 6,136 |
| Intro to RAG: Foundations of Retrieval Augmented Generation, part 2 | Jennifer Reif | 6,584 |
| Authoring an OpenRewrite Recipe | Nicolas Frankel | 1,843 |
| Faster Java Warmup: CRaC versus ReadyNow | Frank Delporte | 3,837 |
| MongoDB Aggregation Framework: A Beginner’s Guide | Ricardo Mello | 10,232 |
| Java’s Structured Concurrency: Finally Finding Its Footing | A N M Bazlur Rahman | 12,325 |
| Cloudflare Tunnel for Home Assistant | Nicolas Frankel | 1,870 |
| Foojay Podcast #72: JCon Report, Part 1 - Grow your career, public speaking, 30 years of Java, greener coding,... | Brian Vermeer, Frank Delporte, Baruch Sadogursky, Markus Westergren, Richard Fichtner | 2,917 |
| JavaFX Links of May 2025 | Frank Delporte | 2,642 |
| Getting a single value from a device's state in Home Assistant | Nicolas Frankel | 2,187 |
| Brokk: AI for Large (Java) Codebases | Jonathan Ellis | 6,740 |
| Testing MongoDB Atlas Search Java Apps Using TestContainers | Luke Thompson | 7,440 |
| 10 Best Practises For Jakarta EE Performance Optimization | Ondro Mihalyi | 3,796 |
| Intro to RAG: Foundations of Retrieval Augmented Generation, part 1 | Jennifer Reif | 9,997 |
| Azul and JetBrains Collaborate to Enhance Runtime Performance for Kotlin Workloads | Geertjan Wielenga | 10,787 |
| AI-Driven Testing Best Practices | Jonathan Vila | 11,794 |
| Understanding BSON: A Beginner’s Guide to MongoDB’s Data Format | Tim Kelly | 21,189 |
| How to send prompts in bulk with Spring AI and Virtual Threads | Raphael De Lio | 6,599 |
| How Deep Netts and Java AI Transformed Particle Physics | Zoran Sevarac | 8,852 |
| Join the NLJUG JSpring Conference on Thursday, June 5 | Martin Smelt | 2,168 |
| How to Deploy a Vaadin Application as a WAR on Tomcat 11 | Simon Martinelli | 3,850 |
| What is RAG, and How to Secure It | Brian Vermeer | 3,993 |
| Building a Real-Time AI Fraud Detection System with Spring Kafka and MongoDB | Tim Kelly | 17,617 |
| Foojay Live @ JCON Köln | Frank Delporte | 4,531 |
| Autopo: An open source tool to automate.po file translation with AI. | Andrea Vacondio | 8,342 |
| GenAI blood, sweat, and tears: Loading data to Pinecone | Jennifer Reif | 9,403 |
| Book Review: Raising Young Coders | Geertjan Wielenga | 2,733 |
| Building FormPilot | A N M Bazlur Rahman | 3,299 |
| Local AI with Spring: Building Privacy-First Agents Using Ollama | Bruno Oliveira | 15,429 |
| Semantic Search with Spring Boot & Redis | Raphael De Lio | 6,236 |
| You’re Invited to IntelliJ IDEA Conf 2025! | Marit van Dijk | 3,214 |
| Foojay Podcast #71: Celebrating 30 Years of Java with James Gosling | Frank Delporte | 8,049 |
| Redis is now available under the AGPLv3 open source license | Rowan Trollope | 4,395 |
| Still Using JUnit Like It’s 2017? Learn What You’ve Missed—from the Team That Built It | Richard Fichtner | 2,539 |
| JavaFX Links of April 2025 | Frank Delporte | 2,478 |
| Supercharge Your Jakarta EE Skills with These Must-Read Guides | Ondro Mihalyi | 4,487 |
| IBM's Chief Java Architect Flies in from Canada to Share JVM Optimization Secrets—Will You Be There? | Richard Fichtner | 2,853 |
| Foojay Webinar: Java's Place in the AI Revolution | Frank Delporte, Pratik Patel, Zoran Sevarac | 28,047 |
| Improving Maven's dependency:analyze... or not | Nicolas Frankel | 3,091 |
| Free Foojay.io Tickets for JCON EUROPE 2025, Cologne! | Richard Fichtner | 2,629 |
| Foojay Podcast #70: Celebrating 5 Years of Foojay | Frank Delporte, Geertjan Wielenga, Gerrit Grunwald | 3,026 |
| Jakarta EE 11 Web Profile Released, Enabled by Eclipse GlassFish | Ondro Mihalyi | 12,094 |
| Async file IO with Java and io_uring | David Vlijmincx | 5,428 |
| Optimizing the Garbage Collector when Migrating Cloud Workloads | Kieran Hejmadi | 7,542 |
| Breaktime Tech Talks (Ep39): Why embedding models should match + Advice for starting a blog | Jennifer Reif | 2,829 |
| Building JavaFX Native Images | Catherine Edelveis | 5,704 |
| Foojay Podcast #69: All Things Java at VoxxedDays Amsterdam | Frank Delporte, Geertjan Wielenga | 3,512 |
| Time to panic? AI and Cybercrime legislation is on your doorstep now | Steve Poole | 4,372 |
| Register for Foojay Webinar: "Java's Place in the AI Revolution" | Frank Delporte, Pratik Patel, Zoran Sevarac | 3,261 |
| Mutation Testing in Rust | Nicolas Frankel | 2,314 |
| The try block in Rust | Nicolas Frankel | 2,845 |
| From Reactive Streams to Virtual Threads | Adam Warski | 2,641 |
| Six JDK 24 Features You Should Know About | Simon Ritter | 6,446 |
| Spring AI Debugging + How to Contribute to Open Source | Jennifer Reif | 3,924 |
| Clean your Memory: From Finalize to Cleaner | Stefano Fago | 7,979 |
| JavaFX Links of March 2025 | Frank Delporte | 3,158 |
| Video series “JavaFX In Action”, Part 4 with Mike Hearn (Conveyor), Sven Reimers (JTaccuino), and Chris Newland (DemoFX, JitWatch) | Frank Delporte | 5,920 |
| One giant Kubernetes cluster for everything | Nicolas Frankel | 2,986 |
| WebAssembly on Kubernetes | Nicolas Frankel | 2,756 |
| Interview with Abdoulaye Wade Cissé: Using a JavaFX application as a virtual chemistry and biology lab | Frank Delporte | 5,350 |
| Introduction to intermediate operations modeler: Stream Gatherers | Hüseyin Akdoğan | 6,254 |
| Breaktime Tech Talks (Ep37): Vector Database Frustration + Microsoft LazyGraphRAG | Jennifer Reif | 3,928 |
| Java 24 Rolls Out Today! Find Out Why It's Aptly Named | Hanno Embregts | 24,352 |
| Foojay Podcast #68: Welcome to OpenJDK (Java) 24 | Frank Delporte, Hanno Embregts, Simon Ritter | 24,447 |
| Pull request testing on Kubernetes: testing locally and on GitHub workflows | Nicolas Frankel | 3,038 |
| Pull Request testing on Kubernetes: Working with GitHub Actions and GKE | Nicolas Frankel | 2,218 |
| Pull request testing on Kubernetes: vCluster for isolation and costs control | Nicolas Frankel | 1,620 |
| Demo Application with CRaC and Loading Data in Memory | Frank Delporte | 3,119 |
| Path Traversal Vulnerability in Deep Java Library (DJL) | Brian Vermeer | 4,952 |
| Creating SBOMs with the Snyk CLI | Brian Vermeer | 3,490 |
| Code Reviews with AI a developer guide | Jonathan Vila | 14,952 |
| Extending Java APIs - Add Missing Features Without the Hassle | Shai Almog | 3,299 |
| Book Review: DuckDB in Action | Nicolas Frankel | 3,277 |
| Enhancing LLM’s Conversations with Efficient Summarization | A N M Bazlur Rahman | 17,441 |
| JavaFX Links of February 2025 | Frank Delporte | 2,161 |
| Spring Cloud Stream: Demystifying Event-Driven Architecture | Mahendra Rao B | 7,160 |
| Front End Debugging Part 3: Networking | Shai Almog | 2,852 |
| Build local LLM applications with Quarkus, Ollama, Testcontainers | Jonathan Vila | 7,243 |
| Securing Vaadin Applications with Microsoft Entra | Simon Martinelli | 2,969 |
| Java 24: What's New? | Loic Mathieu | 19,839 |
| Review of Junie, a coding agent by JetBrains – Revie | Igor Kulakov | 5,561 |
| Sliding Window Counter Rate Limiter (Redis & Java) | Raphael De Lio | 4,198 |
| Foojay Podcast #67: Writing a book and fame and fortune! | Frank Delporte, Trisha Gee, Wim Deblauwe | 3,840 |
| Pi4J Welcomes Java 21 on the Raspberry Pi | Frank Delporte | 4,646 |
| Event-Driven Architecture and Change Data Capture Made Easy | Muaath Bin Ali | 15,117 |
| Find Undead Code in Your Java Environments | Erik Costlow, Trisha Gee | 21,479 |
| A Glance into JFR Class and Method Tagging | Johannes Bechberger | 4,351 |
| Remote Development Made Simple with DevPod | Nicolas Frankel | 4,192 |
| Building a declarative API with Spring AOP and SpEL | Mikael Francoeur | 4,849 |
| Foojay Podcast #66: Let's Talk About Java Code! | Frank Delporte, Igor Kulakov, Maximillian Arruda, Rijo Sam, Wim De Troyer | 3,988 |
| Spring Data Neo4j: How to update an entity | Jennifer Reif | 7,164 |
| Sliding Window Log Rate Limiter (Redis & Java) | Raphael De Lio | 12,632 |
| Join the Celebration of 30 Years of Java | Geertjan Wielenga | 3,925 |
| JavaFX Links of January 2025 | Frank Delporte | 3,772 |
| My first steps with Playwright | Nicolas Frankel | 2,357 |
| A solution to the problem of cluster-wide CRDs | Nicolas Frankel | 2,934 |
| Project Loom: Structured Concurrency - Java | Mahendra Rao B | 17,331 |
| Token Bucket Rate Limiter (Redis & Java) - Raphael De Lio | Raphael De Lio | 9,510 |
| Thinking differently about testing | Steve Poole | 8,909 |
| Receiving mails in Java with IMAP or POP3 | Jens Knipper | 5,884 |
| Challenge yourself with Application Observability Code Challenges | Cees Bos | 5,490 |
| How JVM handles exceptions | Nataliia Dziubenko | 8,330 |
| Fixed Window Counter Rate Limiter (Redis & Java) | Raphael De Lio | 8,523 |
| Foojay Podcast #65: Boost Your Career in 2025! | Frank Delporte, Rafael del Nero | 3,631 |
| The slow Death of the onjcmd Debugger Feature | Johannes Bechberger | 2,985 |
| Reflections on 2024: OmniFish, GlassFish, Piranha, Jakarta EE | Ondro Mihalyi | 3,102 |
| An Example of HACS: Adaptive Lighting | Nicolas Frankel | 2,568 |
| Rate limiting with Redis: An essential guide | Raphael De Lio | 23,494 |
| Make the life of your developer client's easier with smart builders | Maximillian Arruda | 10,587 |
| Integrating Google Analytics With Vaadin Flow: A Step-By-Step Guide | Simon Martinelli | 3,083 |
| The proper way to define configuration properties in Spring | Wim De Troyer | 3,766 |
| Encryption and Data Security Market Analysis: Market Analysis 2025 | Geertjan Wielenga | 8,443 |
| 2024 in Retrospective: Nicolas Frankel | Nicolas Frankel | 3,765 |
| Video series “JavaFX In Action”, Part 3 | Frank Delporte, Jago de Vreede, Steve Hannah | 6,123 |
| AI-powered Chat Application using watsonx.ai and Spring AI | Tristan Mahinay | 27,638 |
| Pseudorandom Number Generators - The Secret Behind Santa’s Gift Bag | Rijo Sam | 5,329 |
| Incident Response Platform Comparison: Market Analysis 2025 | Geertjan Wielenga | 11,448 |
| Java Conferences in 2025 | Geertjan Wielenga | 5,739 |
| More Free Shells for your Java IDE | Anthony Goubard | 6,678 |
| JavaFX Links of December 2024 | Frank Delporte | 2,509 |
| Issues with old GlassFish server? Upgrade to Eclipse GlassFish! | Ondro Mihalyi | 2,652 |
| Foojay Podcast #64: Interviews at JFall about opensource, OpenJDK evolutions, Project Loom, JVM,... | Anthony Goubard, Frank Delporte, Geertjan Wielenga, Hanno Embregts | 6,272 |
| Warp: the new CRaC engine | Radim Vansa | 13,291 |
| Duplicate finder – Tests | Igor Kulakov | 3,121 |
| Foojay Podcast #63: How do we keep your Java applications up to date and secure? | Charl Fasching, Frank Delporte, Gerrit Grunwald, Johan Janssen | 6,628 |
| Run a Java Lambda Function From a Docker image | Charl Fasching | 8,943 |
| Speed up your Spring Batch with Native Image and GraalVM | Vincent Vauban | 12,694 |
| The Home Assistant Model | Nicolas Frankel | 4,645 |
| Why Home Assistant | Nicolas Frankel | 3,995 |
| Prevent LDAP injection in #java with #springboot | Vincent Vauban | 7,375 |
| Front End Debugging Part 2: Console.log() to the Max | Shai Almog | 5,616 |
| Foojay Podcast #62: Better Coding with AI: Friend or Enemy? | Frank Delporte | 11,272 |
| JavaFX Links of November 2024 | Frank Delporte | 3,811 |
| Task schedulers in Java: modern alternatives to Quartz Scheduler | Ismaila Abdoulahi, Ronald Dehuysser | 28,425 |
| How Organizations Became Stuck on Outdated Java Versions | Frank Delporte | 10,088 |
| GlassFish is rolling forward. What’s New? | Ondro Mihalyi | 5,902 |
| strace Revisited: Simple is Beautiful | Shai Almog | 5,078 |
| Langchain4J Musings | Nicolas Frankel | 5,716 |
| Video series “JavaFX In Action”, Part 2 | Frank Delporte | 7,904 |
| Build and Run TornadoVM with IntelliJ IDEA | Thanos Stratikopoulos | 7,282 |
| Hot Class Reload in Java: A Webpack HMR-Like Experience | Mohibul Hassan Chowdhury | 9,051 |
| Crafting Your Own Railway Display with Java! | Ancy Thomas, Rijo Sam | 9,212 |
| Foojay Podcast #61: Keep Your Body And Mind Healthy | Frank Delporte, Rijo Sam, Tom Cools | 6,247 |
| Why Java 8 is a Ticking Time Bomb Hiding Within Your Organization | Frank Delporte | 8,867 |
| Summary of the AJAX Frameworks Comparison | Nicolas Frankel | 4,971 |
| Spring Boot: Java Template Engine (JTE) | Mahendra Rao B | 20,169 |
| Foojay.io At JFall 2024 (And The Winner Is...) | Geertjan Wielenga | 5,363 |
| Front End Debugging Part 1: Not just Console Log | Shai Almog | 7,078 |
| Effortless updates requires a zero-migration policy | Michal Broz | 6,861 |
| Foojay Podcast #60: Proud Of Belgium - Devoxx, JobRunr, Timefold, OpenJDK Mobile, OpenJFX, Thymeleaf, htmx,... | Frank Delporte, Geoffrey De Smet, Johan Vos, Ronald Dehuysser, Wim Deblauwe | 7,148 |
| How we almost missed a plane, but OpenJDK could have saved us. | Frank Delporte | 5,704 |
| JDK 23: Module Design Pattern with JEP-476 | Miro Wengner | 12,051 |
| Java Tips # 01 - Writing Shebang Scripts in Pure Java | A N M Bazlur Rahman | 12,002 |
| JavaFX Links of October 2024 | Frank Delporte | 7,095 |
| The Art of Full Stack Debugging | Shai Almog | 7,274 |
| Learn About How Your Peers Use Java! | Geertjan Wielenga | 6,674 |
| Just-Write-And-Run prototyping with JEP-477 | Miro Wengner | 11,514 |
| Vaadin: Battery-Included Server-Side AJAX Framework | Nicolas Frankel | 5,466 |
| Foojay Podcast #59: DevRel Explained! | Frank Delporte, Baruch Sadogursky, Pratik Patel, Roni Dover | 6,570 |
| Book Review: Mastering the Java Virtual Machine | Mahendra Rao B | 18,077 |
| Deep dive into bits, bytes, shorts, ints, longs, signed, and unsigned with Java | Frank Delporte | 8,439 |
| Changes Included in Release 24.08 of Azul Zing Builds of OpenJDK | Frank Delporte, Matt Van Order | 6,231 |
| Profile IntelliJ IDEA with its own profiler | Igor Kulakov | 5,664 |
| Gatherers upgrades pipeline design pattern JEP-461 | Miro Wengner | 9,903 |
| Augmenting the client with HTMX | Nicolas Frankel | 4,500 |
| Augmenting the client with Alpine.js | Nicolas Frankel | 4,245 |
| Augmenting the client with Vue.js | Nicolas Frankel | 3,991 |
| Builder Pattern Simplicity with JEP-455 Primitive Types | Miro Wengner | 6,744 |
| Unleashing the Power of Git Bisect | Shai Almog | 7,422 |
| Easily containerize Java applications with cloud native buildpacks | Grace Jansen | 6,672 |
| Java Server and Rust Client Built with Generated Networking Code | Gerhard Fuchs | 5,969 |
| Null object pattern to avoid null pointer exception with JEP-455 | Miro Wengner | 11,429 |
| Gear Up for NODES 2024: What to Know | Jennifer Reif | 5,384 |
| SQL Best Practices Every Java Engineer Must Know | Muaath Bin Ali | 19,639 |
| Foojay Podcast #58: How Java Developers Can Secure Their Code | Brian Vermeer, Erik Costlow, Frank Delporte, Jonathan Vila | 6,865 |
| JavaFX Links of September 2024 | Frank Delporte | 5,284 |
| Azul Brings Java from Edge to Cloud | Frank Delporte | 8,567 |
| JDK 23: Factory Pattern with Flexible Constructor Bodies | Miro Wengner | 10,778 |
| Run true-to-production tests on your Java applications | Grace Jansen | 6,548 |
| Server-Side Rendering with Spring Boot | Nicolas Frankel | 6,298 |
| A Short History of AJAX and SSR | Nicolas Frankel | 4,221 |
| TornadoVM for RISC-V Accelerators | Juan Fumero | 6,312 |
| The Persistent Threat: Why Major Vulnerabilities Like Log4Shell and Spring4Shell Remain Significant | Brian Vermeer | 6,856 |
| Java: Where the Wild Code Isn't (On Security and Modularity) | Erik Costlow | 7,744 |
| Java 23 Has Arrived, And It Brings a Truckload of Changes | Hanno Embregts | 23,125 |
| Foojay Podcast #57: Welcome to OpenJDK 23 | Frank Delporte, Simon Ritter | 7,972 |
| Health Check Response Format for HTTP APIs | Nicolas Frankel | 7,165 |
| DRY your Apache APISIX config | Nicolas Frankel | 5,022 |
| A Fresh Look at Embedded Java | Frank Delporte | 8,200 |
| Press the Easy Button: Organize a Virtual Conference Schedule with a Graph Database | Jennifer Reif | 6,417 |
| Browserless Testing of Vaadin Applications with Karibu Testing | Simon Martinelli | 6,216 |
| Top Security Flaws hiding in your code right now | Jonathan Vila | 7,876 |
| Help update the Twelve-Factor app methodology | Grace Jansen | 5,123 |
| Java 23: What’s New? | Loic Mathieu | 17,126 |
| Implementing the Idempotency-Key specification on Apache APISIX | Nicolas Frankel | 4,485 |
| When (not) to write an Apache APISIX plugin | Nicolas Frankel | 4,034 |
| How to profile a performance issue using Spring Boot profiling tools | Nasim Salmany | 20,530 |
| JavaFX Links of August 2024 | Frank Delporte | 5,228 |
| Four Easy Ways to Analyze your Java and Kotlin Code for Security Problems | Brian Vermeer | 6,309 |
| Get recognized for your cloud-native Java development skills | Grace Jansen | 5,109 |
| IBM Semeru Runtimes for Java includes FIPS 140-3 certified cryptography | Laura Cowen | 9,417 |
| Debugging Kubernetes - Troubleshooting Guide | Shai Almog | 5,311 |
| Unsupported OpenJDK Distributions are at Risk of Non-Compliance with DORA | Geertjan Wielenga | 4,174 |
| Creating 12-factor cloud-native Java apps with open source | Grace Jansen | 9,954 |
| Running JavaFX applications on ARM with Azul Zulu | Frank Delporte | 7,840 |
| OpenTelemetry Tracing on Spring Boot, Java Agent vs. Micrometer Tracing | Nicolas Frankel | 6,319 |
| Connecting Resilience to Performance in Relation to OpenJDK | Geertjan Wielenga, Simon Ritter | 3,807 |
| Sustainable Software Engineering: Input Requested! | Jan-Hendrik Kuperus | 5,509 |
| Spring: Internals of @ComponentScan | Mahendra Rao B | 18,297 |
| Are Critical Vulnerabilities Lurking in Your Java Ecosystem? | Maqsud Mohammad | 7,251 |
| Interview with a Java Champion: Reflections on a Storied Career and Insights for the Next Generation | A N M Bazlur Rahman | 8,087 |
| Defining patterns of data transfers for Java applications with TornadoVM | Thanos Stratikopoulos | 5,914 |
| DevIgnition with Foojay.io at Washington DC JUG | Cullen Gray, Geertjan Wielenga, Kadi McKean | 4,263 |
| The Impact of the EU DORA Act on Non-EU Financial Organizations | Geertjan Wielenga, Simon Ritter | 6,490 |
| Trash Pandas Love Enterprise Java Garbage Code | Erik Costlow | 6,054 |
| Run AI-enabled JakartaEE/MicroProfile apps with LangChain4j | Gilbert Kwan, Grace Jansen | 5,692 |
| Allocation Profiling in Java | Igor Kulakov | 7,304 |
| How does it feel to test a compiler? | Alexander Zakharenko | 6,485 |
| JavaFX Nodes versus Canvas | Frank Delporte | 5,976 |
| Free tier API with Apache APISIX | Nicolas Frankel | 4,449 |
| Differentiating rate limits in Apache APISIX | Nicolas Frankel | 4,731 |
| Random and fixed routes with Apache APISIX | Nicolas Frankel | 3,733 |
| Are Java Security Updates Important? | Simon Ritter | 9,070 |
| Consequences of DORA on Java and OpenJDK with Azul | Geertjan Wielenga, Simon Ritter | 6,954 |
| JUG PH: 1H 2024 Meetups | Tristan Mahinay | 4,922 |
| JUG PH: 1-Day Modern Java Development Bootcamp | Tristan Mahinay | 5,913 |
| JavaFX Links of July 2024 | Frank Delporte | 5,148 |
| JManc 2024 Trip Report | Nick Ebbitt | 4,227 |
| Client-server application in Java: Easy with FEPCOS-J – Video. | Gerhard Fuchs | 5,954 |
| Failure is Required: Understanding Fail-Safe & Fail-Fast Strategies | Shai Almog | 6,748 |
| Mastering Serverless Debugging | Shai Almog | 6,030 |
| Understanding JVM Memory Layout with OpenJDK24's New PrintMemoryMapAtExit VM Option | Chris Newland | 11,191 |
| Advanced URL Rewriting with Apache APISIX | Nicolas Frankel | 4,863 |
| Creating a Command Line Tool with JBang and PicoCLI to Generate Release Notes | A N M Bazlur Rahman | 12,794 |
| Effective Java Logging | Muaath Bin Ali | 24,311 |
| Continuous Feedback Free Udemy Course: Additional Coupons Available | Roni Dover | 5,572 |
| New video series "JavaFX In Action", Part 1 | Frank Delporte | 9,269 |
| The Impact of the Digital Operational Resilience Act (DORA) on Java Investment with Azul | Geertjan Wielenga, Simon Ritter | 4,846 |
| Structured Concurrency is More Than ShutdownOnFailure | Anthony Goubard | 13,671 |
| Java's Unsafe is Finally Going Away | A N M Bazlur Rahman | 19,792 |
| 9 Best Java Profilers to Use in 2024 | Lee Sheinberg | 14,729 |
| Dynamic watermarking with imgproxy and Apache APISIX | Nicolas Frankel | 5,364 |
| Dynamic watermarking on the JVM | Nicolas Frankel | 5,554 |
| Wireshark & tcpdump: A Debugging Power Couple | Shai Almog | 8,239 |
| Foojay Podcast #56: Vectors in Java Code, Databases, and LLMs | Frank Delporte | 6,845 |
| The Best Way to Handle Phone Numbers | Simon Martinelli | 11,847 |
| Java: Demystifying The Stream API | Mahendra Rao B | 15,292 |
| A Beginner's Guide to IntelliJ Profiler | Igor Kulakov | 8,607 |
| beetRoot: Yet Another Web Framework? | Michael Gasche | 7,579 |
| Step up your coding with Continuous Feedback: Free Udemy Course | Roni Dover | 4,616 |
| Foojay Podcast #55: Embedded Java, Part 2 | Frank Delporte, Pavel Petroshenko | 5,545 |
| Master Your Journey in the School of OpenJDK Migration | Simon Ritter | 5,020 |
| JavaFX Links of June 2024 | Frank Delporte | 4,264 |
| Renovate for everything | Nicolas Frankel | 5,164 |
| How to Run Neo4j on Kubernetes | Jennifer Reif | 11,403 |
| Foojay Podcast #54: Music and MIDI with Java and Kotlin | Frank Delporte, Geert Bevin | 7,872 |
| Example Java Application with Embedded Jetty and a htmx Website | Frank Delporte | 6,028 |
| Exploring New Features in JDK 23: Simplifying Java with Module Import Declarations with JEP 476 | A N M Bazlur Rahman | 10,383 |
| Even More Opentelemetry! | Nicolas Frankel | 5,139 |
| Why is Kubernetes Debugging so Problematic? | Shai Almog | 6,032 |
| Java on Visual Studio Code May 2024 Update - New AI Feature, Spring Updates | Nick Zhu | 5,979 |
| Foojay Podcast #53: JCON Report, Part 5 – CQRS, JOOQ, GraphQL, API, Vaadin, OpenRewrite, ErrorProne, Gateways, Proxies,... | Frank Delporte, Marcus Hellberg, Nicolas Frankel, Simon Martinelli | 6,064 |
| Book review: Frontend Development with JavaFX and Kotlin | Frank Delporte | 6,986 |
| Hack a Java application with the debugger | Igor Kulakov | 11,475 |
| Vaadin 24.4 Adds React Support, In-App Coding Assistant | Marcus Hellberg | 6,961 |
| Be a Better Java Developer: 19 Tips for Staying Ahead in 2024 | Lee Sheinberg | 30,724 |
| Foojay Podcast #52 from JCON in Cologne! | Frank Delporte, Gerrit Grunwald | 5,616 |
| Identify Dependencies in Codebases During Microservice Migration | Oleksandr Hrebeniuk | 7,440 |
| Exploring New Features in JDK 23: Simplifying Java with Primitive Type Patterns with JEP 455 | A N M Bazlur Rahman | 9,581 |
| Debugging Kubernetes Part 1: An Introduction | Shai Almog | 6,557 |
| Workflow, From Stateless To Stateful | Nicolas Frankel | 4,780 |
| Java: Functional Programming f(x) – Part2 | Mahendra Rao B | 10,586 |
| Foojay Podcast #51: Persistence, Evolving your Career, Jakarta EE, GlassFish, Messaging via Telegram | Frank Delporte, Ondro Mihalyi | 6,479 |
| JavaFX Links of May 2024 | Frank Delporte | 5,846 |
| Who instruments the instrumenters? | Johannes Bechberger, Mikael Francoeur | 8,878 |
| My opinion on the Tauri framework | Nicolas Frankel | 6,595 |
| Five Java Developer Must-Haves For Ultra-Fast Startup Solutions | Laura Cowen | 7,471 |
| Indexing all of Wikipedia, on a laptop | Jonathan Ellis | 106,976 |
| Top 7 Java Microservices Frameworks | Rob Austin | 31,411 |
| The TornadoVM Programming Model Explained | Juan Fumero | 9,394 |
| Exploring Cost-Effective Solutions for Stateful Rest Services | Johannes Rabauer | 6,352 |
| Foojay Podcast #50: JCON Report, Part 2 - Maven, Software Security, Code Quality | Frank Delporte, Karl Heinz Marbaise, Marit van Dijk, Miro Wengner, Steve Poole | 4,778 |
| Evolutions in the Pi4J library by Tom Aarts and Robert von Burg | Frank Delporte | 6,421 |
| Improve DevOps Productivity with Azul Intelligence Cloud for Any JVM | Erik Costlow | 4,693 |
| Learn how to debug unresponsive Java/JVM applications, then reload the fix on the fly, using a hands-on example | Igor Kulakov | 6,647 |
| Task scheduler in Java: background job processing with JobRunr | Donata Petkeviciute, Ismaila Abdoulahi, Ronald Dehuysser | 19,294 |
| JManc Unconference 2024 | Nick Ebbitt | 4,217 |
| Foojay Podcast #49: JCON Report, Part 1 - JUGs, Communities, Generative AI, and more! | Frank Delporte, Geertjan Wielenga, Mary Grygleski, Richard Fichtner, Soham Dasgupta | 4,806 |
| Calling Microservices in Java: Part 1 | Muaath Bin Ali | 12,525 |
| A Modern Approach to Middleware with Chronicle | Ryan Andrews | 5,750 |
| How to Submit a Technical Presentation | Jennifer Reif | 5,129 |
| The Vary HTTP Header | Nicolas Frankel | 4,152 |
| Software Testing as a Debugging Tool | Shai Almog | 5,592 |
| Oracle Alternatives Survey & Report | Geertjan Wielenga | 6,069 |
| Hello eBPF: XDP-based Packet Filter (9) | Johannes Bechberger | 7,582 |
| Diagnosing user-reported issues using WireQuery | Wouter Nederhof | 4,481 |
| Building a Simple Home Assistant using Langchain4j and Raspberry Pi | Jansen Ang | 12,142 |
| SQL Query Optimization: How to Identify and Optimize Slow SQL Queries | Oleksandr Hrebeniuk | 11,705 |
| Spring AI: How to Write GenAI Applications with Java | Jennifer Reif | 34,521 |
| Duplicate Finder for Documentation | Igor Kulakov | 3,562 |
| Is your Java application ready for the next generation of server CPUs? | Michael Hall | 8,085 |
| Remotely Recording a JFR Log from a Container (Without Using the Command Line) | Matt Van Order | 6,944 |
| Let's Replace the synchronized Keyword | Anthony Goubard | 13,781 |
| Why This JCON Europe Talk Is Unmissable (Part 2) | Richard Fichtner | 3,204 |
| Foojay Podcast #48: JUG Oberpfalz, JCON Conference, and JAVAPRO Magazine | Frank Delporte, Richard Fichtner | 4,955 |
| Writing a Data Orchestrator in Java | Loic Mathieu | 11,631 |
| Crowd-Publishing the 10x Java Dev Book | Olimpiu Pop, Steve Poole | 4,125 |
| Five ways to pass parameters to Apache APISIX | Nicolas Frankel | 4,582 |
| JavaFX Links of April 2024 | Frank Delporte | 4,409 |
| Why This JCON Europe Talk Is Unmissable (Part 1) | Richard Fichtner | 4,577 |
| Functional Programming: Revolutionizing Software Development | Mahendra Rao B | 9,955 |
| The High Availability Features of Microservices using Chronicle Services | Rob Austin | 8,418 |
| Hello eBPF: Generating C Code (8) | Johannes Bechberger | 4,920 |
| Using my new Raspberry Pi to run an existing GitHub Action | Nicolas Frankel | 5,536 |
| Debug Without Breakpoints – Guide to IntelliJ IDEA's Pause | Igor Kulakov | 10,618 |
| Debugging Using JMX Revisited | Shai Almog | 6,639 |
| Smarter Logging in Spring Boot with AOP | Muaath Bin Ali | 7,462 |
| Getting Started with bld | Ethan McCue | 10,848 |
| Foojay Podcast #47: Artificial Intelligence and Machine Learning with Java | Frank Delporte | 21,537 |
| Free Foojay.io Tickets for JCON EUROPE, Cologne! | Richard Fichtner | 4,922 |
| JUG Munich hosts the JCP Executive Committee meeting to 25th anniversary of JCP | Miro Wengner | 4,214 |
| Hello eBPF: Auto Layouting Structs (7) | Johannes Bechberger | 4,661 |
| Ensuring the right usage of the Java 21 new features | Jonathan Vila | 10,888 |
| Calling Gemma with Ollama, TestContainers, and LangChain4j | Guillaume Laforge | 6,447 |
| IntelliJ IDEA and Open Liberty - Effective Java app development | Grace Jansen | 6,703 |
| Search in Documentation with a JavaFX LangChain4j Chat | Frank Delporte | 19,926 |
| 12 Text Tools For Developers | Anthony Goubard | 9,464 |
| Java on Raspberry Pi 5 with Pi4J | Frank Delporte | 8,331 |
| Debugging Streams with Peek | Shai Almog | 9,000 |
| How to Detect Cache Misses Using Observability | Saeed Zarinfam | 6,949 |
| Changes Included in Release 24.02 of Azul Zing Builds of OpenJDK | Frank Delporte, Matt Van Order | 6,193 |
| Records for Cleaner and More Expressive Parameterized Tests in JUnit 5 | A N M Bazlur Rahman | 9,674 |
| Improving upon my OpenTelemetry Tracing demo | Nicolas Frankel | 3,737 |
| Foojay Podcast #46: JUG Switzerland | Frank Delporte, Simon Martinelli | 6,193 |
| JavaFX Links of March 2024 | Frank Delporte | 5,687 |
| Aspect-Oriented Programming (AOP) Made Easy With Java | Muaath Bin Ali | 18,269 |
| Tips for reading code | Marit van Dijk | 8,135 |
| To Brussels, Canada and back | Johannes Bechberger | 5,240 |
| Apache APISIX North America Tour | Nicolas Frankel | 7,435 |
| Spring Framework – Internals of RestClient | Mahendra Rao B | 30,938 |
| Multithreaded server in Java: That's easy with FEPCOS-J. | Gerhard Fuchs | 9,450 |
| How to improve your spring boot skills | Lee Sheinberg | 11,908 |
| Localize applications with AI | Igor Kulakov | 8,003 |
| Hello eBPF: Ring buffers in libbpf (6) | Johannes Bechberger | 10,366 |
| Java 22 Is Here, And It's Ready To Rock | Hanno Embregts | 15,456 |
| Java 22: What’s New? | Loic Mathieu | 8,860 |
| Foojay Podcast #45: Welcome to Java 22 | Frank Delporte, Loic Mathieu, Simon Ritter | 5,740 |
| How Oracle Separates Java Pricing from Value | Simon Ritter | 5,589 |
| More readability & less complexity with Java's Pattern Matching. | Jonathan Vila | 10,068 |
| Run JavaFX on the Windows Subsystem for Linux and More! | Christopher Schnick | 8,851 |
| Foojay.io Mini Conference at Uber, Amsterdam | Geertjan Wielenga | 3,942 |
| Secure your API with these 16 Practices with Apache APISIX – part 2 | Nicolas Frankel | 3,711 |
| Secure your API with these 16 Practices with Apache APISIX - part 1 | Nicolas Frankel | 3,654 |
| TornadoInsight: Harness the Power of TornadoVM from IntelliJ IDEA | Thanos Stratikopoulos | 5,624 |
| Payara Cloud Hackathon is Open for Sign-ups! | Jadon Ortlepp | 4,588 |
| Hello eBPF: First steps with libbpf (5) | Johannes Bechberger | 6,093 |
| Microservices Design Principles | Muaath Bin Ali | 12,898 |
| Why I moved my blog to RIFE2 after 23 years? | Erik Thauvin | 9,798 |
| Foojay Podcast #44: Quarkus Club | Frank Delporte, Igor De Souza | 5,206 |
| JavaFX Links of February 2024 | Frank Delporte | 4,369 |
| Builders, Withers, and Records - Java’s path to immutability | Jonathan Vila | 14,038 |
| You’re Invited to IntelliJ IDEA Conf 2024! | Irina Maryasova | 5,412 |
| Foojay Podcast #43: Modern Java Testing | Frank Delporte, Roni Dover | 7,103 |
| Hello eBPF: Tail calls and your first eBPF application (4) | Johannes Bechberger | 6,948 |
| foojay – 12 Lessons Learned From Doing The 1BRC Challenge | Anthony Goubard | 20,517 |
| Cloud Cost Optimization Is Hard, Java Can Help | Simon Ritter | 6,913 |
| Hardening Apache APISIX with the OWASP's Coraza and Core Ruleset | Nicolas Frankel | 5,066 |
| Flexible Jakarta EE Apps With Apache CouchDB NoSQL Database | Jadon Ortlepp | 6,087 |
| Video: Spring Boot Testcontainers Support for Local Development | Simon Martinelli | 5,860 |
| State of Open (Source?!) and Free AI | Soham Dasgupta | 6,281 |
| Java top most detected issues | Jonathan Vila | 11,159 |
| Minimize costs utilizing the cloud with Spring-Data-Eclipse-Store | Johannes Rabauer | 7,504 |
| DTrace Revisited: Advanced Debugging Techniques | Shai Almog | 5,417 |
| Is JDWP's onjcmd feature worth using? | Johannes Bechberger | 5,012 |
| Evolution of Microservices & SOA -- the Architectural Landscape | Muaath Bin Ali | 8,988 |
| Kicking the Tires of Docker Scout | Nicolas Frankel | 5,483 |
| foojay – Sorting Text in Java | Anthony Goubard | 8,157 |
| Migrate to Spring Boot 3.2 with OpenRewrite | Mahendra Rao B | 17,092 |
| Foojay Podcast #42: Jozi-JUG and Cape Town Java Community | Frank Delporte | 5,631 |
| Hello eBPF: Recording data in event buffers (3) | Johannes Bechberger | 5,558 |
| Achieving High Throughput Without Sacrificing Latency | George Ball | 10,622 |
| JavaFX Links of January 2024 | Frank Delporte | 5,811 |
| Video: Spring Boot Docker Compose Support | Simon Martinelli | 6,772 |
| Building gdocweb with Java 21, Spring Boot 3.x and Beyond | Shai Almog | 7,370 |
| Friends Of OpenJDK Hangout at FOSDEM 2024 | Geertjan Wielenga | 4,576 |
| Foojay Podcast #41: Web Development with Java | Frank Delporte, Marcus Hellberg | 5,225 |
| Book review: "Tidy first?" | Simon Verhoeven | 5,823 |
| Java Flight Recording and Analysis with Azul Mission Control | Frank Delporte | 9,430 |
| Microservices Architecture: Navigating the Buzz | Jasmine Taylor | 5,932 |
| MariaDB Java Connector, Benchmark, and Java 21 virtual threads | Diego Dupin, Pieter Humphrey | 6,010 |
| Controlling LED Strips with Java and JBang | Frank Delporte | 5,781 |
| API Versioning | Nicolas Frankel | 5,737 |
| Soft Assertions - testing kindly | Simon Verhoeven | 8,397 |
| Hello eBPF: Recording data in basic eBPF maps (2) | Johannes Bechberger | 5,100 |
| A Day in the Life of a Software Engineer in a Scrum Team Part-2 | Muaath Bin Ali | 4,143 |
| Payara Platform Roadmap 2024 | Jadon Ortlepp | 3,948 |
| Where do you get your Java? | Rich Hagarty | 11,584 |
| 2023 Software Conferences in the Philippines | Tristan Mahinay | 4,412 |
| 2023 in Retrospective | Nicolas Frankel | 2,565 |
| Foojay Podcast #40: Making Java Attractive for Beginners in Programming | Deepu K Sasidharan, Frank Delporte, Matt Raible | 5,162 |
| JUG PH Meetup 4 and 5 Report | Tristan Mahinay | 3,414 |
| Journey of a Java Champion: Bert Jan Schrijver's Path to Mastery and Community Leadership | A N M Bazlur Rahman | 6,208 |
| Hello eBPF: Developing eBPF Apps in Java (1) | Johannes Bechberger | 7,689 |
| Effective cloud-native Java dev in Eclipse IDE with Open Liberty | Grace Jansen | 5,882 |
| Interview with Gokul Chandrasekaran, the creator of JDoodle | Frank Delporte | 5,082 |
| Looking Back on One Year of Speaking and Blogging | Johannes Bechberger | 4,157 |
| Unlocking Scrum: A Software Engineer's Journey - Part 1 | Muaath Bin Ali | 6,305 |
| (Semantic) Versioning your Java libraries | Jago de Vreede | 14,170 |
| Playing with WASM on Docker | Nicolas Frankel | 3,256 |
| Foojay Podcast #39: Java Dominicano | Frank Delporte | 5,062 |
| JavaFX Links of December 2023 | Frank Delporte | 4,258 |
| Securing Symmetric Encryption Algorithms in Java | Brian Vermeer | 7,323 |
| Using AI to Create JFR Event Descriptions | Johannes Bechberger | 5,724 |
| When Should we Move to Microservices? | Shai Almog | 5,920 |
| Durable Subscription with JMS and Spring Boot | Simon Martinelli | 8,652 |
| Revolutionising Java Collections: The Advent of Sequenced Collections in Java 21 | Jadon Ortlepp, Luqman Saeed | 7,539 |
| Foojay Podcast #38: Java in the Cloud | Frank Delporte, Grace Jansen | 5,621 |
| Five Apache Projects You Probably Haven't Heard Of (Yet) | Nicolas Frankel | 10,458 |
| Book Review: Modern Frontends with htmx | Frank Delporte | 4,933 |
| Handling security vulnerabilities in Spring Boot | Brian Vermeer | 7,741 |
| lntelliJ IDEA: Selectively Commit Changes to a File | Marit van Dijk | 6,478 |
| Writing C Code in Java | Johannes Bechberger | 9,998 |
| Canary Releases with Apache APISIX | Nicolas Frankel | 3,936 |
| Foojay Podcast #37: J-Fall Report, Part 4 (final) | Frank Delporte | 4,813 |
| Book Review: The Software Engineer's Guidebook | Mahendra Rao B | 7,280 |
| Integrate executable Java code in your blog posts, part 2: How to use dependencies | Frank Delporte | 4,244 |
| Profiling Maven Projects with my IntelliJ Profiler Plugin | Johannes Bechberger | 5,115 |
| FEPCOS-J: Native executables of Java-coded networked systems | Gerhard Fuchs | 5,383 |
| [Unit] Testing Supabase in Kotlin using Test Containers - PART 2 | Julien Lengrand-Lambert | 5,029 |
| Testing Spring Boot JMS with ActiveMQ Artemis and Testcontainers | Simon Martinelli | 13,898 |
| Foojay Podcast #36: J-Fall Report, Part 3 | Frank Delporte | 4,796 |
| Creating Executables For JavaFX Applications | Heshan Thenura Kariyawasam | 12,804 |
| Chopping the monolith in a smarter way | Nicolas Frankel | 3,375 |
| Who Killed the JVM? Attaching a Debugger Twice | Johannes Bechberger | 4,777 |
| Couch to fully-observed code with Spring Boot 3.2, Micrometer Tracing, and Digma | Jonatan Ivanov, Roni Dover | 6,014 |
| Effective cloud native development with Open Liberty in VS Code | Grace Jansen | 6,319 |
| Foojay Podcast #35: Dublin JUG | Frank Delporte | 4,396 |
| Virtual Event: JetBrains AI Launch Event | Marit van Dijk | 4,329 |
| The Theory of Debugging | Shai Almog | 5,099 |
| Exploring the OpenTelemetry Collector | Nicolas Frankel | 4,215 |
| Video: Vaadin Drag & Drop Support. It's so easy! | Simon Martinelli | 4,433 |
| Strategies for Managing State in Chronicle Services | George Ball | 5,063 |
| JavaFX Links of November 2023 | Frank Delporte | 3,929 |
| Custom Events in the Blocky World: Using JFR in Minecraft | Johannes Bechberger | 4,509 |
| Webinar: Harnessing the Power of AI Assistant in IntelliJ IDEA | Marit van Dijk | 3,275 |
| SpringBoot 3.2 + CRaC | Gerrit Grunwald | 50,452 |
| Foojay Podcast #34: J-Fall Report, Part 2 | Frank Delporte | 4,965 |
| Custom JFR Events: A Short Introduction | Johannes Bechberger | 6,494 |
| Java for desktop applications: Tips and Tricks (Part 1) | Christopher Schnick | 10,065 |
| Video: "If I decide to stay with Oracle Java what issues will I face?" | Gerrit Grunwald, Simon Ritter | 4,432 |
| Feedback from calling Rust from Python | Nicolas Frankel | 2,506 |
| Announcing the Build Server for Gradle Open-Source Repository | Nick Zhu | 3,814 |
| Explore project structure with IntelliJ IDEA's Dependency Matrix | Marit van Dijk | 3,936 |
| Foojay Podcast #33: J-Fall Report, Part 1 | Frank Delporte | 5,590 |
| Unexpected Things That Make You a Senior Developer | Frank Delporte, Marit van Dijk | 6,813 |
| Preserving Software Continuity: Empowering Failover Strategies for Uninterrupted Operations | Rob Austin | 3,605 |
| Patterns For The Design Of Microservices – Part 3 | Mahendra Rao B | 5,792 |
| [Unit] Testing Supabase in Kotlin using Test Containers | Julien Lengrand-Lambert | 6,258 |
| Live (re)compile, (re)load, (re)execute Java code in 100 LoC | Anthony Goubard | 5,806 |
| Loom is just HyperThreading in Java | Johannes Bechberger | 7,360 |
| Digma, Apache APISIX, and OpenValue: Foojay.io at JFall 2023 | Geertjan Wielenga | 3,465 |
| Payara Platform Surpasses 150,000 Monthly Users | Jadon Ortlepp, Luqman Saeed, Priya Khaira-Hanks | 3,360 |
| OpenAPI Generator: From YAML to JetBrains HTTP Client | Julien Lengrand-Lambert | 10,190 |
| Integrate executable Java code in your blog posts | Frank Delporte | 5,037 |
| How to find dead code in your Java services | Jakob Löhnertz, Sander Mak | 9,320 |
| Foojay Podcast #32: Philippines JUG | Frank Delporte | 5,743 |
| Generative AI and Java - hype or urgent reality? | Steve Poole | 3,836 |
| Python "magic" methods - part 2 | Nicolas Frankel | 2,721 |
| Python "magic" methods - part 1 | Nicolas Frankel | 2,595 |
| Putting JFR into Context | Johannes Bechberger | 3,672 |
| GlassFish Embedded - a simple way to run Jakarta EE apps | Ondro Mihalyi | 5,615 |
| Controlling JIT Compiler Overhead to Avoid CPU Autoscaling | Jiří Holuša, Matt Van Order | 5,456 |
| JavaFX Links of October 2023 | Frank Delporte | 2,876 |
| Everything Bad in Java is Good for You | Shai Almog | 7,632 |
| Elevating Java in Visual Studio Code: New Build Server for Gradle | Nick Zhu | 7,486 |
| Patterns For The Design Of Microservices – Part 2 | Mahendra Rao B | 7,359 |
| Book review: "Persistence Best Practices for Java Applications" | Simon Verhoeven | 18,770 |
| JDWP, onthrow and a mysterious error | Johannes Bechberger | 3,374 |
| Navigating Behaviour with Events | George Ball | 4,439 |
| Java 21 - JEP 445 - Unnamed Classes and Instance Main Methods | Frank Delporte | 4,743 |
| Payara Makes a Splash at Devoxx Belgium 2023 | Jadon Ortlepp | 2,845 |
| Resizing images on-the-fly | Nicolas Frankel | 2,871 |
| Start using Java 21 in your apps on Open Liberty 23.0.0.10 | Laura Cowen | 4,568 |
| Book review: “Developing Apps with GPT-4 and ChatGPT” | Simon Verhoeven | 14,067 |
| Domain-Deadline-Dog-Driven Development | Frank Delporte | 4,938 |
| Not a Single Trace | Shai Almog | 3,644 |
| Beyond Pass/Fail- a Modern Approach to Java Integration Testing | Roni Dover | 6,372 |
| New: JDKMonitor | Gerrit Grunwald | 5,845 |
| The Files in JDK 21 | Anthony Goubard | 9,595 |
| Level-up your Java Debugging Skills with on-demand Debugging | Johannes Bechberger | 8,561 |
| Foojay Podcast #31: Report of Devoxx 23 in Belgium | Frank Delporte | 3,609 |
| Book review: "Get Your Hands Dirty on Clean Architecture - Second Edition" | Simon Verhoeven | 16,311 |
| FEPCOS-J (2) – Declaratively compose networked systems in Java | Gerhard Fuchs | 4,889 |
| State of the Software Supply Chain Report: Key Takeaways for Java Developers | Steve Poole | 5,652 |
| Send Your Logs To Loki | Nicolas Frankel | 3,731 |
| Changes Included in the Stable release 23.08 of Azul Zulu Prime Builds of OpenJDK | Frank Delporte, Matt Van Order | 3,505 |
| Patterns For The Design of Microservices | Mahendra Rao B | 6,983 |
| Diagnose and Mitigate Pinning in Java's Virtual Thread Execution | A N M Bazlur Rahman | 14,780 |
| Debugging Tips and Tricks: A Comprehensive Guide | Shai Almog | 3,447 |
| Java 21 and Jakarta EE 11: A New Era of Cloud Native Java | Jadon Ortlepp, Luqman Saeed | 4,840 |
| OpenJDK Migration Book Review | Johan Janssen | 2,717 |
| Contributing to Foojay's Java Community Certification | Jan-Hendrik Kuperus | 3,348 |
| Spring Boot and React in Harmony | Tarek Oraby | 4,312 |
| Contributing to Open Source: Hacktoberfest | Simon Verhoeven | 3,606 |
| Released: JVector 1.0 | Jonathan Ellis | 12,927 |
| Report of My Trip to JavaZone and Northern Germany | Johannes Bechberger | 3,567 |
| Foojay Podcast #30: UtrechtJUG | Frank Delporte, Hanno Embregts | 3,699 |
| JavaFX Links of September 2023 | Frank Delporte | 3,837 |
| Web Crawling in Java: Classical Threads and Virtual Threads | A N M Bazlur Rahman | 9,888 |
| C2 Might Be Slowing Down Your Builds | Johannes Bechberger | 5,016 |
| The Systemic Process of Debugging | Shai Almog | 3,259 |
| Memory Management in Java: An Introduction | Jasmine Taylor | 26,662 |
| Down the Rabbit Hole of an Apache APISIX Plugin | Nicolas Frankel | 2,394 |
| How do software companies give away stuff for free? | Jamie Coleman | 7,702 |
| Visit Azul at Devoxx! | Simon Ritter | 2,665 |
| Foojay Podcast #29: How will AI and ML Influence the Role of Developers? | Frank Delporte | 4,044 |
| Book Review: Get Your Hands Dirty on Clean Architecture | Mahendra Rao B | 17,016 |
| Mastering the Challenges of OpenJDK Migration. | Mark Clarke | 3,951 |
| Eliminating Bugs Using the Tong Motion Approach | Shai Almog | 2,951 |
| New FXComponents Library Released | Pedro Duque Vieira | 3,624 |
| Using JLink to create smaller Docker images for Spring Boot apps | Brian Vermeer | 7,177 |
| Monkey-patching in Java | Nicolas Frankel | 6,126 |
| Manage Different Java Versions on Your Machine with SDKMan! | Jadon Ortlepp, Luqman Saeed | 9,035 |
| Exploring the Impact of Stack Size on JVM Thread Creation: A Myth Debunked | A N M Bazlur Rahman | 14,583 |
| Java 21 Is Available Today, And It's Quite The Update | Hanno Embregts | 34,632 |
| Foojay Podcast #28: Java 21 Has Arrived! | Frank Delporte, Mohamed Taman, Simon Ritter | 8,258 |
| Exposing your data using Spring GraphQL | Simon Verhoeven | 10,347 |
| New User Interface for JFX Central, the Home for JavaFX – Part 2 | Frank Delporte | 3,128 |
| New User Interface for JFX Central, Home for JavaFX - Part 1 | Frank Delporte | 4,138 |
| Book Review: "OpenJDK Migration for Dummies" | Deepu K Sasidharan | 3,550 |
| Book Review: "Java Basics", by Shai Almog | Geertjan Wielenga | 4,490 |
| Review: OpenJDK Migration for Dummies | Josh Juneau | 2,886 |
| Building Real-Time Applications to Process Wikimedia Streams | Fawaz Ghali | 5,492 |
| System Architecture: Move Authentication to the API Gateway | Nicolas Frankel | 4,806 |
| Extending availability of IBM Semeru Runtimes V11 beyond Oct 2024 | Laura Cowen | 4,662 |
| ArchUnit - test your architecture | Simon Verhoeven | 11,816 |
| OpenRewrite: Automatic Code Refactoring and More - Part 2 | Mahendra Rao B | 8,540 |
| Chronicle Services: Building Fast Microservices with Java | George Ball | 6,363 |
| 5 Ways to Identify and Manage Flaky Tests | Trisha Gee | 4,255 |
| The DiscoAPI Helps You To Find Any OpenJDK Distribution | Frank Delporte | 9,400 |
| The Evolution of Bugs | Shai Almog | 6,256 |
| New JavaFX theme library "Transit" released | Pedro Duque Vieira | 6,670 |
| A Look at Sealed Classes, Pattern Matching, Functional Paradigms | A N M Bazlur Rahman | 7,028 |
| Gerrit and Ivar's North America JUG Tour! | Gerrit Grunwald | 3,038 |
| Spring's new JdbcClient API for performing database operations | Siva Katamreddy | 9,980 |
| Load testing - shoot your application with Gatling | Simon Verhoeven | 11,803 |
| Ops friendly Apache APISIX | Nicolas Frankel | 3,170 |
| OpenRewrite: Automatic Code Refactoring and Maintenance | Mahendra Rao B | 15,396 |
| JUG PH Continuation Report 2023 | Tristan Mahinay | 3,856 |
| Foojay Podcast #27: Chicago JUG and KUG | Frank Delporte, Mary Grygleski | 4,263 |
| Unlocking Java Wisdom: A Conversation with Oracle ACE Simon Martinelli | A N M Bazlur Rahman | 10,388 |
| Book review: "OpenJDK Migration for Dummies" | Simon Verhoeven | 3,355 |
| It's 2AM Do you Know What Your Code is Doing? | Shai Almog | 3,019 |
| JavaFX Links of August 2023 | Frank Delporte | 2,882 |
| Azul Enhances ReadyNow to Solve Java’s Warmup & Cloud Costs | John Ceccarelli | 3,187 |
| Spring 6.1 - RestClient | Simon Verhoeven | 11,302 |
| Spring Boot Configuration for Docker Images with Azul Zulu | Frank Delporte | 4,881 |
| Testable Code: A Journey Through Consideration and Refactoring | A N M Bazlur Rahman | 4,960 |
| Three Key Elements for Your Flaky Test Remediation Approach | Trisha Gee | 3,698 |
| Create a Spring Boot Application to Retrieve Data from Evernote | Jennifer Reif | 6,219 |
| Spring Boot: local development enhancements, let's compose! | Simon Verhoeven | 6,817 |
| Well Worth My Time: "OpenJDK Migration for Dummies" | Tom Wheeler | 3,643 |
| Debugging as a Process of Isolating Assumptions | Shai Almog | 3,065 |
| Exploring File Storage Solutions in Spring Boot | A N M Bazlur Rahman | 21,903 |
| Introduction to the Tower Library | Nicolas Frankel | 2,564 |
| Local Development Made Simpler with Testcontainers Desktop app | Siva Katamreddy | 9,502 |
| AI-based Images generation with Quarkus and OpenAI DALL.E | Antonio Perrone | 5,753 |
| Is OpenJDK Just a Drop-In Replacement? | Shai Almog | 5,091 |
| Taming the Bias: Unbiased Safepoint-Based Stack Walking | Johannes Bechberger | 4,050 |
| Thread-Safe Counter in Java: A Comprehensive Guide | A N M Bazlur Rahman | 38,168 |
| Building High-Performance Java Microservices with EDA | Rob Austin | 7,915 |
| Pitest: Do You Test Your Tests? | Simon Verhoeven | 9,335 |
| My Final Take on Gradle (vs. Maven) | Nicolas Frankel | 8,039 |
| Can't Reproduce a Bug? | Shai Almog | 4,772 |
| Pi4J Operating System for Java development on Raspberry Pi | Frank Delporte | 5,377 |
| Working with GitLab Merge Requests in IntelliJ IDEA | Marit van Dijk | 8,972 |
| AsyncGetCallTrace Reworked: Frame by Frame Iterative Touch! | Johannes Bechberger | 4,872 |
| Observing Java on Docker Compose Using OpenTelemetry | Roni Dover | 7,608 |
| Sealed Interfaces & Pattern Matching: Java's Modern Capabilities | A N M Bazlur Rahman | 13,510 |
| OpenRewrite: we all grow older, but do our projects really have to? | Simon Verhoeven | 12,307 |
| Starting Apache Kafka on Java 8, Win 10 | Sumith Puri | 8,910 |
| Book Review: "OpenJDK Migration for Dummies" | A N M Bazlur Rahman | 10,986 |
| Temperature, humidity, and pressure in BME280 Sensors with Java | Frank Delporte | 5,762 |
| Preparing for JDK 21: A Comprehensive Overview of Key Features and Enhancements | A N M Bazlur Rahman | 11,700 |
| The Inner Workings of Safepoints | Johannes Bechberger | 9,686 |
| Book Review: "Designing APIs with Swagger and OpenAPI" | Nicolas Frankel | 4,060 |
| Book Announcement: "OpenJDK Migration Guide for Dummies" | Geertjan Wielenga | 6,394 |
| Java on Visual Studio Code – July 2023 | Nick Zhu | 9,209 |
| Starting Apache Kafka v3.4 on Win 10 | Sumith Puri | 7,764 |
| JavaFX Links of July 2023 | Frank Delporte | 3,709 |
| Evaluating Apache APISIX vs. Spring Cloud Gateway | Nicolas Frankel | 4,721 |
| The IKEA Effect | Peter Lawrey | 4,654 |
| Real-time Stream Processing with Hazelcast and Redpanda | Dunith Danushka, Fawaz Ghali | 7,121 |
| Busting Myths, Building Futures: A Conversation with Cay Horstmann on Java and Machine Learning | A N M Bazlur Rahman | 8,190 |
| Getting Started With Apache Camel On Jakarta EE 10 | Jadon Ortlepp, Luqman Saeed | 3,142 |
| Building for Failure: Best Practices for Easy Production Debugging | Shai Almog | 5,259 |
| Build Rot: The Hidden Technical Debt in Maven and Gradle Builds | Brian Demers | 7,517 |
| SnakeYaml 2.0: Solving the unsafe deserialization vulnerability | Brian Vermeer | 8,536 |
| How we developed the Eclipse OpenJ9 CRIU Support for fast Java start-up | Younes Manton | 12,482 |
| How to Create an Open Source Pull Request (PR) | Marit van Dijk | 6,164 |
| JDK Safari: How To Find Hidden Tools in the JDK | Thomas Darimont | 8,129 |
| Dive into the OpenJDK: Top 10 Reads on Foojay.io | A N M Bazlur Rahman | 4,692 |
| Effective Coding with Java Observability | Roni Dover | 19,828 |
| GraphQL, JavaScript, Preprocessor, SQL and more in Manifold | Shai Almog | 2,423 |
| Reactive Database Access on the JVM | Nicolas Frankel | 3,793 |
| I could write a blog post, or... | Johannes Bechberger | 2,693 |
| How to Share Your Work With a Video or Podcast | Frank Delporte, Shai Almog | 3,827 |
| Reactive Programming Made Easy | Irina Mariasova | 6,780 |
| Journeys in Java, Level 10: Service Discovery with Eureka | Jennifer Reif | 9,823 |
| Enterprise Java Applications With Jakarta EE and Vaadin | Jadon Ortlepp, Luqman Saeed | 4,412 |
| Charting the Course of Java: An Insightful Conversation with Java Champion, Sebastian Daschner | A N M Bazlur Rahman | 5,944 |
| Dissection of Joeffice: Open Source Office Suite in Java | Anthony Goubard | 30,694 |
| Java on Visual Studio Code – June 2023 | Nick Zhu | 3,726 |
| Sticky sessions with Apache APISIX - the demo | Nicolas Frankel | 2,261 |
| Sticky sessions with Apache APISIX | Nicolas Frankel | 3,000 |
| The Evolution of Java: Challenging Stereotypes and Embracing Modernity | A N M Bazlur Rahman | 11,982 |
| Understanding Security Vulnerabilities: Preventing Attacks | Shai Almog | 5,206 |
| Billions of Messages Per Minute Over TCP/IP | George Ball | 4,528 |
| Exploring the Depths of Java: A Comprehensive Conversation with Jakob Jenkov, Part-II | A N M Bazlur Rahman | 6,596 |
| Running a CRaC Java application on Raspberry Pi | Frank Delporte | 4,420 |
| A Dissection of Java JDBC to PostgreSQL, Part 2: Batching | Frits Hoogland | 22,475 |
| Seven Reasons You Should Not Ignore Flaky Tests | Trisha Gee | 5,397 |
| Foojay Status Report: July 2023 | Geertjan Wielenga | 4,708 |
| Working on An Unfamiliar Codebase | Nicolas Frankel | 3,322 |
| JavaFX Links of June 2023 | Frank Delporte | 2,712 |
| The Curious Case of Different Runtimes | René Schwietzke | 4,221 |
| Exploring the Depths of Java: A Comprehensive Conversation with Jakob Jenkov, Part-I | A N M Bazlur Rahman | 6,247 |
| Optimise CPU Performance Through Isolation and System Tuning | Peter Lawrey | 6,824 |
| Time Machine: A Look-Back at Java Sessions from NODES 2022 | Jennifer Reif | 4,246 |
| Upgrade to Jakarta EE 10 and GlassFish 7: Easier Than You Think! | Ondro Mihalyi | 5,008 |
| Debugging OpenJDK Tests in VSCode (Without Losing Your Mind) | Johannes Bechberger | 5,304 |
| Foojay Podcast #26: The Future of Source Control and CI/CD | Frank Delporte, Hanno Embregts, Trisha Gee | 5,852 |
| Why I prefer trunk-based development | Trisha Gee | 19,474 |
| Introducing the Foojay.io Calendar API | Slava | 3,821 |
| Building Custom Solutions vs. Buy-and-Build Software | Rob Austin | 3,676 |
| Exploring Java 21's Intriguing Additions (Part 1) | A N M Bazlur Rahman | 9,557 |
| Manifold vs. Lombok: Enhancing Java with Property Support | Shai Almog | 6,391 |
| Foojay Podcast #25: Game Development with Java, JavaFX, FXGL | Almas Baimagambetov, Chengen Zhao, Frank Delporte, Gerrit Grunwald | 8,392 |
| Johannes Bechberger's Tour d'Europe | Johannes Bechberger | 2,987 |
| The Anatomy of a JVM | Frank Delporte | 9,432 |
| Vaadin 24.1: Bringing You More Than Minor Improvements! | Sami Ekblad | 5,517 |
| Exploring Java Records In A Jakarta EE Context | Jadon Ortlepp, Luqman Saeed | 5,167 |
| Unique Identifiers Based on Timestamps in Distributed Applications | Peter Lawrey | 7,315 |
| Java on Visual Studio Code – May 2023 | Nick Zhu | 5,001 |
| GitLab Pages Preview | Nicolas Frankel | 3,599 |
| Breaking the Code: How Chris Newland is Changing the Game in JVM Performance! | A N M Bazlur Rahman, Chris Newland | 9,483 |
| Operator Overloading in Java | Shai Almog | 5,091 |
| Preventing Cross-Site Scripting (XSS) in Java with Snyk Code | Brian Vermeer | 5,743 |
| Upgrade a Java 8 Project to 11 or Higher | Frank Delporte | 4,092 |
| Neo4j's Online Conference Is Coming In October... | Jennifer Reif, Yolande Poirier | 3,188 |
| Friends Of OpenJDK Community Survey | Steve Poole | 2,541 |
| Cracking Code and Conventions: An Exclusive Interview with Nicolas Fränkel | A N M Bazlur Rahman | 5,846 |
| Foojay Podcast #24: BeJUG, BruJUG, and how Devoxx was born | Frank Delporte, Tom Cools | 4,422 |
| Class Loader Hierarchies | Johannes Bechberger | 8,984 |
| Java String Templates Today | Shai Almog | 4,717 |
| FP in Kotlin: Defining a Pipe Operator | Tobias Briones | 4,962 |
| Java is Very Fast, If You Don’t Create Many Objects | Peter Lawrey | 8,418 |
| Resilience in Coding: Miro Wengner on Thriving in the Software Industry | A N M Bazlur Rahman | 6,681 |
| JavaFX Links of May 2023 | Frank Delporte | 3,066 |
| Boosting Similarity Search with Real-time Stream Processing | Fawaz Ghali | 3,695 |
| Managing Data Residency: The Demo | Nicolas Frankel | 2,766 |
| Revolutionize JSON Parsing in Java with Manifold | Shai Almog | 4,843 |
| Your First Vaadin Spring Application in 2023 | Sami Ekblad | 4,772 |
| JavaFinder: Keeping Track of Java Inventories | Gerrit Grunwald | 5,334 |
| Rolling Binary Trees: A Guide to Common Design Patterns in Java | George Tanev | 12,827 |
| "Transitioning to Java": My First Book! | Ken Fogel | 30,258 |
| JConf Toronto 2023 and the Dawn of a New Era of Concurrency | A N M Bazlur Rahman | 3,425 |
| Foojay Developer Certification: Measure Skills! | Roy Wasse | 5,611 |
| An Industry Expert's Guide to Thriving in Software Development and Security | A N M Bazlur Rahman | 5,102 |
| State of Java Survey | Geertjan Wielenga | 6,217 |
| Announcing the Digma Beta: First Runtime Linter for Java Code | Roni Dover | 6,182 |
| Foojay Podcast #23: Java Profiling and Performance | Frank Delporte, Marcus Hirt | 5,382 |
| FinOps: Tim O'Brien at Walmart | Geertjan Wielenga | 2,618 |
| Unlocking Reproducible Profiler Tests | Johannes Bechberger | 4,558 |
| Enriching Kafka Applications with Contextual Data | Fawaz Ghali | 4,040 |
| Using Pausers in Event Loops | Peter Lawrey | 3,251 |
| Write Once, Run Embedded in any IDE | Anthony Goubard | 5,960 |
| Reduce Java Application Startup and Warmup Times with CRaC | Pavel Petroshenko | 17,602 |
| Announcing "Java Unscripted: An Asynchronous Exploration of Excellence | A N M Bazlur Rahman | 4,729 |
| Managing Data Residency: Concepts & Theory | Nicolas Frankel | 3,720 |
| Discovering the Secrets to Success: An Exclusive Interview with Michael | A N M Bazlur Rahman | 5,676 |
| Monitoring Event Loops for Blockages | Jerry Shea | 3,250 |
| Logging Best Practices Revisited | Shai Almog | 4,363 |
| Foojay Podcast #22: When Profession and Fun Overlap | Frank Delporte, Igor De Souza | 4,930 |
| FinOps: John Stuart at Azul | Geertjan Wielenga | 1,996 |
| A Dissection of Java JDBC to PostgreSQL Connections | Frits Hoogland | 34,746 |
| Analyzing dependencies in IntelliJ IDEA | Marit van Dijk | 14,074 |
| TornadoVM: Code Interoperability Mode | Thanos Stratikopoulos | 4,248 |
| Tuning Java Applications for Low Latency on Linux | George Ball | 6,307 |
| A Comprehensive Guide to Java Virtual Threads (Part 1) | A N M Bazlur Rahman | 18,569 |
| Unconventional Remote Process Control in Java | Christopher Schnick | 9,867 |
| Interview with Paul Kocian aka Orango_Mango | Frank Delporte | 3,776 |
| Spring Boot Debugging with Aspect-Oriented Programming (AOP) | Shai Almog | 7,010 |
| Using Async-Profiler and Jattach Programmatically with AP-Loader | Johannes Bechberger | 8,874 |
| The Unix Philosophy for Low Latency | Jerry Shea | 7,467 |
| Hidden and Not-So-Hidden Gems In Java 20 | Mohamed Taman | 7,601 |
| Timefold is the fork of OptaPlanner | Geoffrey De Smet | 8,554 |
| Leverage the Richness of HTTP Status Codes | Nicolas Frankel | 6,504 |
| Foojay Podcast #21: Brazil SouJava | Frank Delporte | 4,103 |
| JavaFX Links of April 2023 | Frank Delporte | 3,791 |
| The Basis of Virtual Threads: Continuations | Hüseyin Akdoğan | 22,641 |
| Developer vs. ChatGPT Part I: Writing a Spring Boot Microservice | Roni Dover | 14,651 |
| Creating Scalable OpenAI GPT Applications in Java | Denis Magda | 43,571 |
| Approaches to Durability in Low Latency Messaging Queues | Peter Lawrey | 7,385 |
| FEPCOS-J (1) – Description, Impression of Usage, Current State | Gerhard Fuchs | 4,570 |
| Couldn’t we just Use AsyncGetCallTrace in a Separate Thread? | Johannes Bechberger | 4,686 |
| Relearning Java Thread Primitives | Shai Almog | 10,062 |
| Foojay Podcast #20: Functional Programming: "The Good, the Bad, and the Ugly" | Alejandro Serrano, Deepu K Sasidharan, Frank Delporte, Ties van de Ven | 4,802 |
| Fearless Distroless | Nicolas Frankel | 4,362 |
| How to Automatically Create Microservices Architecture Diagrams | Jasmine Taylor | 14,465 |
| Java User Group PH Revitalization Report 2023 | Tristan Mahinay | 4,286 |
| A Java Library’s New Approach To Observability | Roni Dover | 9,105 |
| Foojay Podcast #19: Working Free For Fun Brings Fame & Fortune | Frank Delporte, Lukas Eder, Maarten Mulders, Tim te Beek | 6,478 |
| Boldness in Refactoring! | Shai Almog | 4,969 |
| Replacing Postman with the Jetbrains HTTP Client | Julien Lengrand-Lambert | 10,765 |
| Chronicle FIX: Much More Than a Quick Fix | Jerry Shea | 5,841 |
| Getting Started With Jakarta EE 10 - Jakarta REST | Jadon Ortlepp | 6,297 |
| Hidden Beauties of Java Enums | Frank Delporte | 7,793 |
| Introducing Bld: A New Pure Java Build System | Geert Bevin | 20,938 |
| My First Firefox Extension | Nicolas Frankel | 3,444 |
| Unlocking Java Secrets with Frank Delporte Foojay.io Today | A N M Bazlur Rahman | 5,553 |
| Time Zone and Currency Database in JDK | Frank Delporte | 8,754 |
| Instrumenting Java Code to Find and Handle Unused Classes | Johannes Bechberger | 11,685 |
| How Not To Skip A Message Even If Your Data Centre Fails | Forough Goudarzi | 5,370 |
| Cherry-Pick: Move a Commit to a Different Branch | Marit van Dijk | 8,593 |
| DevOps For Developers: Continuous Integration, GitHub Actions | Shai Almog | 4,167 |
| Unlocking the Secrets to a Successful Software Engineering Career: An Interview with Otavio Santana | A N M Bazlur Rahman | 6,940 |
| Foojay Podcast #18: Atlanta JUG and DevNexus | Frank Delporte | 4,308 |
| Analyzing & Tuning Warm-up: Azul Zulu Prime Builds of OpenJDK | Frank Delporte, Matt Van Order | 7,004 |
| Coroutines on the RaspberryPi (Pi4J-Kotlin) | Muhammad Hashim | 5,722 |
| JavaFX Links of March 2023 | Frank Delporte | 3,192 |
| My Evaluation of the Scaleway Cloud Provider | Nicolas Frankel | 3,466 |
| Writing a Profiler in 240 Lines of Pure Java | Johannes Bechberger | 9,610 |
| Debate on the Future of Java and Kotlin on Foojay.io Today | A N M Bazlur Rahman | 3,606 |
| Chronicle Wire: Object Marshalling | Jasmine Taylor | 5,168 |
| Getting started with OpenAPI Generators: tips and tricks | Julien Lengrand-Lambert | 10,451 |
| Ingesting Data from Kafka into the QuestDB time-series database | Javier Ramirez | 8,274 |
| Navigating the Challenges of Modern Software Development: An Exclusive Interview with Shai Almog | A N M Bazlur Rahman | 10,667 |
| Using Bots to Keep Dependencies Updated | Marit van Dijk | 10,847 |
| Foojay Podcast #17: Execute Java Code with TornadoVM | Erik Costlow, Frank Delporte, Jakob Jenkov, Thanos Stratikopoulos | 5,825 |
| Watch Area and Renderers | Shai Almog | 2,208 |
| Control your Arduino with Spring | Igor De Souza | 7,997 |
| How to Build and Deploy a Real-time Cloud-based Logging System | Fawaz Ghali | 4,772 |
| Failover Client with the Hazelcast Viridian Serverless | Fawaz Ghali | 3,495 |
| Java Security: Log4J, the SecurityManager, and Funding | Erik Costlow | 2,989 |
| Mitigating Path Traversal Vulnerabilities in Java | Brian Vermeer | 7,275 |
| Predicting Secure Java Projects on Maven Central | Theresa Mammarella | 8,482 |
| Event-Driven Order Processing Program | Peter Lawrey | 4,845 |
| 5 Great Reasons to use jOOQ | Lukas Eder | 17,382 |
| Vaadin 24: Java 17, Jakarta EE 10, Servlet 6, Spring Boot 3 | Sami Ekblad | 8,265 |
| Java on Visual Studio Code Update | Nick Zhu | 4,386 |
| It's Java 20 Release Day! Here's What's New | Hanno Embregts | 20,411 |
| From Assembler to Chat-GPT: Steve Poole on the Shifting Landscape of Programming | A N M Bazlur Rahman | 6,579 |
| Foojay Podcast #16: Welcome to Java 20! | Frank Delporte, Miro Wengner, Simon Ritter | 6,339 |
| Book Review: "API Design Patterns" | Nicolas Frankel | 5,471 |
| How to create SBOMs in Java with Maven and Gradle | Brian Vermeer | 6,788 |
| Book review - Practical Design Patterns for Java Developers | Frank Delporte, Johannes Bechberger | 14,020 |
| Validating Java Profiling APIs | Johannes Bechberger | 4,475 |
| Comparing Map.of() and new HashMap() in Java | A N M Bazlur Rahman | 26,281 |
| Efficient Memory Mapping for Terabyte Sparse Files in Java | Peter Lawrey | 4,252 |
| How Gradle Works: Inside the Daemon | Bo Zhang | 7,787 |
| From Law Degree to Java Champion: Geertjan Wielenga on the Success of Java and Navigating the Software Industry | A N M Bazlur Rahman | 5,833 |
| Getting Started with IntelliJ IDEA | Helen Scott | 4,037 |
| DevOps for Developers - Introduction and Version Control | Shai Almog | 5,178 |
| 9 Outdated Ideas About Java | Frank Delporte | 23,061 |
| How to Get Started with the Hazelcast Viridian Serverless | Fawaz Ghali | 4,347 |
| How to Best Use Java Records as DTOs in Spring Boot 3 | Denis Magda | 16,956 |
| Java Performance: Ahead-Of-Time versus Just-In-Time | Frank Delporte | 9,351 |
| Authenticate with OpenID Connect and Apache APISIX | Nicolas Frankel | 7,682 |
| Exhaustive JUnit5 Testing: Combinations, Permutations, Products | Per Minborg | 9,957 |
| Using Bookmarks in IntelliJ IDEA | Marit van Dijk | 6,963 |
| Making SBOMs, Threats, and Modelling Them a Piece of Cake! | Dan Conn | 5,971 |
| My Adventures at ConFoo Conference in Montreal | A N M Bazlur Rahman | 3,505 |
| Foojay Podcast #15: Japan JUG | Frank Delporte | 3,580 |
| Migrating Applications to TornadoVM v0.15 (Part 2) | Thanos Stratikopoulos | 4,686 |
| Java Serialization Filtering: Prevent 0-day Security Vulnerabilities | Shai Almog | 10,120 |
| Is it Time to go Back to the Monolith? | Shai Almog | 8,132 |
| Event Driven Hello World Program | Peter Lawrey | 11,709 |
| Do you trust profilers? I once did too! | Johannes Bechberger | 6,929 |
| JavaFX Links of February 2023 | Frank Delporte | 4,252 |
| Make Your Security Policy Auditable | Nicolas Frankel | 2,539 |
| The Right Feature at the Right Place | Nicolas Frankel | 2,856 |
| 42 Practical Java Design Patterns: Builder and More | Miro Wengner | 9,244 |
| SBOMs and Software Composition Analysis │ Foojay.io | Jamie Coleman | 6,492 |
| Journeys in Java, Level 9: Docker compose all the things | Jennifer Reif | 10,113 |
| Porting an Existing JavaFX App to iOS | Gerrit Grunwald | 8,003 |
| Update or Upgrade Java... and Which Version Should You Use? | Frank Delporte | 8,190 |
| The evolution of APIs: From RESTful to Event-Driven | Hari Rangarajan | 21,487 |
| Is There a Best OS to Develop a Java Application on? | Rob Austin | 6,614 |
| How to Get Started with the Hazelcast Viridian Serverless | Fawaz Ghali | 3,006 |
| Web App Startup in 3ms with RIFE2 and GraalVM | Geert Bevin | 5,824 |
| An Introduction to Scoped Values in Java | Hüseyin Akdoğan | 15,113 |
| Java Sealed Classes: Building Robust and Secure Applications | A N M Bazlur Rahman | 18,532 |
| Foojay Podcast #14: Debugging Tools and Skills for Fun and Profit | Frank Delporte, Johannes Bechberger, Marit van Dijk, Shai Almog, Ties van de Ven | 6,189 |
| What are you Missing by Debugging in VS Code? | Shai Almog | 4,150 |
| Moving Security into the JVM | Erik Costlow | 5,510 |
| A Quick Look At Faces (JSF) 4.0 In Jakarta EE 10 | Jadon Ortlepp, Luqman Saeed | 5,857 |
| Schedule your 2038 holiday and experiment with dates in jshell! | Frank Delporte | 3,523 |
| Migrating Applications to TornadoVM v0.15 (Part 1) | Thanos Stratikopoulos | 4,202 |
| Behaviour Driven Development with Event Driven Architectures | Peter Lawrey | 4,896 |
| SBOMs: First Steps in a New Journey for Developers | Steve Poole | 5,903 |
| Null Safety: Kotlin vs. Java | Nicolas Frankel | 8,276 |
| How to Find & Fix Vulnerabilities with IntelliJ IDEA Ultimate | Marit van Dijk | 5,141 |
| Securing Admin Access to Apache APISIX | Nicolas Frankel | 2,513 |
| Remote Debugging Dangers and Pitfalls | Shai Almog | 3,569 |
| Journeys in Java, Level 8: Add MongoDB to Spring Cloud Config | Jennifer Reif | 5,308 |
| How Gradle Works: Startup | Bo Zhang | 4,461 |
| JFR Timestamps and System.nanoTime Foojay.io | Johannes Bechberger | 5,447 |
| Which is the Fastest JVM: OpenJDK or GraalVM? | Per Minborg | 30,993 |
| Getting Started with RIFE2 Java Web Framework v1.0.0 | Geert Bevin | 6,396 |
| Announcing Real-time Stream Processing Unconference | Fawaz Ghali | 3,435 |
| Foojay.io at FOSDEM 2023 Trip Report | Geertjan Wielenga | 5,123 |
| Foojay Podcast #13: Denver and Boulder JUG | Frank Delporte | 3,827 |
| Using Firefox Profiler beyond the web | Johannes Bechberger | 8,954 |
| Memory Allocation Pacing in Azul Zulu Prime builds of OpenJDK | Frank Delporte | 4,366 |
| What to Know About Garbage Collection as a Java Developer! | Frank Delporte | 10,764 |
| Memory Debugging - a Deep Level of Insight | Shai Almog | 2,624 |
| Debugging Threads and Asynchronous Code | Shai Almog | 3,716 |
| Firefox Profiler Beyond the Web: IntelliJ plugin for JFR | Johannes Bechberger | 4,399 |
| Why Core-to-Core Latency Matters | Rob Austin | 6,937 |
| How to Run a Java Application with CRaC in a Docker Container | Gerrit Grunwald | 20,426 |
| Real-time Stream Processing with Hazelcast and StreamNative | Fawaz Ghali, Tim Spann | 6,331 |
| Optional in Java: A Swiss Army Knife for Handling Nulls and Improving Code Quality | A N M Bazlur Rahman | 26,303 |
| More Foojay.io FOSDEM Speaker Predictions for 2023 | Geertjan Wielenga | 2,815 |
| Journeys in Java, Level 7: Externalize Microservice Configuration | Jennifer Reif | 5,247 |
| JavaFX Links of January 2023 | Frank Delporte | 7,394 |
| Quest for REST | Nicolas Frankel | 3,641 |
| How Java Litters Beyond the Heap: Solid-State Drives | Denis Magda | 4,739 |
| AsyncGetStackTrace: A better Stack Trace API for the JVM | Johannes Bechberger | 8,018 |
| Modular Monolithic in Practice | Tristan Mahinay | 10,779 |
| "The More You Say, the Less People Remember... | Peter Lawrey | 4,591 |
| Java Bytecode: Journey to the Wonderland (Part 3) | A N M Bazlur Rahman | 9,747 |
| Vaadin, OAuth2, and Keycloak | Simon Martinelli | 6,878 |
| Foojay Podcast #12: State and Future of the IDEs | Frank Delporte, Geertjan Wielenga, Helen Scott, Nick Zhu | 5,284 |
| Foojay.io FOSDEM Speaker Predictions for 2023 | Geertjan Wielenga | 3,252 |
| Friends Of OpenJDK Schedule at FOSDEM 2023 | Geertjan Wielenga | 4,612 |
| How Does Kafka Perform When You Need Low Latency? | Peter Lawrey | 9,001 |
| Release with JReleaser to Maven Central with GitHub Actions | Jago de Vreede | 10,968 |
| JTest: Roll Out Your Own JUnit-Like Testing Framework | Wei Lin | 4,024 |
| Foojay Podcast #11: Looking Back to 2022 | Frank Delporte | 3,974 |
| Debugging Streams and Collections | Shai Almog | 4,441 |
| The Massive Hidden Power of Breakpoints | Shai Almog | 3,514 |
| Writing a Profiler from Scratch: The Profiling Loop | Johannes Bechberger | 6,411 |
| Unsafe Deserialization Vulnerability in SnakeYaml | Brian Vermeer | 6,724 |
| Why Your Choice of JVM Matters More Than Ever | John Ceccarelli | 5,608 |
| How to Reduce Cloud Cost by 99% for EDA Kafka Applications | Per Minborg | 3,675 |
| Why Many Developers Don't Write or Give Talks | A N M Bazlur Rahman | 6,895 |
| Managing Dependencies in IntelliJ IDEA | Marit van Dijk | 8,753 |
| 2022 in Retrospective | Nicolas Frankel | 2,780 |
| New Section Added to Foojay.io: Java Quick Start | Frank Delporte | 3,554 |
| Spring Boot Annotation Reference-01/b | Sumith Puri | 6,933 |
| Building JavaFX with Gradle | Michael Gasche | 27,270 |
| What’s New in Jakarta REST 3.1 in Jakarta EE 10? | Luqman Saeed | 4,552 |
| How to Leverage Method Chaining to Add Smart Message Routing | Rob Austin | 4,195 |
| Foojay Podcast #10: JUG World Tour: Dubai JUG | Frank Delporte | 4,902 |
| A Short Primer on Java Debugging Internals | Johannes Bechberger | 9,287 |
| Why Picnic picked Java | Sander Mak | 7,988 |
| Spring Modulith: Have We Reached Modularity Maturity? | Nicolas Frankel | 9,176 |
| Java on Visual Studio Code Update – December 2022 | Nick Zhu | 6,843 |
| JavaFX Links of December | Frank Delporte | 4,820 |
| Debugging Program Control Flow | Shai Almog | 4,471 |
| A Faster Way to Build React + Spring Boot Apps Using Hilla 1.3 | Marcus Hellberg | 7,084 |
| Spring Boot Annotation Reference - 01/a | Sumith Puri | 6,049 |
| Writing a Profiler from Scratch: Introduction | Johannes Bechberger | 8,851 |
| Challenges when Developing a GUI for FIX | Rob Austin | 5,199 |
| How Java Litters Beyond the Heap: Distributed Databases | Denis Magda | 7,048 |
| Azul Provides the CRaC in AWS SnapStart Builds | Pavel Petroshenko | 7,097 |
| Two Million Java Developers on Visual Studio Code! | Nick Zhu | 6,922 |
| Foojay Podcast #9: State of JavaFX, Libraries, and Projects | Frank Delporte, Gail Anderson, Johan Vos, Pedro Duque Vieira | 10,167 |
| Foojay on Mastodon: An Update | Frank Delporte | 4,757 |
| Preparing to Move Away from Twitter | Nicolas Frankel | 3,729 |
| Debug Like a Senior Developer | Shai Almog | 5,469 |
| What Java Version Are You Running? | Frank Delporte | 15,263 |
| Hilla 1.3: Build React + Spring Boot Apps Faster | Marcus Hellberg | 4,444 |
| Vaadin 23.3 Improves Kubernetes, Three New Components | Marcus Hellberg | 4,231 |
| Why the Cool Kids Use Event Loops | Rob Austin | 8,621 |
| Compilation Avoidance with Gradle | Amanda Martin | 5,542 |
| Why Did We Choose JSF for the Eclipse Starter for Jakarta EE? | A N M Bazlur Rahman | 8,638 |
| OmniFish Jakarta EE Survey 2022 | Ondro Mihalyi | 6,805 |
| SpringOne TLV World Tour Trip Report | Shai Almog | 3,542 |
| Web resource caching: Server-side | Nicolas Frankel | 3,754 |
| Web resource caching: Client-side | Nicolas Frankel | 3,059 |
| Visualizing Brain Computer Interface Data using JavaFX | Frank Delporte | 10,318 |
| JFR Event Collection | Johannes Bechberger | 8,211 |
| Learn How to Develop Event-Driven Architectures | Rob Austin | 6,477 |
| Viewing Maven and Gradle Dependencies in IntelliJ IDEA | Marit van Dijk | 13,156 |
| Introducing Gradle Test Suites | Tom Tresansky | 6,352 |
| Foojay Podcast #8: JUG World Tour: Manchester | Frank Delporte | 4,885 |
| Why I Don't do TDD | Shai Almog | 6,287 |
| What is An Application Server? In 3 Minutes! | Jadon Ortlepp | 5,133 |
| JavaFX Links of November | Frank Delporte | 4,196 |
| Kafka vs. Chronicle for Microservices: Which is 750 Times Faster? | Peter Lawrey | 11,512 |
| How Java Litters Beyond the Heap: Relational Databases | Denis Magda | 11,861 |
| A Poor Man's API | Nicolas Frankel | 5,197 |
| Controlling a LED Strip with Pi4J and JBang | Frank Delporte | 5,917 |
| You’re Doing It Wrong — Recruiting a DevRel | Shai Almog | 3,386 |
| Gossips: An Event-Bus in a Chatty Neighbourhood | Muhammad Hashim | 5,746 |
| Unusual Java: StackTrace Extends Throwable | Peter Lawrey | 6,238 |
| AP-Loader: A New Way to Use and Embed async-profiler | Johannes Bechberger | 6,519 |
| Friends Of OpenJDK at FOSDEM 2023 | Geertjan Wielenga | 4,573 |
| Foojay Podcast #7: Security in Java -- what do we need to know? | Brian Vermeer, Erik Costlow, Frank Delporte | 7,240 |
| Internal Security: Hardening Internal Systems | Shai Almog | 3,819 |
| Kotlin on the RaspberryPi (Pi4J-Kotlin) | Muhammad Hashim | 8,120 |
| How Object Reuse Can Reduce Latency and Improve Performance | Per Minborg | 7,891 |
| Foojay Mastodon Service: Here It Is! | Frank Delporte | 9,848 |
| Payara Launches Payara Cloud – Serverless for Jakarta EE | Jadon Ortlepp | 4,191 |
| EJB support in Piranha via CDI | Ondro Mihalyi | 3,917 |
| Java Mastodon Service: The Feedback | Frank Delporte | 5,241 |
| Let's Start a Java Mastodon Community for Friends Of OpenJDK! | Frank Delporte | 8,295 |
| Java Profiling Overview | Johannes Bechberger | 12,639 |
| API Mocking: Essential and Redundant | Shai Almog | 5,217 |
| The Future of EJB | Ondro Mihalyi | 8,265 |
| What is Jakarta RPC? | Jadon Ortlepp | 4,878 |
| Reducing Tail Latencies with Chronicle Queue Enterprise | Jerry Shea | 6,567 |
| Java on Azure Tooling Update – October 2022 | Jialuo Gan | 3,692 |
| Geo-routing with Apache APISIX | Nicolas Frankel | 3,090 |
| Observability is Cultural | Shai Almog | 2,930 |
| Clean Ways to Shutdown Spring Boot Applications | Sumith Puri | 74,205 |
| CVE-2022-42889: Apache Commons Text (Text4Shell) Vulnerability | Brian Vermeer | 6,809 |
| Creating Terabyte Sized Queues with Low-Latency | Per Minborg | 6,456 |
| Structured Error Messages for HTTP APIs | Nicolas Frankel | 3,980 |
| Discuss the Problem, Not the Solution! | Nicolas Frankel | 3,180 |
| JavaFX Links Of October | Frank Delporte | 4,403 |
| Renovate: Dependabot Alternative | Nicolas Frankel | 5,216 |
| The Problem with Functional Programming | Ties van de Ven | 12,014 |
| Trip Report: Dubai JUG 2nd Meetup | Paco van Beckhoven | 3,765 |
| A Minor But Useful Refactoring Technique That Would Reduce Your Code Footprint (Part 2) | A N M Bazlur Rahman | 6,569 |
| Why the Fastest Way of Serializing a Java Field is not Serializing it at All | Per Minborg | 10,137 |
| Foojay Podcast #6: Welcome to Foojay! | A N M Bazlur Rahman, Frank Delporte, Geertjan Wielenga, Roy Wasse | 7,294 |
| When Breakpoints Don't Break | Shai Almog | 4,469 |
| Handling Exceptions in Java Lambdas | Nicolas Frankel | 5,527 |
| How to Use Java DTOs to Stay Secure | Brian Vermeer | 6,991 |
| Minor Techniques That Would Reduce Your Code Footprint (Part 1) | A N M Bazlur Rahman | 6,430 |
| Book review: Learn JavaFX Game Development with FXGL 17 | Frank Delporte | 8,327 |
| Low Latency Crypto Trading Systems with Java and Chronicle | Ivan Rakov | 12,373 |
| Java on Azure Tooling Update – September 2022 | Jialuo Gan | 3,926 |
| Java on Azure Tooling Update – August 2022 | Jialuo Gan | 3,636 |
| MicroProfile Config for Java SE | Rudy De Busscher | 9,427 |
| High-Performance Java Serialisation to Different Formats | Rob Austin | 8,758 |
| Presenting with IntelliJ IDEA | Marit van Dijk | 13,687 |
| The Reason Java is Still Popular | Shai Almog | 6,034 |
| Comparative Evaluation Azul Zulu Prime vs. OpenJDK | Frank Delporte | 6,176 |
| Unified Event-Driven Architecture for the Cloud Native Enterprise | Chris Latimer | 5,575 |
| Low Latency Microservices, A Retrospective | Peter Lawrey | 8,890 |
| Am I Testing the Right Way? | David Schneider, Sebastian Konieczek | 8,533 |
| The Maze of Python Dependency Management | Nicolas Frankel | 4,322 |
| JavaFX Links of September | Frank Delporte | 4,976 |
| Starting Docker Desktop with Spring Boot | Sumith Puri | 12,478 |
| What Does The JVM Look Like, How Does It Work? | A N M Bazlur Rahman | 12,277 |
| Reclaiming Persistent Volumes in Kubernetes | Frank Rosner | 9,540 |
| Storing 1TB in Virtual Memory on a 128GB Machine | Peter Lawrey | 6,503 |
| Apache APISIX Loves Rust! (And Me Too) | Nicolas Frankel | 4,329 |
| OmniFish announces Eclipse GlassFish support | Ondro Mihalyi | 5,583 |
| Great Time at JavaZone 2022 | Shai Almog | 4,218 |
| Payara Launches Jakarta EE 10 Platform Compatible Product | Jadon Ortlepp | 7,156 |
| What is MicroProfile? | Jadon Ortlepp, Luis Neto | 5,673 |
| A Better Way To Use Gradle With Github Actions | Daz DeBoer | 12,310 |
| Resolving Git Merge Conflicts in IntelliJ IDEA | Helen Scott | 32,071 |
| The 5 Most Pivotal and Innovative Additions to OpenJDK 19 | A N M Bazlur Rahman | 12,753 |
| OpenJDK 19 Released! | Geertjan Wielenga | 7,982 |
| Foojay Podcast #5: OpenJDK Discussion Panel | Deepu K Sasidharan, Erik Costlow, Frank Delporte, Miro Wengner | 9,045 |
| Introduction to Kubernetes Extensibility | Nicolas Frankel | 3,066 |
| Let's Create Mappers Without Creating Underlying Objects in Java | Per Minborg | 6,879 |
| New Book: FXGL 17 -- Learn JavaFX Game and App Development | Almas Baimagambetov | 6,242 |
| Open Source Bait and Switch | Shai Almog | 6,079 |
| How the world caught up with Apache Cassandra | Jeff Carpenter | 3,881 |
| Best Practices for Managing Java Dependencies | Brian Vermeer | 10,358 |
| Baeldung Series Part 2: Build a Dashboard With Cassandra, Astra and CQL – Mapping Event Data | Graham Cox | 3,405 |
| The Story of a Java 17 Native Memory Leak | Nick Ebbitt | 16,666 |
| A Quick Glance at the Kubernetes Gateway API | Nicolas Frankel | 4,163 |
| On Cosmetics vs. Intrinsics in Programming | Nicolas Frankel | 2,568 |
| Serverless is the New Timeshare | Shai Almog | 3,899 |
| Multi-cluster Cassandra with Google Kubernetes Engine (Pt. 2) | Jeff Carpenter | 2,872 |
| Controlling your Server with a Reverse Shell Attack | Brian Vermeer | 7,239 |
| Use Pattern Matching to Simplify Java | Simon Ritter | 5,485 |
| Running your Database on OpenShift and CodeReady Containers | Mick Semb Wever | 3,438 |
| Learning by Auditing Kubernetes Manifests | Nicolas Frankel | 2,296 |
| Migrating Monoliths to Microservices in Practice | Shai Almog | 4,266 |
| Can Java/Jakarta EE do Microservices? | Jadon Ortlepp | 3,627 |
| Java Thread Programming (Part 15) | A N M Bazlur Rahman | 3,954 |
| Pi4J V2.2.0 Released | Frank Delporte | 5,640 |
| What the Heck Is Project Loom for Java? | Deepu K Sasidharan | 11,602 |
| End-to-End Tracing with OpenTelemetry | Nicolas Frankel | 3,035 |
| External Debugging Tools 3: JMXTerm | Shai Almog | 4,352 |
| Google Remote Procedure Call (gRPC) Example in Payara Server | Luis Neto | 3,199 |
| Using Git Interactive Rebase | Marit van Dijk | 18,315 |
| Cassandra: Throughput, Responsiveness, Capacity and Cost | Gil Tene | 2,842 |
| Java Strings and confusion with Unicode | Jonatan Ivanov | 19,832 |
| Back to Basics: Accessing Kubernetes Pods | Nicolas Frankel | 3,339 |
| Bridge the DevOps/Dev Gap without Sacrificing Reliability | Shai Almog | 2,663 |
| Exploring the Apache Commons Configuration RCE Vulnerability | Brian Vermeer | 5,696 |
| Faster Integration Tests with Reusable Testcontainers | Michael Simons | 17,075 |
| Java Bytecode Simplified: Journey to the Wonderland (Part 2) | A N M Bazlur Rahman | 9,318 |
| Backend-for-Frontend: The Demo | Nicolas Frankel | 4,343 |
| When Disaster Strikes: Production Troubleshooting | Shai Almog | 2,953 |
| Secure CI/CD Pipelines with GitHub Actions for Your Java Apps | Brian Vermeer | 9,526 |
| Deploy a Multi-Datacenter Cassandra Cluster in Kubernetes | Jeff Carpenter | 4,080 |
| Ignore Infrastructure, Focus on Code, with Jakarta EE and Payara | Jadon Ortlepp | 3,044 |
| Native GraphQL API with Neo4j AuraDB on Heroku | Michael Simons | 7,333 |
| External Debugging Tools 1: dtrace and strace | Shai Almog | 3,358 |
| join.slack.com/t/foojay/signup | Geertjan Wielenga | 43,292 |
| What is a Java Uber-JAR and Why Is It Useful? | Jadon Ortlepp | 4,681 |
| Deep Learning in Java Using Deep Netts (Part 2) | Zoran Sevarac | 5,272 |
| A Flavour of TornadoVM on Apple M1 Pro | Thanos Stratikopoulos | 5,369 |
| Write Your Own Service Discovery Client for Apache APISIX | Nicolas Frankel | 3,528 |
| Understand the Root Cause of Regressions with Git Bisect | Shai Almog | 3,685 |
| Five Data Models for IoT: Managing the Latest IoT Events Based on a State in Apache Cassandra | Artem Chebotko | 3,054 |
| NoSQL Use Cases: When to Use a Non-Relational Database | Rich Edwards | 3,923 |
| Stateless, Secretless Multi-cluster Monitoring in Azure Kubernetes | Alessandro Vozza | 8,897 |
| How to deploy a Vaadin application to Google Cloud App Engine | Simon Martinelli | 5,184 |
| Discussing Backend For Front-end | Nicolas Frankel | 4,489 |
| The Cost of Production Blindness | Shai Almog | 2,239 |
| Kubernetes and the Data Centre: Is Full Scale Migration Possible? | Patrick McFadin | 3,212 |
| General Build Distribution: A Game-Changer or a Gimmick? | Kyle Moore | 2,654 |
| Released: OpenJDK 18.0.2, 17.0.4, 15.0.8, 13.0.12, 11.0.16, 8u342 | Geertjan Wielenga | 3,936 |
| Why a Cloud-Native Database Must Run on K8s | Jeff Carpenter | 2,694 |
| Remote and Distributed Build Patterns | Kyle Moore | 3,098 |
| How to Secure Your Web Apps With An API Gateway | Nicolas Frankel | 2,880 |
| Debugging Java Collections Framework Issues in Production | Shai Almog | 3,553 |
| Deserialization exploits in Java: why should I Care? | Brian Vermeer | 5,385 |
| Journeys in Java, Level 6: Build a Neo4j Microservice | Jennifer Reif | 5,295 |
| Jakarta Concurrency: Present and Future | Steve Millidge | 2,579 |
| The End of the Beginning for Apache Cassandra | Patrick McFadin | 2,385 |
| JDK 7: An Extended Hello and Farewell | Simon Ritter | 2,924 |
| Taking VSCodium for a Spin | Nicolas Frankel | 2,781 |
| Java on Azure Tooling Update – July 2022 | Jialuo Gan | 3,312 |
| Debugging Gson, Moshi and Jackson JSON Frameworks in Production | Shai Almog | 3,151 |
| Available Now - gRPC for Apache Cassandra | Pieter Humphrey | 3,399 |
| MicroStream - Part 5: Caching, Integrations and Clustering | Rudy De Busscher | 4,668 |
| Getting Started with Deep Learning in Java using Deep Netts | Zoran Sevarac | 6,122 |
| Foojay Status Report: January – June 2022 | Geertjan Wielenga | 3,633 |
| Understand Source Code – Deep into the Codebase, Locally & Production | Shai Almog | 3,199 |
| MicroStream Next-Generation Serialisation Engine | Rudy De Busscher | 5,117 |
| Top 7 Features in Jakarta EE 10 Release | A N M Bazlur Rahman | 11,098 |
| Hard Things in Computer Science | Nicolas Frankel | 3,454 |
| Spring Boot Performance Workshop with Vlad Mihalcea | Shai Almog | 3,681 |
| K8ssandra ramps up security features to match Kubernetes’ best practices | Jeff Banks | 2,208 |
| MicroStream: How to store your data? | Rudy De Busscher | 5,693 |
| Master-Detail with Hilla | Simon Martinelli | 5,605 |
| Java on Visual Studio Code - May Update | Nick Zhu | 3,910 |
| Debugging jsoup Java Code in Production Using Lightrun | Shai Almog | 2,859 |
| Data Modeling in Cassandra and Astra DB | Artem Chebotko | 3,485 |
| Deep Learning in Java for Nuclear Physics using Deep Netts | Gagik Gavalian | 5,019 |
| What I Miss in Java, the Perspective of a Kotlin Developer | Nicolas Frankel | 2,828 |
| MicroStream: Configure the StorageManager | Rudy De Busscher | 4,428 |
| Wordish with JavaFX - Part 5 | Gail Anderson | 5,559 |
| Java on Azure Tooling Update – June 2022 | Jialuo Gan | 3,490 |
| Remote Debugging and Developer Observability | Shai Almog | 3,108 |
| Tombstones and Ghost Data Don’t Have to Be Scary! | Aaron Ploetz | 3,759 |
| Building Project Panama's jextract tool by yourself | Carl Dea | 11,454 |
| Create Music Bingo Cards with iText | Frank Delporte | 2,834 |
| My Summary of jPrime 2022 | Nicolas Frankel | 2,413 |
| Managing Distributed Applications in Kubernetes Using Cilium and Istio with Helm and Operator for Deployment | Christopher Bradford | 12,894 |
| How to Add an Event to the Foojay Event Calendar | A N M Bazlur Rahman, Frank Delporte | 2,590 |
| Wordish with JavaFX - Part 4: Foojay | Gail Anderson | 4,165 |
| Running Jekyll on a Mac | Nicolas Frankel | 3,255 |
| MicroStream: High-Performance Java-Native-Persistence framework | Rudy De Busscher | 6,678 |
| Debugging the Java Message Service (JMS) API using Lightrun | Shai Almog | 3,172 |
| How to Develop and Test an Automated CI/CD Workflow with Cassandra | Jim Dickinson, Patrick McFadin | 3,053 |
| How DataStax Tracked Down a Linux Kernel Bug with Fallout | Matt Fleming | 2,060 |
| Journeys in Java, Level 5: Building an Empire of Microservices | Jennifer Reif | 5,571 |
| What Can We Expect In OpenJDK 19? | Miro Wengner | 6,321 |
| Optimizing Distributed Joins: The Case of Google Cloud Spanner and DataStax Astra DB | Artem Chebotko | 2,693 |
| Wordish with JavaFX - Part 3 | Gail Anderson | 4,761 |
| Embracing Java 17: Here’s What We Learned at Picnic | Jakob Löhnertz | 4,645 |
| Superfast Application Startup: Java on CRaC | Simon Ritter | 3,548 |
| Memory Debugging and Watch Annotations | Shai Almog | 2,760 |
| Java Panama Polyglot (Rust) Part 4 | Carl Dea | 11,252 |
| Book Review: Monolith to Microservices (Part 2) | A N M Bazlur Rahman | 4,073 |
| Wordish with JavaFX - Part 2 | Gail Anderson | 6,455 |
| Chopping the Monolith: The Demo | Nicolas Frankel | 2,988 |
| Debugging Deadlocks and Race Conditions | Shai Almog | 3,384 |
| Why Developers Should Use Apache Pulsar | Patrick McFadin | 3,006 |
| Let's Compile Java Code in the Cloud! | John Ceccarelli | 3,157 |
| Book Review: Monolith to Microservices (Part 1) | A N M Bazlur Rahman | 4,761 |
| Wordish with JavaFX - Part 1 | Gail Anderson | 8,111 |
| Toying with Kotlin's Context Receivers | Nicolas Frankel | 3,477 |
| Azure Toolkit for IntelliJ – April 2022 Update | Jialuo Gan | 4,041 |
| Diving into JVM Framework Monitoring and Profiling | Miro Wengner | 6,375 |
| Publish a Java Project to the Maven Central Repository | Tobias Briones | 15,971 |
| How to do password hashing in Java applications the right way | Brian Vermeer | 13,389 |
| Getting More Mileage Out of Kafka: OpenJDK vs. Azul Prime | John Ceccarelli | 4,197 |
| How to run the Java Incubator Module from the Command Line and IntelliJ IDEA | A N M Bazlur Rahman | 12,677 |
| Setting up and Working with Apache Tomcat in IntelliJ IDEA Ultimate | Helen Scott | 23,450 |
| How To Modernize Legacy Code in Production | Shai Almog | 2,789 |
| Conditional Builds on GitLab | Nicolas Frankel | 3,418 |
| How to enable java preview feature and run code from IntelliJ IDEA | A N M Bazlur Rahman | 23,292 |
| Spring Transaction Debugging in Production with Lightrun | Shai Almog | 3,105 |
| 5 More Reasons to Choose Apache Pulsar Over Apache Kafka | Chris Bartholomew | 3,275 |
| Bring Streaming to Apache Cassandra with Apache Pulsar | Cedrick Lunven | 3,516 |
| Easy Jakarta EE Integration Testing | Jadon Ortlepp | 4,127 |
| How To Submit Your Next Article On Foojay.io | A N M Bazlur Rahman, Frank Delporte, Geertjan Wielenga | 15,111 |
| Securely Authenticate to Google Cloud from GitHub | Nicolas Frankel | 3,597 |
| Debugging Collections, Streams, and Watch Renderers | Shai Almog | 2,984 |
| Thinking About Massive Throughput? Meet Virtual Threads! | Miro Wengner | 13,435 |
| Journeys in Java, Level 4: Building an Empire of Microservices | Jennifer Reif | 4,835 |
| Java Panama Polyglot (Python/Tensorflow) Part 3 | Carl Dea | 8,294 |
| Chopping the Monolith: Foojay.io Today | Nicolas Frankel | 4,514 |
| Java on Visual Studio Code Update – April 2022 | Nick Zhu | 4,290 |
| Exception Breakpoint that Doesn't Suck and Other Use Cases | Shai Almog | 3,229 |
| SQL vs. NoSQL: Pros & Cons | Rich Edwards | 3,967 |
| Fullstack IMDB Clone with a Java Backend using SparkJava and Neo4j | Jennifer Reif, Michael Hunger | 6,857 |
| Does Java 18 Finally Have A Better Alternative To JNI? | Deepu K Sasidharan | 7,890 |
| How To Beautify Your GitHub Repo | Nicolas Frankel | 4,149 |
| Introducing the "Coordinated Restore at Checkpoint" Project | Gerrit Grunwald | 15,387 |
| Java Panama Polyglot (Swift) Part 2 | Carl Dea | 6,883 |
| Top 10 Java Language Features | A N M Bazlur Rahman | 21,058 |
| "Contrast Security Joins Foojay Advisory Board to Accelerate Java Developer Community Growth, Raise Security Perspective" — PR News | Geertjan Wielenga | 2,572 |
| How to Create APIs with the Java 18 jwebserver Ready for Docker | Miro Wengner | 7,164 |
| Logging Best Practices: MDC, Ingestion, and Scale | Shai Almog | 5,355 |
| Migrating from Java EE to Jakarta EE with IntelliJ IDEA | Helen Scott | 25,228 |
| Quest to the OS: Java Native Memory | Jakob Löhnertz | 2,840 |
| Spring4Shell: The zero-day RCE in the Spring Framework explained | Brian Vermeer | 3,544 |
| Java Panama Polyglot (C++) Part 1 | Carl Dea | 12,684 |
| Switch Statement and the Factory Pattern in Three JVM Languages | Miro Wengner | 6,792 |
| Three Mistakes Developers Make Preventing Getting Hired On Projects | A N M Bazlur Rahman | 4,435 |
| How to style a Vaadin Application | Tarek Oraby | 12,004 |
| Debugging JAXB Production Issues | Shai Almog | 2,812 |
| Handling Null: Optional and Nullable Types | Nicolas Frankel | 5,537 |
| Hardware Acceleration For Java? TornadoVM Can Do It! | Thanos Stratikopoulos | 7,636 |
| Spring Remote Code Execution Vulnerability | Shai Almog | 2,615 |
| Quick Fire Java: Java After Log4j | Jadon Ortlepp | 3,468 |
| Observability for JVM Frameworks with Grafana in Java and Kotlin | Christian Meyer, Miro Wengner | 5,132 |
| Increasing Event Streaming with Kafka and Azul | Carl Dea | 3,759 |
| Debugging Java Equals & Hashcode Performance in Production | Shai Almog | 2,995 |
| APISIX: An API Gateway the Apache Way | Nicolas Frankel | 4,356 |
| Blink a LED on Raspberry Pi with Vaadin | Frank Delporte | 4,192 |
| 5 Things You Probably Didn’t Know About Java Concurrency | A N M Bazlur Rahman | 11,682 |
| Full Stream Ahead: Astra Streaming, Powered by Apache Pulsar | Chris Latimer | 3,251 |
| Debugging Race Conditions in Production | Shai Almog | 3,822 |
| What's New and Exciting in Java 18? | Miro Wengner | 3,806 |
| Error Handling in Java and Across Different Languages | Nicolas Frankel | 3,072 |
| All about Generics: Part 1 | Syed Mainul Hasan | 5,980 |
| Reaper 3.0 for Apache Cassandra is available | Alexander Dejanovski | 2,738 |
| Security Warning: Your Java Attack Surface Just Got Bigger | Brian Vermeer | 5,487 |
| The Basics of Breakpoints you Might not Know | Shai Almog | 3,309 |
| Developer Observability, KoolKits and Reliability | Shai Almog | 2,387 |
| Visualization of Business Function Message Flow with Vaadin and Neo4j | Simon Martinelli | 6,636 |
| 7 Reasons Why, After 26 Years, Java Still Makes Sense! | A N M Bazlur Rahman | 32,814 |
| Lessons learned from previous projects | Nicolas Frankel | 2,940 |
| JDKMon 17.0.23 Released | Gerrit Grunwald | 5,864 |
| Have you upgraded to Cassandra 4.0 yet? | Patrick McFadin | 5,982 |
| Detect, Track, Verify Security Issues & 0-Days | Shai Almog | 3,073 |
| Vaadin and jOOQ: Match Made in Heaven | Simon Martinelli | 6,070 |
| Hilla 1.0 - A new reactive frontend framework for Spring Boot backends | Marcus Hellberg | 5,593 |
| Java Bytecode Simplified: Journey to the Wonderland (Part 1) | A N M Bazlur Rahman | 21,225 |
| Alternatives to DTO | Nicolas Frankel | 3,929 |
| Journeys in Java, Level 3: Building an Empire of Microservices | Jennifer Reif | 5,451 |
| The Serverless Database You Really Want | Patrick McFadin | 2,990 |
| Why Pulsar Beats Kafka for a Scalable, Distributed Data Architecture | Jonathan Ellis | 3,327 |
| Java Return Value, IntelliJ Jump to Line | Shai Almog | 3,332 |
| Java Thread Programming (Part 14) | A N M Bazlur Rahman | 4,000 |
| Kover: Code Coverage plugin for Kotlin | Julien Lengrand-Lambert | 3,912 |
| Avoiding Stringly-typed in Kotlin | Nicolas Frankel | 2,738 |
| OSS Debugging Toolkits for Kubernetes | Shai Almog | 2,869 |
| Measuring Time and Durations in Kotlin | Julien Lengrand-Lambert | 5,795 |
| Save Hours on your Setup of K8ssandra with the New Config Builder | Matt Overstreet | 1,916 |
| Project Panama for Newbies (Part 4) | Carl Dea | 17,145 |
| Use git bisect to Pinpoint a Bug | Maarten Mulders | 4,004 |
| Jakarta Concurrency: Present and Future | Steve Millidge | 2,877 |
| Why we decided to build a K8ssandra Operator - Part 4 | Jeff Carpenter | 2,086 |
| Enter the Cloud Native Dojo: Blackbelt-Level Debugging | Shai Almog | 2,380 |
| Java on Visual Studio Code Update: February 2022 | Nick Zhu | 4,263 |
| Hand Ground Coffee: Command Line Tools for Java | Michael Hunger | 9,127 |
| Controlling Electronics with JBang on the Raspberry Pi | Frank Delporte | 4,863 |
| 7 Ways to Improve Your Code Reading Skills | A N M Bazlur Rahman | 7,636 |
| The Critical Role Streaming Plays in a Data Stack | Jonathan Ellis | 2,740 |
| System Logger | Nicolas Frankel | 3,472 |
| Foojay at FOSDEM 2022 on YouTube And Prize Winners | Geertjan Wielenga | 4,216 |
| Journeys in Java, Level 2: Building an Empire of Microservices | Jennifer Reif | 3,836 |
| Playing practically with Stream API | Syed Mainul Hasan | 4,774 |
| Cassandra Database Migration to Kubernetes with Zero Downtime | Alexander Dejanovski | 3,144 |
| Building Reactive Java Applications with Spring Framework | Cedrick Lunven | 4,532 |
| What is Debugging in 140 Seconds | Shai Almog | 2,947 |
| Backpressure in Reactive Systems | Nicolas Frankel | 6,003 |
| Detect and Fix Memory Leaks in Managed Languages | Shai Almog | 3,443 |
| Building Scalable Streaming Applications with DataStax Astra Streaming | Jeff Davies | 2,630 |
| SQL vs. NoSQL: Pros & Cons | Rich Edwards | 3,672 |
| Java Thread Programming (Part 13) | A N M Bazlur Rahman | 6,736 |
| Installing Java with SDKMAN on Raspberry Pi | Frank Delporte | 14,075 |
| Deploying to Multiple Kubernetes Clusters with the K8ssandra Operator | Jeff Dinoto | 3,464 |
| GoF Design Patterns Using Java - Part 02 | Sumith Puri | 6,270 |
| Video: SDKMAN Explained | Geertjan Wielenga | 3,566 |
| Backing up K8ssandra with MinIO | Alexander Dejanovski | 2,010 |
| Lights, Camera, Action: GitHub Actions with Java (Part 3) | Carl Dea | 5,080 |
| Friends Of OpenJDK at FOSDEM with Prizes | Geertjan Wielenga | 4,258 |
| Create a CRUD UI in Pure Java | Tarek Oraby | 22,327 |
| Four Reasons Why Apache Pulsar is Essential to the Modern Data Stack | Jonathan Ellis | 2,912 |
| Unboxing K8ssandra: The Data Layer For Your Kubernetes-Powered Applications | Jeff Carpenter | 2,095 |
| Java Thread Programming (Part 12) | A N M Bazlur Rahman | 6,188 |
| The Flatten Maven plugin - fooay.io | Nicolas Frankel | 5,359 |
| Journeys in Java, Level 1: Building an Empire of Microservices | Jennifer Reif | 7,136 |
| Treat Security as a Risk | Nicolas Frankel | 2,782 |
| Java on Visual Studio Code Update – January 2022 | Nick Zhu | 4,329 |
| Java Thread Programming (Part 11) | A N M Bazlur Rahman | 4,678 |
| The State of Java in 2022 | Jadon Ortlepp | 3,571 |
| Introduction to Maven Toolchains | Maarten Mulders | 19,204 |
| Statically Spilling Your (Spring) Beans | Tom Cools | 21,673 |
| Introducing the GKE Autopilot Cluster | Ashish Choudhary | 2,632 |
| Taking Your Database Beyond a Single Kubernetes Cluster | Christopher Bradford | 3,523 |
| Polyglot Cloud Native Debugging: Beyond Logs/APM | Shai Almog | 2,879 |
| You're Running Untrusted Code! | Nicolas Frankel | 3,695 |
| Kubernetes and Apache Cassandra: What Works (and What Doesn’t) | Patrick McFadin | 3,720 |
| Foojay Status Report: July – December 2021 | Geertjan Wielenga | 5,075 |
| Template to Get Started with Pi4J and JavaFX on Raspberry Pi | Frank Delporte | 4,459 |
| How to Put a Database in Kubernetes? | Jeff Carpenter | 5,473 |
| Monitoring Spring Boot Applications (Part 1) | Ashish Choudhary | 4,586 |
| Hype-Driven Development: Don't Be a Victim! | Jadon Ortlepp | 3,354 |
| Debugging RAM: Java Garbage Collection - Java Heap Deep Dive (Part 1) | Shai Almog | 6,383 |
| A Tentative Comparison of Fault Tolerance Libraries on the JVM | Nicolas Frankel | 3,848 |
| Log4Shell Shows The Need for "Trustworthy Java" | Karsten Silz | 3,175 |
| Hashcode and Equals: Debugging and Performance | Shai Almog | 3,161 |
| Requirements for Running K8ssandra for Development | Alexander Dejanovski | 2,699 |
| Why K8ssandra? | Jeff Carpenter | 2,737 |
| Sending sensor data from Raspberry Pi Pico to HiveMQ Cloud | Frank Delporte | 3,243 |
| Simplify Migrating from Kafka to Pulsar with Kafka Connect Support | Enrico Olivelli | 4,160 |
| JReleaser 0.10.0 Released! | Gerrit Grunwald | 5,051 |
| Building Stateful Microservices in the Cloud Native World | Mary Grygleski | 3,892 |
| FXGL Game Engine 17 Released | Almas Baimagambetov | 4,726 |
| The State of Pattern Matching in Java 17 | Deepu K Sasidharan | 3,730 |
| New Survey Finds Data on Kubernetes Is No Longer a Pipe Dream | Patrick McFadin | 2,083 |
| The future of cloud-native databases begins with Apache Cassandra 4.0 | Patrick McFadin | 2,583 |
| foojay - Santa Claus Issues YuleLog4J Advisory | Erik Costlow | 4,147 |
| Java Modules in the Pi4J Project? | Frank Delporte | 3,614 |
| Kubernetes Data Simplicity: Getting started with K8ssandra | Jeff Banks | 2,877 |
| MQTT on Raspberry Pi (Part 2) | Frank Delporte | 3,370 |
| Java Thread Programming (Part 10) | A N M Bazlur Rahman | 3,594 |
| Beautify Third-Party APIs with Kotlin | Nicolas Frankel | 2,581 |
| Say Goodbye to Project Files in Visual Studio Code | Nick Zhu | 5,360 |
| JDKMon 17.0.18 Released | Gerrit Grunwald | 4,466 |
| Java Logging: What To Log & What Not To Log? | Brian Vermeer | 6,356 |
| What is GitOps? What are its benefits? | Ashish Choudhary | 3,166 |
| Build a Status Dashboard Using Spring Boot and Astra DB | Graham Cox | 3,818 |
| Build Web Apps in Pure Java with Vaadin Flow | Tarek Oraby | 6,999 |
| Log4Shell / Leak4J | Roy van Rijn | 3,622 |
| 7 Reasons to Choose Apache Pulsar over Apache Kafka | Chris Bartholomew | 4,088 |
| MQTT on Raspberry Pi: Sensor Data to HiveMQ Cloud with Java and Pi4J | Frank Delporte | 3,446 |
| Fail-Fast Reliable Software Strategy. Debug Failures Effectively | Shai Almog | 3,683 |
| Java Thread Programming (Part 9) | A N M Bazlur Rahman | 3,693 |
| Log4j2 Isn’t Killing Java | Erik Costlow | 11,185 |
| Native-image with Quarkus | Nicolas Frankel | 3,768 |
| Log4Shell: Critical Log4j RCE Vulnerabilty -- Update to Version 2.15.0 | Brian Vermeer | 6,498 |
| Apache Log4j CVE-2021-44228 | Geertjan Wielenga | 4,175 |
| JUnit 5 Display Names | Chandra Guntur | 9,728 |
| Fast JMS for Apache Pulsar: Blazing Performance | Chris Bartholomew | 2,807 |
| Adelphi: Apache Cassandra Testing Goes Cloud Native | Gianluca Righetto | 3,870 |
| Non-blocking with Spring WebFlux, Kotlin and Coroutines | Bjorn van der Laan | 27,145 |
| Multiple Spring Boot Applications in the Same Project | Nicolas Frankel | 3,138 |
| JDKMon 17.0.17 Released | Gerrit Grunwald | 2,932 |
| Java Thread Programming (Part 8) | A N M Bazlur Rahman | 3,820 |
| Debugging the Technical Interview: Methods and Cheating | Shai Almog | 3,826 |
| Friends Of OpenJDK at FOSDEM 2022 | Geertjan Wielenga | 3,843 |
| JUnit 5 Testing Basics | Chandra Guntur | 5,245 |
| New Java 17 Features for Improved Security and Serialization | Brian Vermeer | 6,120 |
| Vaadin 22 released with Quarkus support and stateless Fusion | Marcus Hellberg | 6,800 |
| Why a Serverless Data API Might be Your Next Database | Pieter Humphrey | 2,738 |
| Backing up K8ssandra with MinIO | Alexander Dejanovski | 2,269 |
| JReleaser 0.9.0 Released! | Gerrit Grunwald | 5,156 |
| Developer Productivity Masterclass: Interview With Leonid Blouvshtein | Shai Almog | 3,983 |
| Port Management in Local Kubernetes Clusters | Nicolas Frankel | 2,661 |
| JUnit 5 Introduction | Chandra Guntur | 4,357 |
| Book Review: “Effortless Cloud-Native App Development Using Skaffold” | Shai Almog | 3,074 |
| Enterprise-Level Apache Cassandra Sink Connector for Apache Pulsar | Enrico Olivelli | 2,806 |
| K8ssandra: Production-Ready Platform for Cassandra on Kubernetes | Pieter Humphrey | 3,000 |
| Java Thread Programming (Part 7) | A N M Bazlur Rahman | 5,375 |
| Native-image with Micronaut | Nicolas Frankel | 3,683 |
| Equals and Hashcode Implementation Considerations | Wim Deblauwe | 5,515 |
| Understanding Apache Maven (Part 9): Versions in Maven | Chandra Guntur | 3,646 |
| Native-image with Spring Boot | Nicolas Frankel | 3,193 |
| A List of Cache Providers | Nicolas Frankel | 5,684 |
| SKP's Agile Cheatsheet: Part 03 | Sumith Puri | 4,468 |
| A Walk to Lazy Fetching With Hibernate and Spring Data JPA | Syed Mainul Hasan | 25,598 |
| Java Thread Programming (Part 6) | A N M Bazlur Rahman | 5,112 |
| Customer Miscommunication Leads to Ongoing Nightmare | Shai Almog | 2,035 |
| Lights, Camera, Action: GitHub Actions with Java (Part 2) | Carl Dea | 13,774 |
| 7 Reasons to Switch to OpenJDK 17 as a Jakarta EE Developer | Jadon Ortlepp | 4,964 |
| Working with Multiple Carets in IntelliJ IDEA | Helen Scott | 88,897 |
| Understanding Apache Maven (Part 8): Maven Plugins | Chandra Guntur | 9,659 |
| Visual Recognition for Chess with Deep Learning in Java on Android | Krasimir Topchiyski, Zoran Sevarac | 5,289 |
| Streams Set Distinct Java Code Quiz | Rafael del Nero | 3,409 |
| Let’s Use Optional to Fix Method Contracts | A N M Bazlur Rahman | 3,939 |
| Book Review: Why Programs Fail by Andreas Zeller | Shai Almog | 3,032 |
| Extending Third-Party APIs in Different Languages | Nicolas Frankel | 2,629 |
| Understanding Apache Maven (Part 7): Configuring Apache Maven | Chandra Guntur | 5,367 |
| SKP's Agile Cheatsheet: Part 02 | Sumith Puri | 4,684 |
| Hazelcast + Kibana: Best Buddies for Exploring & Visualizing Data | Nicolas Frankel | 2,867 |
| How Social Trends Help Me Fix Essential Vulnerabilities | Brian Vermeer | 3,320 |
| Production Horrors - Handling Disasters: Public Debrief. Handling failures | Shai Almog | 2,982 |
| Announcement: JReleaser 0.8.0 Released! | Gerrit Grunwald | 4,425 |
| Kotlin and FaaS: An Impossible Union? | Nicolas Frankel | 2,268 |
| Java Thread Programming (Part 5) | A N M Bazlur Rahman | 5,187 |
| VS Code Java September 2021 Update | Nick Zhu | 4,432 |
| Understanding Apache Maven (Part 6): POM Reference | Chandra Guntur | 10,770 |
| SKP's Agile Cheatsheet: Part 01 | On Foojay.io Today | Sumith Puri | 5,523 |
| Lights, Camera, Action: GitHub Actions with Java (Part 1) | Carl Dea | 14,320 |
| Exception Chaos Java Code Quiz | Rafael del Nero | 3,470 |
| Debugging Tutorial 1 – Introduction: Conditional Breakpoints & Set Value | Shai Almog | 4,492 |
| How to Choose a Cache: Capabilities | Nicolas Frankel | 3,012 |
| Java Thread Programming (Part 4) | A N M Bazlur Rahman | 6,445 |
| Discussion: The State of Java 2021 | Brian Vermeer | 4,349 |
| 1.0 Release of Language Support for Java on Visual Studio Code | Nick Zhu | 4,497 |
| Git Archeology: Removing the Sands of Time from Code | Benjamin Muskalla | 5,994 |
| Understanding Apache Maven (Part 5): Dependencies in Maven | Chandra Guntur | 4,331 |
| Java Thread Programming (Part 3) | A N M Bazlur Rahman | 7,040 |
| PSA: The Risks of Remote JDWP Debugging: It's Like a Wide Open Door | Shai Almog | 5,085 |
| Foojay Podcast #4: Why Are There So Many JDKs? | Erik Costlow, Simon Ritter | 5,282 |
| On Reassessing TestNG vs. Junit | Nicolas Frankel | 2,552 |
| Contributing to OpenJDK Mission Control | Marcus Hirt | 3,697 |
| JavaFX Templates for Desktop Applications | Frank Delporte | 14,449 |
| Book Review: "Effortless Cloud-Native App Development Using Skaffold" | Geertjan Wielenga | 4,003 |
| Faster Maven Builds (Part 2): Inside Docker | Nicolas Frankel | 3,303 |
| How to Do Faster Maven Builds (Part 1) | Nicolas Frankel | 4,422 |
| GlassFish & Payara Auto-Clustering for Jakarta EE Applications | Tetiana Fydorenchyk | 5,825 |
| Getting Started with Jakarta EE 9: Jakarta EE 9.1 | Jadon Ortlepp, Rudy De Busscher | 4,487 |
| Payara Platform October 2021 Survey | Jadon Ortlepp | 3,733 |
| Java Thread Programming (Part 2) | A N M Bazlur Rahman | 6,847 |
| On The Costs of Hidden Logging | Jaroslav Bachorik | 4,890 |
| JReleaser: Looking for Translation Contributions | Geertjan Wielenga | 3,115 |
| Understanding Apache Maven (Part 4): Maven Lifecycle | Chandra Guntur | 5,062 |
| Java Thread Programming (Part 1) | A N M Bazlur Rahman | 15,688 |
| Multiple Ways to Configure Spring | Nicolas Frankel | 2,866 |
| Understand Stack Traces and how you can Debug Better With them | Shai Almog | 3,462 |
| Book Review: Quarkus for Spring Developers | Erik Costlow | 8,942 |
| Understanding Apache Maven: Maven Coordinates & POM Inheritance | Chandra Guntur | 5,691 |
| K8ssandra Performance Benchmarks on Cloud Managed Kubernetes | Alexander Dejanovski | 5,391 |
| This Just In: JReleaser 0.7.0 Released! | Gerrit Grunwald | 4,886 |
| Arrays and Object Reference Java Challenge Code Quiz | Rafael del Nero | 4,034 |
| Debug Real World Applications using a Systemic Proven Process | Shai Almog | 3,600 |
| Introducing Jetpack Compose for Desktop | Nicolas Frankel | 2,894 |
| Getting Started with Java 17 on the Raspberry Pi | Frank Delporte | 63,202 |
| Reclaim 25% of Java Heap Memory & Lower Your Cloud Bills | A N M Bazlur Rahman | 5,277 |
| Building Command Line Interfaces with Kotlin using picoCLI | Julien Lengrand-Lambert | 12,334 |
| Thorntail Fat, Thin and Skinny Approach for Java Microservices | Tetiana Fydorenchyk | 4,626 |
| Debugger Checklist: Bug Solving Process | Shai Almog | 3,003 |
| VS Code: SpringOne Updates, UX Improvements, Community Feedback | Nick Zhu | 3,256 |
| A Return to Annotation-Free Spring | Nicolas Frankel | 7,463 |
| Parallel Streams Java Code Quiz | Rafael del Nero | 3,647 |
| Getting Started with Java 17 and IntelliJ IDEA | Mala Gupta | 7,346 |
| Project Panama for Newbies (Part 3) | Brice Dutheil, Carl Dea | 16,034 |
| Timely Computation of Derived Values | Nicolas Frankel | 2,136 |
| 8 Debugging Tips for IntelliJ IDEA Users You Never Knew Existed | Noga Badhav, Shai Almog | 9,435 |
| Daemon Thread Java Code Quiz | Rafael del Nero | 3,246 |
| Demystifying Memory Management in Modern Programming Languages | Deepu K Sasidharan | 5,299 |
| Everyday Shortcuts in IntelliJ IDEA | Helen Scott | 7,875 |
| Understanding Apache Maven (Part 2): POM Hierarchy and Effective POM | Chandra Guntur | 7,775 |
| Do Java/Jakarta EE Standards Matter? | Jadon Ortlepp | 4,018 |
| Function Calculation Java Challenge | Rafael del Nero | 5,212 |
| Foojay Podcast #3: Journey to Jakarta EE | Erik Costlow, Ivar Grimstad, Josh Juneau, Rudy De Busscher | 5,453 |
| Announcement: Pi4J V.2 Released! | Frank Delporte | 4,608 |
| Tomcat and TomEE Clustering Automation in the Cloud | Tetiana Fydorenchyk | 4,162 |
| Understanding Apache Maven (Part 1): The Basics | Chandra Guntur | 6,152 |
| Is the Java/Jakarta EE Deployment Model Out of Date? | Jadon Ortlepp | 2,289 |
| Looking For Free Docker Registries | Nicolas Frankel | 3,101 |
| Better Error Handling for Your Spring Boot REST APIs | Wim Deblauwe | 21,431 |
| Deep Learning in Java for Drug Discovery | Oscar Bastidas, Zoran Sevarac | 4,106 |
| SolarWinds Hack: What Does This Mean For Us? | Sven Ruppert | 3,483 |
| Updating Data Files: Commits vs. Pull Requests? | Nicolas Frankel | 2,087 |
| Is Java/Jakarta EE Cloud-Native? | Jadon Ortlepp | 2,715 |
| Stream Limit Filter Java Challenge | Rafael del Nero | 5,540 |
| Announcing VS Code Java July 2021 Update | Nick Zhu | 4,936 |
| Book Review: "Help Your Boss Help You" | Geertjan Wielenga | 5,146 |
| Are Java/Jakarta EE Application Servers Heavy? | Jadon Ortlepp | 3,270 |
| Why You Should Upgrade to Maven Version 3.8.1 Today or Very Soon | Brian Vermeer | 13,790 |
| Schedule for Foojay Virtual OpenJDK 17+ JUG Tour | Ari Waller, Geertjan Wielenga, Jadon Ortlepp | 6,833 |
| JDK Mission Control 8.1.0 Released! | Marcus Hirt | 5,962 |
| Announcing New Book: "Practical Vaadin" | Jonathan Gennick | 3,397 |
| No-Cost IBM Semeru Runtimes for Java | Mary Grygleski | 4,776 |
| Introducing SAST, DAST, IAST and RASP | Sven Ruppert | 4,055 |
| GitLab: Your Continuous Deployment One-Stop Shop | Nicolas Frankel | 2,548 |
| Announcement: JReleaser 0.6.0 Released! | Andres Almiray | 4,077 |
| SKP's Primer: Failures, Pitfalls, and Disadvantages of Microservices | Sumith Puri | 5,186 |
| Getting Started with Snyk for Secure Java Development | Brian Vermeer | 5,743 |
| Is Java/Jakarta EE Outdated & Dead? | Jadon Ortlepp | 3,695 |
| An Introduction to Rust and the JVM | Nicolas Frankel | 3,340 |
| Neo Stream Search Java Challenge | Rafael del Nero | 3,513 |
| Connect Stateful Workloads Across Kubernetes Clusters | Roman Chernobelskiy | 2,911 |
| Foojay Podcast #2: Embedded Java -- Robots and FX | Erik Costlow, Frank Delporte, Johan Vos | 5,653 |
| New Book Review: Seriously Good Software | Cay Horstmann | 5,079 |
| Announcement: Virtual Foojay OpenJDK 17+ JUG Tour | Ari Waller, Geertjan Wielenga, Jadon Ortlepp | 5,591 |
| Join The Jedi Lambda Join Java Challenge! | Rafael del Nero | 3,346 |
| Announcement: FXGL Game Engine 11.17 Release | Almas Baimagambetov | 3,147 |
| How To Get Your JDK As Easily As Possible! | Gerrit Grunwald | 5,273 |
| VSCode Java: Roadmap Update and New Features | Nick Zhu | 3,958 |
| The Search for a Cloud-Native Database | Cedrick Lunven, Jeff Carpenter | 2,762 |
| Best Practices for Data Pipeline Error Handling in Apache NiFi | Pieter Humphrey | 2,812 |
| CVSS 101: First Steps with Common Vulnerability Scoring System | Sven Ruppert | 4,305 |
| A Case for Databases on Kubernetes from a Former Skeptic | Christopher Bradford | 3,632 |
| Learn JShell with JavaFX in Only 60 Seconds | Carl Dea | 7,499 |
| Announcement: Friends Of OpenJDK Podcast #1 | Carl Dea, Erik Costlow, Gerrit Grunwald, Nicolas Frankel | 4,678 |
| About The Lifecycle of a Security Vulnerability | Sven Ruppert | 3,561 |
| Ask Yourself: Do You Really Need Kubernetes? | Rudy De Busscher | 2,817 |
| JDKMon: Your Friendly JDK Distribution Updater | Gerrit Grunwald | 10,481 |
| Soprano ofNullable stream Java Challenge | Rafael del Nero | 3,656 |
| Troubleshooting Java Processes Running on Your Machine | Vipin Sharma | 3,660 |
| Announcement: JReleaser 0.5.0 Released! | Andres Almiray | 4,644 |
| Kubernetes Is The Best Technology For Running A Cloud-Native Database | Jeff Carpenter | 3,127 |
| Method Reference VS Lambda Java Challenge | Rafael del Nero | 4,318 |
| Java in Education: Combining Java with Raspberry Pi and the Pi4J Library | Frank Delporte | 6,011 |
| Introduction to Simplify Protocol Refactoring | Benjamin Muskalla | 2,310 |
| Let's Optimize Relational Database Access | Clement Escoffier, Julien Viet | 9,001 |
| Announcement: JMC 8.0.1 Has Been Released! | Marcus Hirt | 6,028 |
| Creating a JavaFX World Clock from Scratch (Part 6) | Carl Dea | 5,892 |
| Creating Mobile Apps with JavaFX - Part 3 | Gail Anderson | 12,616 |
| How to Debug Java on the Command Line | Vipin Sharma | 37,065 |
| OpenJDK and the Future of Production Profiling | Marcus Hirt | 3,528 |
| Introduction to New AutoScale Feature Available in Payara Server | Jadon Ortlepp, Rudy De Busscher | 3,169 |
| Primitive Set Operations in Eclipse Collections — Part 2 | Sirisha Pratha | 4,053 |
| BlockHound and Blocking Calls: How It Works | Nicolas Frankel | 5,769 |
| Apache Cassandra 4.0: Taming Tail Latencies with Java 16 ZGC | Jonathan Ellis | 4,566 |
| New Book Announcement: "Taming Thymeleaf" | Wim Deblauwe | 4,441 |
| Announcing JavaFX: June 2021 Community Update | Almas Baimagambetov | 6,288 |
| New JVM Ecosystem Report 2021 Has Arrived! | Brian Vermeer | 6,563 |
| Creating Mobile Apps with JavaFX - Part 2 | Gail Anderson | 29,000 |
| Getting Started with Game Development Basics with FXGL | Almas Baimagambetov | 6,445 |
| Jakarta EE Application Deployment to Kubernetes Cluster in Jelastic PaaS | Tetiana Fydorenchyk | 2,973 |
| Concurrency in Java (Compared with Other Programming Languages) | Deepu K Sasidharan | 4,100 |
| Hidden Dracula Polymorphism Java Challenge | Rafael del Nero | 3,111 |
| Creating Mobile Apps with JavaFX - Part 1 | Gail Anderson | 54,818 |
| Learn All About Java Encryption and Hashing | Brian Vermeer | 7,178 |
| Foojay Status Report: January - June 2021 | Geertjan Wielenga | 5,248 |
| Podcast with Ken Fogel: "What Are You Leaving Behind?" | Ken Fogel | 3,192 |
| Avoid Multithreading Bugs Using Immutable Java Records | Vipin Sharma | 3,895 |
| Gluon Update, Dual Screen Raspberry Pi, IntelliJ JavaFX Project Wizard | Frank Delporte | 7,125 |
| New Java/JavaFX Library FXSkins Released | Pedro Duque Vieira | 3,952 |
| JEP 411: Java's Security Model and the Principle of Least Privilege | Peter Firmstone | 9,794 |
| Open Source Tools as an Opportunity for SMEs to Use AI? | Nguyen Pham | 4,152 |
| Announcing New Book Review: "Java by Comparison" | Cay Horstmann | 5,409 |
| Asynchronous CompletableFuture Java Challenge | Rafael del Nero | 4,526 |
| Released: JReleaser 0.4.0 is Now Available | Andres Almiray | 2,541 |
| Creating a Simple Spring Boot Application in IntelliJ IDEA | Helen Scott | 22,428 |
| Automatic WildFly Managed Domain Clustering & Scaling in Containers | Tetiana Fydorenchyk | 5,309 |
| Interviews with Robert Savage & Johan Vos on Java on the Raspberry Pi | Frank Delporte | 3,897 |
| Getting Started Hacking Third-Party APIs on the JVM | Nicolas Frankel | 2,411 |
| Getting Started with Jakarta EE 9: Context & Dependency Injection | Jadon Ortlepp, Rudy De Busscher | 3,146 |
| Announcement: Jakarta EE 9.1 Has Been Released! | Ivar Grimstad | 3,186 |
| Welcome to the FXGL Game Engine 11.16 Release | Almas Baimagambetov | 3,604 |
| Take the Type Erasure Generics Java Challenge! | Rafael del Nero | 4,182 |
| Why JEP 411 Will Have a Negative Impact on Java Security | Peter Firmstone | 7,668 |
| Querying Your In-Memory-Data-Grid: Why and How? | Nicolas Frankel | 2,288 |
| Demystifying Java Virtual Machine Memory Management | Deepu K Sasidharan | 14,028 |
| Creating a JavaFX World Clock from Scratch (Part 5) | carl-dea | 5,917 |
| Controlling an LCD Display with Spring and Thymeleaf on the Raspberry Pi | Frank Delporte, Igor De Souza | 6,313 |
| VS Code s Getting Better & Better for Java | Yaojin Yang | 13,184 |
| The Map, Equals, Hashcode Java Challenge | Rafael del Nero | 5,409 |
| Sanitize All Input! Sanitize All Input! Sanitize All Input! | Brian Vermeer | 9,849 |
| Introducing Teeing: A Hidden Gem in the Java API | Nicolas Frankel | 3,127 |
| 7 Functional Programming Techniques in Java: A Primer | Deepu K Sasidharan | 7,998 |
| Optional takeWhile dropWhile Java Challenge | Rafael del Nero | 3,018 |
| A Real-World Example of a Stream Collector | Nicolas Frankel | 3,108 |
| Preventing YAML Parsing Vulnerabilities in Java | Brian Vermeer | 4,009 |
| Payara Services Wins Prestigious Queen’s Award! | Jadon Ortlepp | 3,194 |
| Elastic JVM: Configuring G1 GC for Automatic Vertical Memory Scaling | Tetiana Fydorenchyk | 9,080 |
| Why Java Developers Continue to Rely on Jakarta EE | Ivar Grimstad | 3,657 |
| Snake Game with JavaFX FXGL in Three Pair-Programming Sessions | Almas Baimagambetov, Frank Delporte | 6,728 |
| New Book Announcement: "Java Challengers" | Rafael del Nero | 3,706 |
| Taking a Closer Look at Kotlin's Delegation | Nicolas Frankel | 4,149 |
| Are You New Yo Java? Here Are Some Resources | Helen Scott | 3,271 |
| Fix Java Security Issues While Coding in IntelliJ IDEA | Brian Vermeer | 4,585 |
| Java Garbage Collection Types & Settings Customization via Jelastic PaaS | Tetiana Fydorenchyk | 7,397 |
| Beginning JavaFX Applications with IntelliJ IDE | Carl Dea | 48,735 |
| SKP's Core Java/Java EE Roots: Gang of Four Design Patterns - Part 01 | Sumith Puri | 4,385 |
| An Example of Overengineering - Keep it WET | Nicolas Frankel | 2,631 |
| JavaFX Running in Kiosk Mode on the Raspberry Pi | Frank Delporte | 4,440 |
| Modern JavaFX Game Development with FXGL - Pong | Almas Baimagambetov | 7,595 |
| Take the 2021 Jakarta EE Developer Survey | Ivar Grimstad | 2,759 |
| How to Create a REST API with Jakarta EE 9 | Jadon Ortlepp, Rudy De Busscher | 5,293 |
| Hazelcast, from Embedded to Client-Server | Nicolas Frankel | 3,164 |
| Namespace Shadowing (a.k.a. “Dependency Confusion”) Attack | Baruch Sadogursky | 6,488 |
| Building Microservices with Spring Boot Fat (Uber) Jar | Tetiana Fydorenchyk | 5,948 |
| Welcome to the New Java Welcome Page for VS Code | Yaojin Yang | 3,821 |
| About IntelliJ IDEA Changelists and Git Staging | Helen Scott | 30,432 |
| 8 Best Practices to Prevent SQL Injection Attacks | Brian Vermeer | 10,900 |
| How to create your own custom Spring Data repository | Nicolas Frankel | 2,770 |
| Taking A Deep Dive Into Multi-Threading in Java | Sumith Puri | 10,918 |
| Jenkins Cluster for Continuous Integration and Delivery in Jelastic PaaS | Tetiana Fydorenchyk | 4,281 |
| Creating a JavaFX World Clock from Scratch (Part 4) | Carl Dea | 5,426 |
| How to Change a Field's Type in Recent JDKs | Nicolas Frankel | 5,160 |
| Getting Started with Jakarta EE 9: Hello World | Jadon Ortlepp, Rudy De Busscher | 3,441 |
| Getting Started with Java 16 and IntelliJ IDEA | Mala Gupta | 7,336 |
| Creating a JavaFX World Clock from Scratch (Part 3) | Carl Dea | 7,306 |
| Participate in the Java Ecosystem Survey 2021 | Brian Vermeer, Geertjan Wielenga | 4,799 |
| Introduction to Java Records: Data carrier classes | Vipin Sharma | 3,821 |
| Latest Java Releases and Eclipse Java IDE | Noopur Gupta | 8,338 |
| A (Definitive?) Guide to LazyInitializationException | Nicolas Frankel | 2,739 |
| Interview on Machine Learning and Disruptive Data Science | Kevin Farnham | 3,709 |
| Billion Events Per Second, Millisecond Latency: Giga Streaming Analytics | Marko Topolnik | 5,415 |
| DevOps 101 Part III: Package Management | Kat Cosgrove | 3,858 |
| Spring Boot, Java 16, and New Java Records | Ashish Choudhary | 3,419 |
| Kicking Spring Native's Tires with GraalVM | Nicolas Frankel | 2,775 |
| Secure Code Review Best Practices (Part 2) | Brian Vermeer | 3,417 |
| DevOps 101 Part II: Introduction to Container Registries | Kat Cosgrove | 3,023 |
| Highlights of the Newest and Latest JEPs in Java 16 | Geertjan Wielenga | 4,568 |
| Getting Started with Java Testing with VS Code | Yaojin Yang | 10,404 |
| Custom Controls in JavaFX (Part VII): JDK Butler | Gerrit Grunwald | 5,547 |
| Secure Code Review Best Practices (Part 1) | Brian Vermeer | 5,108 |
| Embracing JVM unified logging (JEP-158 / JEP-271) | Brice Dutheil | 12,200 |
| Download OpenJDK Today! | Geertjan Wielenga | 3,588 |
| Intro for Java Devs to DevOps 101 Part I: CI/CD | Kat Cosgrove | 4,037 |
| How to Convert a 3rd Party Library to the New Jakarta Namespace | Jadon Ortlepp, Rudy De Busscher | 8,694 |
| Foojay Announces Initial Companies Making Up Its Advisory Board | Geertjan Wielenga | 2,580 |
| Custom Controls in JavaFX (Part VI) -- Canvas Class | Gerrit Grunwald | 8,993 |
| "Biggest Project Yet for the New Java Community Platform, Foojay" | Jadon Ortlepp | 2,793 |
| Running Spring Boot Applications on OpenShift | Ashish Choudhary | 3,223 |
| Virtual Tour Is Biggest Project Yet For Java Community Platform Foojay | Geertjan Wielenga, Jadon Ortlepp | 2,545 |
| Evolution of Java Memory Architecture (Post Java 7.0) | Sumith Puri | 6,207 |
| Monitoring Across Frameworks: Spring Boot, Quarkus, Micronaut, Helidon | Nicolas Frankel | 7,910 |
| Introduction to JVM Unified Logging (JEP-158 / JEP-271) | Brice Dutheil | 19,520 |
| Deploying Spring Boot Application on Kubernetes | Ashish Choudhary | 4,097 |
| Custom Controls in JavaFX (Part V): Region Class | Gerrit Grunwald | 7,340 |
| Evolution of Java Memory Architecture (Pre Java 8.0) | Sumith Puri | 6,559 |
| Towards Continuous Performance Regression Testing | Gunnar Morling | 3,064 |
| Delegation vs. Inheritance in Graphical User Interfaces | Sven Ruppert | 3,650 |
| Modules, Modules, Everywhere, on Maven Central! | Christian Stein | 4,684 |
| Much Ado About Nothing (Also Known As "Null") In Java | Simon Ritter | 4,518 |
| Payara Platform 2021 Survey Ready For You! | Jadon Ortlepp | 2,452 |
| Learning About Optional.stream() in OpenJDK and Java | Nicolas Frankel | 4,245 |
| Here's The Schedule for Foojay Virtual JUG Tour! | Ari Waller, Geertjan Wielenga | 5,586 |
| Custom Controls in JavaFX (Part IV): Control & Skin Classes | Gerrit Grunwald | 16,009 |
| Demystifying Google Container Tool, Jib: Java Image Builder | Ashish Choudhary | 4,061 |
| Introduction to MicroProfile OpenTracing with Jaeger | Jadon Ortlepp | 2,572 |
| Improved JFR Allocation Profiling in JDK 16 | Jaroslav Bachorik | 6,062 |
| Java Development with VS Code on the Raspberry Pi | Frank Delporte | 6,254 |
| Custom Controls in JavaFX (Part III) -- Extend an Existing Control | Gerrit Grunwald | 11,510 |
| Safe Writing to Files in IoT and Industrial Systems | Michael Roeschter | 3,126 |
| Eliminate the Nightmare of Debugging Java Concurrency Bugs | Vipin Sharma | 2,651 |
| Generating Boilerplate Code with IntelliJ IDEA | Helen Scott | 5,466 |
| The SolarWinds Hack for Java Developers | Erik Costlow | 4,740 |
| Getting Started with VS Code for Java Developers | Yaojin Yang | 7,375 |
| Custom Controls in JavaFX (Part II) -- Combining Existing Controls | Gerrit Grunwald | 8,286 |
| "Foojay: A Place for Friends Of OpenJDK" - ADT Magazine | Geertjan Wielenga | 3,069 |
| OIDC Client with Mutual TLS Client Authentication | Michal Trojanowski | 9,746 |
| Quick Security Wins and Getting Started with DevSecOps | Sven Ruppert | 3,825 |
| Migrating Browser-Based Java Applets to IcedTea-Web using JNLP | Holger Isenberg | 21,797 |
| How to Create Self-Contained Executable JARs | Nicolas Frankel | 2,664 |
| How to Use Custom Controls in JavaFX (Part I) | Gerrit Grunwald | 29,162 |
| Azul, Datadog, DataStax, JFrog, Payara, Snyk on Foojay Advisory Board | Geertjan Wielenga | 4,467 |
| Explaining Java Deserialization Vulnerabilities (Part 2) | Brian Vermeer | 8,842 |
| How to Create a Kubernetes Operator in Java | Jadon Ortlepp | 2,916 |
| Announcing the Upcoming Virtual Foojay JUG Tour! | Ari Waller, Geertjan Wielenga | 4,553 |
| IntelliJ IDEA: Let's Go Beyond The Basics! | Hamza Belmellouki | 4,368 |
| A Compendium of 2021 Java & OpenJDK Predictions | Kevin Farnham | 4,568 |
| Explaining Java Deserialization Vulnerabilities (Part 1) | Brian Vermeer | 8,187 |
| Vert.x Example on the Raspberry Pi with a Virtual Potentiometer | Igor De Souza | 3,595 |
| CI/CD Workflow for Spring Boot Applications on Kubernetes via Skaffold | Ashish Choudhary | 3,154 |
| Tips on High Performance Rendering in JavaFX | Almas Baimagambetov | 24,740 |
| Hacking Java XML Input via External Entity Injection | Brian Vermeer | 4,288 |
| Preview of January 2021 OpenJDK Update Release | Geertjan Wielenga | 2,666 |
| 3 Ways to Refactor Your Code in IntelliJ IDEA | Helen Scott | 7,211 |
| How to Do Device Monitoring with JavaFX and FXGL | Almas Baimagambetov, Frank Delporte | 6,301 |
| How To Bring Your Java Microservices To The Cloud | Jadon Ortlepp | 2,630 |
| Friends Of OpenJDK Schedule at FOSDEM 2021 | Geertjan Wielenga | 2,635 |
| Let's Do Some Java Syntax Puzzlers Today | Benjamin Muskalla | 3,566 |
| Local Variable Type Inference: Declare Var, Not War | Ashish Choudhary | 6,284 |
| What Are Your Java Predictions, Hopes, and Dreams For 2021? | Geertjan Wielenga | 4,211 |
| Containerizing Spring Boot Applications with Jib | Ashish Choudhary | 5,149 |
| What Are Your Java Predictions for 2021: Jakarta EE | Jadon Ortlepp | 3,977 |
| Java Predictions for 2021: Raspberry Pi and Java | Frank Delporte | 2,758 |
| 5 Tips to Create Secure Docker Images for Java Applications | Brian Vermeer | 9,598 |
| Creating a JavaFX World Clock from Scratch (Part 2) | Carl Dea | 6,600 |
| Light Up your Christmas Tree with Java and Raspberry Pi | Frank Delporte | 3,592 |
| How to Avoid NullPointerException in Java Code | Victor Rentea | 4,001 |
| Cloud Myth: Ahead of Time Compilation Will Save You Money | Jadon Ortlepp | 2,685 |
| Summer with Covid-19 in Australia, New Zealand and Polynesia | Johannes Weigend | 3,072 |
| Join Friends Of OpenJDK at FOSDEM 2021 | Geertjan Wielenga | 3,762 |
| Run WebSphere Liberty and Open Liberty on OpenShift | Reza Rahman | 3,512 |
| How & When to Use JDK Flight Recorder in Production | Brice Dutheil | 7,546 |
| Creating a JavaFX World Clock from Scratch (Part 1) | Carl Dea | 13,524 |
| Separate Covid-19 Waves in Europe and South America | Johannes Weigend | 3,046 |
| Immutable Collections in Java with Sealed Types | Don Raab | 7,149 |
| Creating CAD Applications with Java and JavaFX | Pedro Duque Vieira | 6,745 |
| Minimizing Security Risks in Application Development | Brian Vermeer | 4,235 |
| Primitive Set Operations in Eclipse Collections | Sirisha Pratha | 3,160 |
| Where is the 2nd Wave in Russia and China? | Johannes Weigend | 3,005 |
| What are Hidden Classes in Java 15 And How Are They Used? | Vipin Sharma | 8,943 |
| MicroProfile Metrics with Prometheus and Grafana | Jadon Ortlepp | 2,861 |
| Why I Love IntelliJ IDEA for Java Development | Matt Raible | 4,829 |
| Using Java to Analyze The Second Wave Breaking in Europe | Johannes Weigend | 3,149 |
| Apple Silicon with Zulu OpenJDK and IntelliJ IDEA | Geertjan Wielenga | 16,221 |
| Native Applications from a JavaFX Project for Multiple Devices | Frank Delporte | 6,638 |
| It's all IntelliJ IDEA's Fault: IntelliJ IDEA Made Me Lazy | Helen Scott | 2,935 |
| Use Query Parameterization to Prevent Injection | Brian Vermeer | 3,969 |
| COVID-19 Time Series Analysis with Software EKG | Johannes Weigend | 4,086 |
| Astra Service Broker: Tradeoff-Free Cassandra in Kubernetes | Christopher Bradford | 2,402 |
| Using Java Flight Recorder and Mission Control (Part 3) | Brice Dutheil | 3,250 |
| Seven Ways to Contribute to the OpenJDK | Kevin Farnham | 7,275 |
| Starting a JavaFX Project with Gluon Tools | Frank Delporte | 16,321 |
| Run Oracle WebLogic Server on Azure Kubernetes Service | Reza Rahman | 3,384 |
| For the Record: A Little Less Conversation, A Little More Action | Sirisha Pratha | 3,191 |
| Getting Started with FXGL Game Development | Almas Baimagambetov, Frank Delporte | 7,430 |
| Avoid Java Serialization: The Gift That Keeps On Giving | Brian Vermeer | 6,240 |
| Getting Started Quickly and Easily with Payara Server | Jadon Ortlepp | 7,645 |
| Continuous Production Profiling and Diagnostics | Marcus Hirt | 7,772 |
| How to Configure Your Java XML Parsers to Prevent XXE Attacks | Brian Vermeer | 13,129 |
| Using Java Flight Recorder and Mission Control (Part 2) | Brice Dutheil | 4,085 |
| OpenJDK, JDKs and Every Java Acronym in Between | Helen Scott | 15,068 |
| Securing Microservices with Auth0 and MicroProfile in Kubernetes | Jadon Ortlepp | 3,110 |
| "Foojay - All About Java and the OpenJDK" -- I Programmer | Geertjan Wielenga | 3,254 |
| Using Java Flight Recorder and Mission Control (Part 1) | Brice Dutheil | 9,411 |
| Spring Boot: Strategy Design Pattern - Convenience and Limitation | Karl Heinz Marbaise | 5,172 |
| Details on OpenJDK vs. OpenJFX Release Cycles | Frank Delporte | 10,229 |
| Handling JDK & GC Options Dynamically in Elasticsearch | Alexander Reelsen | 7,319 |
| JavaFX 3D: A Look Back Through History & Some Experiments | Frank Delporte | 9,135 |
| Live Templates for Java Developers in IntelliJ IDEA | Helen Scott | 5,160 |
| Evolution of the Growth in Interest in Microservices | Jadon Ortlepp | 3,421 |
| Peter Lawrey Talks about Low-Latency, High-Performance Java | Kevin Farnham | 6,721 |
| Building OpenJDK from GitHub Sources on 64-bit Raspberry Pi | Frank Delporte | 7,886 |
| Fixing Vulnerabilities in Maven-Based Projects | Brian Vermeer | 7,048 |
| JDK 15 Hidden Classes (JEP 371) for the JVM | Simon Ritter | 4,473 |
| What's New in the Payara Platform October Release? | Jadon Ortlepp | 5,167 |
| Gluon is focused on end-to-end Java solutions | Bruno Lowagie | 6,730 |
| Cross-Platform Development in Java with Gluon and GraalVM | Bruno Lowagie | 5,798 |
| 64-bit Raspbian OS on Raspberry Pi 4 with USB Boot | Frank Delporte | 6,015 |
| JDK 15 Sealed Classes: Fine-Grained Mechanism for Inheritance | Simon Ritter | 4,190 |
| Why You Should Join EclipseCon Community Day | Reza Rahman | 2,625 |
| Quick Start with Machine Learning for Java | Zoran Sevarac | 4,074 |
| Electronics & Micronaut Velocity with Raspberry Pi | Frank Delporte, Igor De Souza | 4,075 |
| What do you think was the reason that Java was invented? | Kevin Farnham | 5,021 |
| New to IntelliJ IDEA by JetBrains? Me Too! | Helen Scott | 3,834 |
| 5 Minute Azure Survey: Java EE, Jakarta EE, and MicroProfile | Reza Rahman | 3,422 |
| Electronics & Quarkus Qute on Raspberry Pi | Frank Delporte, Igor De Souza | 4,063 |
| Getting Started with Babel for Java and OpenJDK | Anton Epple | 3,626 |
| Timing Compiling .java Code Files and Executing .class Bytecode | Kevin Farnham | 11,203 |
| WebLogic on Azure Virtual Machines Major Release Available | Reza Rahman | 6,238 |
| Getting Started Learning Java as a First Language | Matt Raible | 3,390 |
| Spectacular Java Projects on the Raspberry Pi | Frank Delporte | 9,683 |
| Getting Started with a Simple Service with Spring Boot | Josh Juneau | 8,432 |
| Azul Zulu OpenJDK 15 on the Raspberry Pi | Frank Delporte | 9,224 |
| Startup Speed of Spring and Quarkus JARs on the Raspberry Pi | Frank Delporte | 5,491 |
| What's New, Noteworthy, and Enhanced in Java 15? | Geertjan Wielenga | 3,864 |
| What is JVM Bytecode? | Kevin Farnham | 6,659 |
| What's New, Noteworthy, and Enhanced in JavaFX 15? | Bruno Lowagie | 4,124 |
| Useful Hotspot JVM Options for Today: Heap Sizing | Jean-Philippe Bempel | 4,348 |
| Facelift and Redesign for Foojay Homepage | foojat | Geertjan Wielenga | 2,908 |
| Running Single-File Java Source Code Without Compiling (Part 2) | Mohamed Taman | 3,781 |
| Why the JVM Is a Brilliant Platform for New Programming Languages | Kevin Farnham | 4,534 |
| Running Single-File Java Source Code Without Compiling (Part 1) | Mohamed Taman | 4,863 |
| Interview: Frank Delporte, Foojay Raspberry Pi Community Manager | Geertjan Wielenga, Frank Delporte | 3,969 |
| Java 11 & JavaFX 11 on Raspberry Pi with ARMv6 Processor | Frank Delporte | 15,191 |
| JmFrX: A Bridge From JMX to Java Flight Recorder | Gunnar Morling | 2,839 |
| Installing Java and JavaFX on the Raspberry Pi | Frank Delporte | 6,886 |
| Interview: Chris Newland & Java Command Line Switches | Geertjan Wielenga | 4,924 |
| 10 Basic Questions About PDF Files for Java Developers | Mark Stephens | 4,253 |
| Stream.concat vs. New ArrayList Performance | Karl Heinz Marbaise | 5,826 |
| Monitoring REST APIs with Custom Java Flight Recorder Events | Gunnar Morling | 3,253 |
| Interview: Marc Hoffmann and Java Version Almanac | Geertjan Wielenga | 4,906 |
| Container Awareness for Java Developers Today | Ray Tsang | 5,017 |
| How to get a JavaFX App on ZuluFX in 60 Seconds | Carl Dea | 27,621 |
| Java, C, and Python: Today's Most Used Program Languages? | Kevin Farnham | 4,514 |
| A Closer Look at Java Flight Recorder Streaming | Marcus Hirt | 4,996 |
| Is Java Still an 'Emerging Technology' Today? | Kevin Farnham | 2,876 |
| Sub-10 ms Latency in Java: Concurrent GC with Green Threads | Marko Topolnik | 5,156 |
| Azure Active Directory, OpenID Connect, Open Liberty, and Java | Reza Rahman | 7,242 |
| Overview of JVM Vendors and Choosing the Right One | Marcus Hirt | 19,671 |
| Highlights of Changes to the Core Java Platform | Simon Ritter | 3,910 |
| Performance of Modern Java on Heavy Workloads: Low-Latency Rematch | Marko Topolnik | 6,156 |
| How does Java handle different Images and ColorSpaces – Part 4 | Mark Stephens | 7,956 |
| How does Java handle different Images and ColorSpaces – Part 3 | Mark Stephens | 8,051 |
| How does Java handle different Images and ColorSpaces – Part 2 | Mark Stephens | 7,921 |
| How does Java handle different Images and ColorSpaces – Part 1 | Mark Stephens | 8,407 |
| Performance of Modern Java on Data-Heavy Workloads: Batch Processing | Marko Topolnik | 9,250 |
| Performance of Modern Java on Workloads: Real-Time Streaming | Marko Topolnik | 9,626 |
| Fun with Flags: My Top 10 Resources for JVM Flags | Betsy Rhodes | 11,493 |
| JDK14 - New Features and Enhancements | Simon Ritter | 9,578 |
| OpenJDK Update Release Details Dashboard | Geertjan Wielenga | 9,436 |
| foojay: A Place for Friends Of OpenJDK | Geertjan Wielenga | 8,775 |