Engineering student in Turkey. I work on two things: AI agents and robotics.
I was obsessed with electricity in primary school and computers in middle school. In high school it turned into machine learning. I bought NNFS and learned the math out of it, doing backprop before I had done the calculus for it.
A lot of what I built back then never made it to GitHub. Some of it did. In 2020 there was AI-Playground, where I tried algorithms out as I read about them, and in 2021 cygnus, where I worked the math out in C: n-dimensional matrices, reshaping, macros to keep them off the heap.
Now I'm interested in what large groups of agents do together. Swarms, and LLM simulations of societies. What happens when you scale a population of models up and let them talk.
Blueprint. One binary to connect, watch and supervise long-running CLI agents on a server. Agents sit in tmux sessions. Messages queue instead of interrupting them, work branches off into git worktrees, and a dashboard shows fleet health. It started as a spec paradigm for AI-assisted development. Coding assistants absorbed that on their own, so I moved it down a layer instead. Still working on it.
Elevator Optimization. Smaller, from 2024. An elevator scheduling simulator in Rust, written with @efeerdogmus0 for Boğaziçi AI UpForAChallenge, which we won. Physics for the cars, a nearest-car controller and a few hand-written ones to measure against, then neuroevolution on top. The PyTorch Rust bindings wouldn't compile on my Gentoo box with LTO on, so I wrote the network myself instead. Faster than fixing the toolchain. Yiğit's first Rust project.
I lead AI at CompEC, Boğaziçi's computing club.
Outpost. An outreach tool built around the graph. People, companies, schools and channels are plain Markdown files with frontmatter in an Obsidian vault, so nothing gets locked in a database you can't read. It parses the vault, puts the relationship graph in the middle, and lets you focus on any node's N-step neighborhood. Research agents go out and find new contacts, but whatever they bring back waits in a staging area until I accept it. Mail is read-only ingest. Outpost never sends anything itself. I wrote it to find sponsors and to stop losing track of people I've already met.
Probot Studio. A robotics kit and library for high school competitions. Motors, wheels, chassis, and the middleware that drives them. C++/Arduino on ESP32, MIT licensed. We manufacture the parts. Every team on the field at MEB İMFEST Tasarla-Geliştir ran on it, it's been used at several competitions since, and it's still in use. We're expanding the kits and the software around them now.
First Robotics. Started on FRC 7839, then founded team NF (FRC 9029). Houston championships in 2025 and 2026.
Impact. A robot competition organization. Challenges, ideathons, a soccer tournament, 150+ participants. A friend runs it, I advise.
High school. Mostly written to see how something worked.
MEGABOI (2020). A handheld console on an Arduino Mega with an LCD shield and six buttons. I wrote Snake for it from scratch. The snake was a doubly linked list, which ate the ATmega's SRAM: every segment held its own copy of the display driver object, and each new took more of whatever the heap had left. I found it by printing free memory over serial every frame, stack pointer against __brkval. Then I dropped the list for a flat array that reallocates as the snake grows. Only the cells that change get redrawn.
Line-of-Sight (2020). Raycast shadow casting in pygame. Rays go to the corners of walls instead of sweeping every angle, each with two neighbours ±0.0001 rad either side so the light slips past the corner. Line-line intersection off the parametric form.
Path-Finding (2020). A* over a grid you draw with the mouse, animated while it runs, path rebuilt backwards through parent pointers.
DBEX (2020). Python's json as a generator. Pull values out one at a time instead of holding the file in memory, with a depth setting for how much to materialize. Tests, and packaged for PyPI. 11th grade.
vector-h (2021). A generic vector for C, all macros, since the language won't give you one. vector_t(type) gets you a typed container with push, insert, resize, capacity growth, shifts, reverse, merge sort and bubble sort. Two implementations, unit tested against each other.
Everything since 2020: tunapro.xyz



