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.

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
Free NVIDIA Models

How to add NVIDIA free models to VS Code

NVIDIA offers free access to their powerful Nemotron models through their NVIDIA Build platform. In this post, I’ll walk you through how to get a free API key and configure it in VS Code to use models like nvidia/nemotron-3-ultra-550b-a55b directly in VS Code. Also you can choose any other model from here. Prerequisites VScode needs to be above 1.27 it needs to have customendpoint supporting Getting Your Free NVIDIA API Key Go to build.nvidia.com Sign in or create an NVIDIA account Navigate to the model you want to use (e.g., Nemotron 3 Ultra) Click “Get API Key” button Note: In my experience, the “Get API Key” button in the UI didn’t work properly (it appeared to do nothing). If this happens to you, here’s how to get your API key: ...

July 19, 2026 · 4 min · Özkan Pakdil
Code Hygiene: The Architectural Shield

Beyond Functionality: Why Code Hygiene is Your Project's Immune System

In the world of software engineering, we often obsess over the “Testing Pyramid.” We pour resources into unit tests, integration tests, and E2E suites. These are critical, they tell us that our features work as designed. But there’s a shadowy category of bugs that traditional tests often miss: the architectural “anti-patterns” and “API misuses” that don’t break functionality today but lead to system failures, memory leaks, or portability issues tomorrow. ...

April 22, 2026 · 4 min · Özkan Pakdil
Vulkan acceleration on Debian

Accelerating LLMs on Debian 13: Setting up Vulkan for llama.cpp

After setting up CUDA on my other laptop, I moved to a different(older) machine that doesn’t have an NVIDIA GPU. This one is an everyday laptop with integrated Intel graphics, but that doesn’t mean we have to settle for slow CPU-only performance. On this machine, I switched to the Vulkan backend for llama.cpp and the results were even more dramatic than I expected. Machine Hardware Info This laptop is running Debian 13 (Trixie/Sid) with the following specs: ...

March 22, 2026 · 3 min · Özkan Pakdil