CodeXpedite Logo
HomeAuthorsMurat Akdeniz
CodeXpedite Favicon

Murat Akdeniz

Murat Akdeniz writes about AI infrastructure, developer tools, software architecture, and production engineering. He explores how modern systems work beneath their abstractions, turning complex topics—from LLM routing and RAG pipelines to testing and secure infrastructure—into practical guidance for engineers.

Articles

Abstract diagram of a single trigger flowing through a chain of colored nodes toward an output, representing a NocoBase workflow.
System Design

NocoBase Workflows Explained: Triggers, Nodes, and the Four Key Concepts

A practical walkthrough of NocoBase's Workflow plugin: the four key concepts (workflow, trigger, node, execution), the three trigger types, and how nodes form event-driven automation.

Sep 7, 2026Read article
NocoBase Workflows Explained: Triggers, Nodes, and the Four Key Concepts
Abstract diagram of a three-component Windmill deployment with a proxy gateway in front.
Infrastructure as Code

Self-Hosting Windmill with Docker Compose: Server, Worker, and Postgres

A practical deployment guide for running Windmill on your own infrastructure using Docker Compose, covering the server-worker-Postgres architecture, the bundled Caddy stack, and VPS sizing.

Sep 7, 2026Read article
Self-Hosting Windmill with Docker Compose: Server, Worker, and Postgres
Split diagram contrasting in-band prompt rewriting on the left with an out-of-band compression middleware layer on the right.
Data & Databases

Caveman vs Headroom: In-Band Prompt Discipline vs Out-of-Band Compression

A focused comparison of Caveman's in-band prompt discipline and Headroom's out-of-band local compression proxy, framed around where each tool intervenes in the agent-to-provider pipeline.

Sep 5, 2026Read article
Caveman vs Headroom: In-Band Prompt Discipline vs Out-of-Band Compression
Decision diagram comparing compressed-output skill variants across model stacks
AI Agents & Orchestration

Caveman Alternatives Compared: Which Compressed-Output Skill Should You Pick?

A practical buyer's guide that compares Caveman variants against external alternatives, helping readers pick a compressed-output skill based on workflow, model, and stack rather than headline token-savings numbers.

Sep 5, 2026Read article
Caveman Alternatives Compared: Which Compressed-Output Skill Should You Pick?
Isometric diagram of a hybrid retrieval pipeline showing a query splitting into parallel dense vector and lexical keyword search branches, merging into one ranked list, then passing through a reranker stage to a final top-k output.
RAG & Knowledge Systems

How to Build a Hybrid Retrieval Pipeline: BM25, Dense Vectors, RRF, and Cross-Encoder Reranking

Why pure vector search misses exact product codes and names, and how to assemble the three-stage production baseline: parallel BM25 and dense candidate generation, Reciprocal Rank Fusion to merge the ranked lists, and a cross-encoder reranker for final ordering — implemented with Qdrant and Cohere.

Sep 4, 2026Read article
How to Build a Hybrid Retrieval Pipeline: BM25, Dense Vectors, RRF, and Cross-Encoder Reranking
Overhead view of a laptop showing a project management board beside a phone running a time-tracking timer and a row of invoices, representing a solo founder's productivity stack and its monthly software costs.
Solo SaaS

The Solo Founder's 2026 Productivity Stack: Real Tools, Real Monthly Costs

A layer-by-layer breakdown of the tools a solo SaaS founder actually pays for in 2026 — Toggl, Linear, daily.dev, SwipeGrowth, trial tracking, and the AI stack — with itemized monthly costs and free-tier-first upgrade rules.

Sep 4, 2026Read article
The Solo Founder's 2026 Productivity Stack: Real Tools, Real Monthly Costs
A translucent data cube divided into color-coded sections representing tenant isolation inside a shared Qdrant collection, with the words Tenant Isolation displayed on a floating interface panel.
RAG & Knowledge Systems

Qdrant Multi-Tenancy: One Shared Collection or One Per Tenant?

Shipping one RAG deployment to many organizations forces a hard question: one shared Qdrant collection with tenant filters, or a separate collection per customer? This guide compares both isolation strategies, explains how Qdrant's filterable HNSW keeps tenant data fast and separated, and maps how…

Sep 4, 2026Read article
Qdrant Multi-Tenancy: One Shared Collection or One Per Tenant?
An isometric 3D illustration of a glowing knowledge graph built from stacked documents, visualizing Ragas testset generation for RAG evaluation.
RAG & Knowledge Systems

Inside Ragas Testset Generation: Evolutionary Questions and the Three Models Behind Them

Ragas doesn't just write questions — it builds a knowledge graph from your documents and then evolves simple prompts into reasoning, conditioning, and multi-context challenges. Here is what the generator LLM, the critic LLM, and the embedding model are actually doing inside testset generation, and…

Sep 4, 2026Read article
Inside Ragas Testset Generation: Evolutionary Questions and the Three Models Behind Them
A sealed server cube inside a translucent glowing dome connected by mesh lines to a laptop, visualizing a VPS with zero open ports reachable only through a Tailscale tailnet.
Security & Reliability

Zero Open Ports: How to Make Your VPS Invisible to the Public Internet with Tailscale

Your VPS doesn't have to show a single open port to the public internet. Here's how to move SSH, admin panels, and databases onto Tailscale tailnet IPs only, close every inbound firewall rule, and write ACLs that assume your devices are already compromised — with a minimal two-server setup as the…

Sep 3, 2026Read article
Zero Open Ports: How to Make Your VPS Invisible to the Public Internet with Tailscale
A cutaway 3D visualization of a Dockerized RAG stack showing interconnected containers for the Gradio app, Ollama LLM server, and Milvus vector database with a document transforming into vector particles.
Containers & Serverless

Anatomy of a Dockerized RAG Stack: The Containers, Ingestion Stages, and Six-Step Query Flow

A Dockerized RAG stack can start anywhere from three to eight containers before you ask a single question — and knowing exactly what each one does turns confusion into control. This walkthrough maps the Gradio, Ollama, Milvus, and NVIDIA NIM containers, follows a PDF through the four-stage…

Sep 3, 2026Read article
Anatomy of a Dockerized RAG Stack: The Containers, Ingestion Stages, and Six-Step Query Flow
A 3D visualization of a stone gateway dissolving into a glowing mesh network, illustrating how Tailscale SSH replaces bastion-host access with node-key authentication.
Security & Reliability

Do You Still Need a Bastion Host? How Tailscale SSH Handles Keys and Authentication

Tailscale SSH claims port 22 on your tailnet IP, swaps authorized_keys for control-plane-managed node keys, and distributes host keys automatically — which makes your bastion host look suddenly redundant. Here is exactly what changes under the hood, plus the honest cases where you should still keep…

Sep 3, 2026Read article
Do You Still Need a Bastion Host? How Tailscale SSH Handles Keys and Authentication
Five floating smartphones connected by luminous protocol threads representing the Appium, Espresso, XCUITest, Detox, and Maestro mobile testing framework architectures compared at the architecture level.
Testing & Quality

Appium vs Espresso vs XCUITest vs Detox vs Maestro: Which Mobile Testing Architecture Fits Your Team?

Appium, Espresso, XCUITest, Detox, and Maestro solve mobile UI testing with five completely different architectures. This comparison breaks down each framework's synchronization model, setup cost, and flakiness trade-offs so mobile QA teams can pick the right tool for their platform, accuracy…

Sep 2, 2026Read article
Appium vs Espresso vs XCUITest vs Detox vs Maestro: Which Mobile Testing Architecture Fits Your Team?
A minimalist 3D illustration of a local AI workstation with floating GPU cards and glowing VRAM modules, representing hardware spec decisions for running LLMs locally.
AI Developer Tools

How to Spec a Local AI Workstation for LLMs: GPU, VRAM, and Multi-GPU Decisions

VRAM — not clock speed — decides which models your machine can actually run, and that single fact reshapes how every dollar should be spent. This guide walks through GPU tiers, the CPU's underrated role, and multi-GPU decisions with real 2026 street prices and benchmarks, so your local AI…

Sep 1, 2026Read article
How to Spec a Local AI Workstation for LLMs: GPU, VRAM, and Multi-GPU Decisions
A minimalist 3D visualization of vLLM's V1 process tree, showing a vllm serve terminal branching into glowing API server, engine core, and GPU worker nodes connected by blue ZMQ message pathways.
LLMs & Model APIs

What Happens When You Run vllm serve: A Walk Through vLLM's V1 Multi-Process Architecture

Running vllm serve doesn't start one program — it spawns a tree of API servers, engine cores, GPU workers, and sometimes a DP Coordinator, all wired together with ZMQ sockets. This walkthrough traces vLLM's V1 multi-process architecture from the CLI to the first forward pass on the device, step by…

Sep 1, 2026Read article
What Happens When You Run vllm serve: A Walk Through vLLM's V1 Multi-Process Architecture
A 3D isometric illustration of an automated documentation ingestion pipeline, with browser-window pages flowing from a sitemap diagram into a glowing vector database cube, visualizing the sitemap-to-vector-store data flow for LLM applications.
RAG & Knowledge Systems

From Sitemap to Vector Store: The 11 Steps of an Automated Docs Ingestion Pipeline

Most engineers obsess over chunking strategies and vector databases, yet the pipeline that feeds them is where the real engineering lives. This guide maps all 11 stages of an automated docs ingestion pipeline — sitemap URL discovery, HTML cleaning, embedding, vector upserts, and incremental refresh…

Sep 1, 2026Read article
From Sitemap to Vector Store: The 11 Steps of an Automated Docs Ingestion Pipeline
A 3D visualization of the LiteLLM routing decision, where one glowing request token enters a central router panel labeled LLM ROUTING and splits into four colored paths toward distinct provider server chips.
LLMs & Model APIs

How LiteLLM Decides Which Model Answers: Deployments, Model Groups, and Routing Strategies

When you call a model through LiteLLM, the model string you send is just a public name for a pool of deployments — and the Router decides which one actually answers. This deep dive traces that decision end to end: model_name matching, multi-provider model groups, routing groups vs. access groups…

Sep 1, 2026Read article
How LiteLLM Decides Which Model Answers: Deployments, Model Groups, and Routing Strategies
A stylized 3D terminal interface surrounded by interconnected AI agent nodes, illustrating the best AI coding agents of 2026 and how each one wraps a frontier model.
AI Developer Tools

The 10 Best AI Coding Agents in 2026: Benchmarks, Pricing, and Real-World Fit

From Claude Code's 1M-token terminal refactors to Devin's fully delegated pull requests, we ranked the ten best AI coding agents of 2026 on real benchmark scores, pricing, and autonomy. Here's which agent fits your workflow — and which failure modes the demos never show you.

Aug 31, 2026Read article
The 10 Best AI Coding Agents in 2026: Benchmarks, Pricing, and Real-World Fit