Eclipse Collections vs JDK Collections Performance Comparison

Eclipse Collections vs JDK Collections: A Performance Deep Dive

The Spark The other day I came across a fascinating post on Substack by Skilled Coder about Java data structure performance. The post showed some eye-opening numbers for 10M operations: Get operations: HashMap.get() → ~140 ms TreeMap.get() → ~420 ms ArrayList.get(i) → ~40 ms LinkedList.get(i) → ~2.5 s Insertion (10M elements): ArrayList.add() → ~180 ms HashMap.put() → ~300 ms LinkedList.add() → ~900 ms This got me thinking: how do these numbers compare to Eclipse Collections? And more importantly, how can we calculate these numbers ourselves using open source tools? ...

December 29, 2025 · 3 min · Özkan Pakdil
MacOs on QEMU KVM

MacOS on debian QEMU KVM

From Frustration to Breakthrough: Running macOS on KVM For years, I chased the dream of running macOS in a virtual machine. On Windows, I tried VMware and VirtualBox countless times with different tutorials and blogs. Each attempt ended in frustration: crashes, unsupported hardware, endless configuration rabbit holes. It felt like a goal always just out of reach. And finally I found https://github.com/kholia/OSX-KVM it has the readme which explains the steps for setting up. ...

November 13, 2025 · 2 min · Özkan Pakdil
Paint, a lightweight image editor for quick edits

Paint, a lightweight image editor for quick edits

Why I built Paint Whenever I wanted to make a very small edit on my Debian laptop, crop a screenshot, add a quick arrow, or block out a small area, the system only had GIMP for editing images. Powerful, but heavy and slow for tiny, frequent tasks. I wanted something nimble: quick to open, easy to use, and focused on the common one-off edits people do dozens of times a day. ...

November 12, 2025 · 5 min · Özkan Pakdil
How to run the agent (generic Java) and where the metadata is used

GraalVM Native Image Agent - reachability metadata: how to run it, where files go

In short Run the app java -agentlib:native-image-agent=config-output-dir=./graalcnf/ -jar target/app.jar Copy the generated files from ./graalcnf/ to the project under src/main/resources/META-INF/native-image/<groupId>/<artifactId>/ Build the native image mvn -ntp package -Pnative -DskipTests TLDR Native Image needs reachability metadata so it can include dynamic features your app uses at run time (reflection, resources, proxies, serialization, JNI). The simplest way to get this metadata is to run your app on the JVM with the Native Image Agent and then use the generated JSON files during the native build. ...

September 16, 2025 · 2 min · Özkan Pakdil
Pagination Pitfall Cover

The Pagination Pitfall: A React + Spring Boot Cautionary Tale

🚀 The Pagination Pitfall: A React + Spring Boot Cautionary Tale The Setup: “It’ll Be Fine…” A few years ago, I was working on a dashboard application with a React frontend and a Spring Boot backend. The task seemed simple: display a list of users with pagination. One of the newer devs suggested: “Let’s just fetch everything once and paginate on the client side - it’ll be faster for the user.” ...

August 7, 2025 · 3 min · Özkan Pakdil