Ahmet
Kazankaya

AI-assisted developer · automation engineer

One human, several agents. I decide, review and debug. They type.

Rıfkı · ESP32-S3 · 3.3 V rail, battery powered

Everything I build runs on something that can fail quietly. This one failed loudly, for a month.

scroll to run the fault

Symptom

On battery the board browned out and boot looped. On USB power it was fine every time.

First guess · wrong

Servos stay passive during boot, so they cannot be the cause.

A month of config tweaks went into this assumption before I stopped defending it.

Signal

Watching the hardware instead of the logs: the servos twitch the instant the battery goes in.

Root cause

At reset the PWM pins float. Three SG90 servos each pull about 300 mA of inrush, and together with the WiFi power peak they take the boost rail under the brownout threshold.

2.43 V · brownout detector level 7 · rail never recovers before the next reset

Fix

Drive the servo and motor pins to OUTPUT LOW with pulldown in the first line of the board constructor.

No hardware change. The twitching stopped and the screen came up on the first try.

Summary

I came to software through production work rather than a computer science degree, and my focus is now fully on systems and automation. Since early 2026 I have shipped, with Claude Code as the primary tool, a task management system that has been running for four months at a foundation, an automation line that lists and prices real products on Etsy, the robot above, and two open source skill sets other people install into their own agent setups.

Working modelOne human, several agents. I write the architecture and the constraints into per repository steering files, route each task to the cheapest model that can do it, and read every diff before it lands. What the agents cannot do is decide what is worth building, or work out why a system is lying to me. Because the automation carries the repetitive load, I run several of these lines at the same time rather than one after another.

Daily toolsClaude Code across a Windows and a macOS machine joined over Tailscale, so one session works on both. Claude Agent SDK inside my own applications. Codex CLI, Cursor, Antigravity and Gemini CLI alongside it; Ollama and OpenRouter for model routing; MCP servers for Blender, NotebookLM and my own tools.

Analysis, documentation, testingA 170 iteration research loop over trading data that rejected 87 hypotheses and returned the answer I did not want: no tradable edge was left in that space. An automation survey across 184 real tasks that yielded 31 candidates. A cross linked knowledge layer over what I read, with weekly lint runs that flag contradictions and stale claims. Verification runs headless: Unity batchmode builds, xcodebuild with simulator screenshots, pytest and vitest suites the agent has to pass before a task counts as done.

Risks and limitsI wrote guard-20 and audit-20 because the same twenty failure classes kept reappearing in generated code. I refuse blocklist style fixes: they patch the layer where the symptom shows, not the one that broke. Scaffolding has a ceiling too, and my own scaffold documents it.

Cases

Maarif Task Management

In production · running for four months

Türkiye Maarif Vakfı · Directorate of Communications

The director used to read every incoming email himself, decide who should do each job, then track every delivery personally. The system reads the mailbox, turns each message into a task definition with an LLM, assigns it, and puts the state of every job on an office TV board.

Symptom
Generated task documents drifted from the institution's templates, and a text diff showed nothing.
Root cause
The drift was visual, so the thing I was checking could not see it.
Fix
Compare delivered files against fixed templates visually, which made template stability measurable; move the watcher off raw mail to an LLM written job definition.

Python · FastAPI · SQLAlchemy · SQLite · Next.js · Swift · Microsoft Graph · Outlook 365 · Telegram

Etsy Factory and Demand Engine

Running daily

Own production business

Public domain museum works and locally generated art flow into Printify products and Etsy listings, through a Telegram approval gate, on a schedule, controllable from my phone over the tailnet. A pricing engine pulls Printify's own shipping table per variant and country and disables combinations that cannot be profitable.

Symptom
The scout agents kept producing near duplicate product ideas.
First guess
The model. Changing it changed nothing.
Root cause
The shape of the data handed to the agents.
Fix
Restructure the input.The clearest case I have of an AI failure that is not an AI problem.

Python · Swift · Etsy API · Printify · Telegram · launchd · Tailscale

Rıfkı · the speech side

Working prototype

ESP32-S3 · firmware and PC bridge

The power fault is the scene at the top of this page. The same machine had a second one, quieter: microphone to speech recognition to an LLM to speech synthesis to head and arm servos, and somewhere in there it started making things up.

Symptom
The pipeline invented a phrase out of silence.
First guess
Filter the phrase. Rejected: that patches the wrong layer.
Root cause
Torch's C++ file open corrupts the Turkish character in the project path, so the voice activity detector raised on every call and a broad except turned that into a warning. With it dead, endpointing never fired and the transcriber was handed pure silence.
Fix
Copy the model file to an ASCII cache path through Python and load it from there.

C++ · PlatformIO · ESP-IDF · Python · Deepgram · Groq · ElevenLabs

The robot on a workbench: 3D printed orange body, an OLED face showing two eyes, ultrasonic sensors below it, servo wiring running out the back.
The machine the fault was in
Wiring diagram of the robot: ESP32-S3 at the centre with servo, audio, display and sensor lines colour coded out to each peripheral.
Wiring, where the rail is shared

guard-20, audit-20 and Mythos Scaffold

Open source, installed by other people

claude-audit-20 · claude-mythos-scaffold

Twenty recurring AI coding failure classes turned into enforceable process. guard-20 states them as write time rules. audit-20 runs a twenty pass verification gate whose final pass exists only to falsify the findings of the previous nineteen, so the aggressive passes do not bury you in false positives. Mythos Scaffold externalises long task state into a mission file and enforces persistence with harness level hooks.

Symptom
The scaffold measurably degraded output on the newest model generation, the opposite of its purpose.
Root cause
Over scaffolding. The newer the model, the more the extra process costs it.
Fix
Model gating, the ceiling written into the documentation, and an eval harness that runs bare and scaffolded arms so the claim is measured rather than assumed.

Python · Claude Code skills · Stop and SessionStart hooks · eval harness

Cebimde Claude

Working prototype

Building iOS apps from the phone, without sitting at a Mac

Making an iOS app normally means a Mac with Xcode open in front of you. This turns the Mac into a build server you never look at: you describe the app from your phone, the agent scaffolds an XcodeGen SwiftUI project, compiles it, and sends back a simulator screenshot. A second command signs it and installs it on the phone in your hand. When a build fails the compiler output goes back to the agent, which fixes it and rebuilds without being asked.

Symptom
Every dropped connection left a ghost, writing output to a dead socket while a new agent started on the same project.
Root cause
No identity on the connection, no ownership rule per project.
Fix
A connection epoch, a stop rule for hanging agents, and session ids persisted to disk so a conversation survives the app being killed.

Swift · SwiftUI · TypeScript · Claude Agent SDK · WebSocket · XcodeGen · xcodebuild · devicectl

Stack

Everything below appears in code I have shipped.

Languages
Python, TypeScript, JavaScript, Swift, C++ (ESP32/Arduino), C#, SQL, MQL5, Shell, PowerShell
Backend, data
FastAPI, SQLAlchemy, SQLite, PostgreSQL, Prisma, Supabase, NestJS, Redis
Frontend, apps
Next.js, React, Tailwind, Vite, Turborepo, SwiftUI, Capacitor, Tauri, Expo, PySide6
Embedded
ESP-IDF, PlatformIO, Arduino, servo and audio hardware bring up
Infrastructure
Git, Docker, Vercel, Netlify, Cloudflare Workers, Tailscale, launchd and cron, pm2
Integrations
REST APIs, Microsoft Graph, Outlook 365, Etsy, Printify, Telegram, WhatsApp, Deepgram, ElevenLabs, Groq, KIE.AI, OpenRouter, MetaTrader5
Testing
pytest, vitest, Jest, XCTest, Playwright, headless batchmode CI

History

AI Solutions Designer · Türkiye Maarif VakfıInternal systems and automation for the Directorate of Communications.

Generative AI Engineer · Pepper RootCreative AI studio, remote.

AI Artist · Joy GameGame assets and pipeline automation.

Chief GenAI Art Director · GPT JourneyAI generated commercials and custom model training for brand campaigns.

Generative AI Creator · Fiverr

Graphic Designer and Photographer · Creww Digital

Official Photographer · Istanbul Governorship

News Editor · Skala Media Solutions

Teacher · ARGEM

EducationMechanical Engineering, Namık Kemal University, from 2012. I left before finishing the degree and learned the rest by building; the engineering years are where the habit of taking a system apart before judging it comes from.

Before softwareTen years in visual production, which is where the tooling instinct came from. I ran Stable Diffusion and ComfyUI on my own machines from 2023 and treated node based workflows and LoRA fine tuning as production tooling rather than demos. My focus now is software and automation; the visual work is background.

A crossing at rush hour, everyone around me blurred by the exposure, me standing still and looking back at the camera.

How the work actually goes

Every fix on this page started the same way. Stop moving, and look at the thing itself.