Introducing Parkographer: Track (and Prove) Every U.S. National Park You've Visited Parkographer is a free tracker for all 63 U.S. National Parks - check off your visits, fill in your map, earn ranks, and GPS-verify you were really there.
Fintech Toolbox: A Free Browser-Based utilitiy for Engineers in finance A free, browser-based toolbox for fintech engineers and payment ops teams - parse NACHA ACH and ISO 20022 files, validate in real time, anonymize sensitive data, and track Fed cutoff windows. No install, no login.
Spring @Transactional Deep Dive: Proxies, Propagation, and the Traps That Still Catch Senior Engineers How Spring @Transactional actually works under the hood — proxies, thread-locals, propagation mechanics, rollback rules, and the silent failures that trip up experienced engineers.
Scaling an LSM-Tree: Thread-Safety and the Art of Non-Blocking Moving from a single-threaded datastore to a high-throughput, concurrent LSM-tree isn't just about adding locks—it's about protecting invariants. Learn how to implement non-blocking reads and memtable rotation to build a database that is both thread-safe and fast.
Why Your @Retryable Fails with @Transactional in Spring (and How to Fix It) Learn why Spring's @Retryable can silently fail with @Transactional due to AOP advice ordering — plus two production-ready fixes
Java File writing I/O performance Boost Java file writing performance by choosing the right I/O method. Learn how BufferedWriter, FileChannel, and RandomAccessFile impact speed, durability, and efficiency—plus how I achieved a 4x faster commit-log write in my LSM tree database. 🚀
Building a Database III - Bloom filters and performance Learn how to integrate Bloom filters into a Log-Structured Merge Tree (LSM) datastore for faster data lookups and improved performance. This article covers the implementation process, performance testing, and key insights from optimizing the filter in a real-world use case.
Practical use of generics in Java Dive into the world of Java generics as we transform a simple key-value store to support any data type! This post breaks down the process of refactoring code for flexibility, covering the hurdles I faced along the way. Perfect for developers wanting to level up their designs with generics! đź’ˇ
Building a database II - B-Trees Explore how B-Trees work, their role in database indexing, and how they compare to LSM trees. This post covers insertion, search, and deletion with a hands-on implementation, highlighting key challenges like restructuring. A great starting point for developers diving into B-Trees! 🚀
Open sourcing AtlasNinja Discover AtlasNinja: an open-source interactive map for exploring global data, now available on GitHub.