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.

geotop GUI dashboard with a world map, animated connection arcs, top-talkers chart and live connection log

First prize at IP2Location 2026: the six-day build log behind geotop

The 2026 IP2Location Programming Contest winners are out, and geotop took first prize. The award is USD $500 plus a two-year IP2Location.io Security Plan; the winners page values the whole package at USD $12,476. Second and third went to geotail and LocaSentinel. The short version is easy: geotop won. This is the longer one. I went back through both repositories — 34 commits in geotop, one in GeoSentinel-Ingress — and reconstructed what actually happened between 3 and 9 August 2026: what was deliberate, what was discovered by breaking a release, and what I would change before the next tag. ...

October 27, 2026 · 15 min · Özkan Pakdil
MariaDB versus MySQL versus PostgreSQL benchmark

MariaDB vs MySQL vs PostgreSQL: an mpazari Benchmark

I recently compared MariaDB, MySQL, and PostgreSQL using the real mpazari.com application. The goal was not to produce a synthetic database benchmark. I wanted to answer a more practical question: does MariaDB really have an advantage when an application sends many simple queries? This question came up after reading an argument that PostgreSQL is obviously faster than MySQL, but that MariaDB should be faster for applications with many simple queries, while PostgreSQL is probably better for complex joins. The suggestion was that a MariaDB versus PostgreSQL comparison would be more interesting than a PostgreSQL versus MySQL comparison. ...

September 23, 2026 · 6 min · Özkan Pakdil
java spring to rust warp

From Spring Boot to Rust: Rewriting a Live Marketplace

From Spring Boot to Rust: Rewriting a Live Marketplace mpazari.com spent years on a legacy ASP.NET stack — the .aspx URLs still in the wild prove it. A recent Spring Boot rewrite replaced that engine, first as a JVM jar, then as a GraalVM native image to tame memory usage. The question that started this project: if we rewrote the whole application in Rust, what would we gain, what would we break, and how do we prove we broke nothing? This post covers the rewrite, the parity hunting, the server-side build/deploy pipeline, and the load test comparing all three runtimes on the same production box. ...

September 21, 2026 · 5 min · Özkan Pakdil
mysql to pg upgrade

From MySQL to PostgreSQL: a much lighter server

I recently migrated mpazari.com, a Turkish motorcycle classifieds site, from MySQL 8 to PostgreSQL 12. The application is a Spring Boot 4 / Java 25 GraalVM native image using hand-written SQL. The migration involved moving the existing database, adapting the MySQL-specific queries, and testing the application against a real production snapshot. The migration was completed with approximately three minutes of downtime. The main steps were: Create the PostgreSQL schema. Copy the MySQL data into PostgreSQL. Update the application queries for PostgreSQL. Run the test suite and verify the row counts. Stop the application, perform the final copy, switch the JDBC URL, and restart it. PostgreSQL’s stricter typing exposed a few old data and SQL issues that MySQL had silently accepted. The test suite helped find and fix those issues before the production cutover. ...

September 18, 2026 · 2 min · Özkan Pakdil
Playwright Resource Monitor: browser window with a breach arrow crossing the 70% threshold

Playwright Resource Monitor: making CI fail when your browser tabs burn CPU

Green build, slow pages. That combination has annoyed me for years: Playwright happily reports 136/136 passing while the browser quietly burns 90% of one core on a badly-behaved tab, or the whole runner sits at 99% memory and everything gets suspiciously slow. Test outcomes say nothing about how much resource the tests consumed. Resource waste in CI is exactly the kind of thing you want to fail loudly, not discover from user complaints later. ...

August 30, 2026 · 6 min · Özkan Pakdil