Welcome to Özkan Pakdil’s Blog

👋 Hello! I’m Özkan Pakdil, a software engineer with professional experience since 2004.

  • I specialize in Java development and C# but consider myself a full-stack developer with expertise in backend, database, server-side development, UI, and UX.

  • My technical journey spans various technologies including Spring Boot, Kubernetes, React, and many more. I’m a Linux enthusiast since 1999 and enjoy optimizing system performance.

  • This blog contains articles about technologies I use and my experiences in software development. Feel free to explore my projects on GitHub.

Atlassian MCP Integration

Atlassian MCP

I have been using Atlassian MCP with internal Confluence and Jira, and it has been wonderful. Finding internal information is often challenging and time-consuming. To be honest, searching through Jira or Confluence and locating the right information can be really difficult. Create Jira and Confluence API tokens from your internal site profile page. For example: https://internalconfluence.company.com/profile/personal for Confluence and https://jira.company.com/secure/admin/CreateAPIToken!default.jspa for Jira. These URLs may vary depending on your setup. Create an mcp.json file in the .vscode folder for Visual Studio Code, or place this MCP configuration in the appropriate folder for your IDE of choice: { "mcpServers": { "mcp-atlassian": { "command": "uvx", "args": ["mcp-atlassian"], "env": { "JIRA_URL": "https://jira.company.com", "JIRA_USERNAME": "your.email@company.com", "JIRA_API_TOKEN": "your_api_token", "CONFLUENCE_URL": "https://internalconfluence.company.com/wiki", "CONFLUENCE_USERNAME": "your.email@company.com", "CONFLUENCE_API_TOKEN": "your_api_token" } } } } Remember to run podman-desktop or docker desktop. Because this MCP works as a docker container. ...

February 8, 2026 · 1 min · Özkan Pakdil
Real-time File I/O Heatmap with eBPF and Java 25

Building a Real-time File I/O Heatmap with eBPF and Java 25

Have you ever wondered exactly which files are being hammered by your Linux system in real-time? While tools like iotop or lsof are great, sometimes you want something more visual, custom, and lightweight. In this post, I’ll walk you through how I built a Real-time File I/O Heatmap using the power of eBPF for data collection and Java 25 for a modern Terminal UI (TUI). What is eBPF and Why Use It? eBPF (Extended Berkeley Packet Filter) is a revolutionary technology that allows you to run sandboxed programs in the Linux kernel without changing kernel source code or loading kernel modules. ...

January 21, 2026 · 4 min · Özkan Pakdil
Bun Microservice Framework Benchmark Results

Bun Joins the Microservice Framework Benchmark: Surprisingly Fast JavaScript Runtime

Introduction Today I’m excited to announce the addition of Bun to our microservice framework benchmark suite. The results are nothing short of remarkable . Bun has proven to be one of the fastest runtimes in our entire test suite, competing directly with Rust frameworks! What is Bun? Bun is a modern JavaScript runtime built from scratch using Zig and JavaScriptCore (the engine that powers Safari). It’s designed to be a drop-in replacement for Node.js with a focus on: ...

January 10, 2026 · 4 min · Özkan Pakdil
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
PKIX errors to a clean mTLS + Feign + IAM demo

From PKIX errors to a clean mTLS + Feign + IAM demo

Why this post I started this mini‑project after seeing a common roadblock: PKIX path building failed when calling HTTPS services with OpenFeign. The goal was to create a tiny, runnable example that eliminates guesswork, shows how to configure client certificates and trust properly, and layers basic IAM policies on top. Reference: https://stackoverflow.com/questions/79835509/unable-to-configure-ssl-context-for-open-feign-client-getting-pkix-error What’s inside the example Two Spring Boot apps: Server: HTTPS on 8443, requires client certs (mTLS), and recognizes/authorizes callers with Spring Security’s X.509 support. Client: Spring Cloud OpenFeign calling the server via Apache HttpClient5 with a custom SSLContext. A one‑command cert toolchain (local CA → server/client certs → PKCS#12 keystores/truststores). An automated test script that runs a positive call (expected 200) and a negative call with an unauthorized client (expected 403). Project (ready to publish here): ...

December 5, 2025 · 3 min · Özkan Pakdil