Surinder·Jul 7The Mechanics of JVM Bytecode ManipulationExploring the various byte code manipulation tools to find how frameworks like Mockito, AOP, APM tools use them
Surinder·Jul 5Java Agents in JVM: Intercepting Class Loading for Instrumentation HooksUnpacking the magic of Java Agents: How bytecode is intercepted and transformed on the fly.
Surinder·Jun 28From Raw Servlets to Spring Boot- Java Web Apps EvolutionTaking a deeper look at SpringBoot Request Dispatching- Servlets and their role
Surinder·Jun 16Virtual Address Resolution: From TLB Hits to Demand PagingHow Virtual address generated by CPU are resolved by MMU to fetch data from hierarchy of CPU caches and computer memory
Surinder·Jun 7The Evolution of Malloc: How Memory Allocators improved Concurrency and ScaleA journey through the history of various memory allocators and how they evolved over time.
Surinder·May 23From 60 to 12 Minutes: Debugging Thread Starvation in an Embedded DuckDB ServiceHow an 8-hour production outage led us to a 5x speedup — and a deeper understanding of DuckDB’s connection threading model.
Surinder·May 16CPU Caches- How Data Actually Travels From RAM to Your CPUMy Notes about CPU caches and their main memory address resolution
Surinder·Mar 22ZGC Internals: Colored Pointers, Generational Collection in Java 21Digging into colored pointers, load barriers, forwarding tables and how they work together in ZGC
Surinder·Feb 22Decoding the 32GB Heap Limit: Compressed OOPs vs. Compressed Class PointersA sneak peek into Compressed Ordinary Object Pointers and Class Pointers Metadata
Surinder·Feb 8Inside the JVM: The G1 Collector Deep DiveA Deep Dive into Region-Based Collection, Card tables and Remembered Sets