hi, I'm

Deniz Karakoyun

Computer Engineering student @ METU — apps, everyday tools and StateDecider — C++17 / ROS 2, DDD & TDD.

→ where I'm headed: OS & low-level systems. the closer to the metal, the happier I am.

The written version

The tree above is the fun way round. This is the same thing as plain text — every branch, every leaf, nothing hidden.

Computer Engineering @ METU · class of 2027 · Ankara, Türkiye

Campus apps, outfit planning, daily CS study cards — and a lot of hours spent a few layers below the surface.

  • Guild — a campus community app I built end to end (iOS, Android, web, backend, admin), live at nine universities and counting.
  • Also built Vestura, an outfit planner that works around a budget, and CENG Daily, a daily study tool grounded in my own course material.
  • Completed my KUARTIS internship and StateDecider — a C++17 / ROS 2 lifecycle-management system developed with Domain-Driven Design (DDD) and Test-Driven Development (TDD). Architecture diagrams are public; source code is private.
  • Where I'm headed: OS & low-level systems, with algorithm design a close second. Next up: OS, embedded, robotics or infra work — C, C++, Linux, ROS 2.
  • Outside code: time with friends and anything physical. References available on request.

Deniz Karakoyun — ODTÜ Bilgisayar Mühendisliği öğrencisiyim, 2027'de mezun oluyorum, Ankara'dayım. İşletim sistemleri, low-level sistem programlama ve gömülü sistemler en sevdiğim alanlar; donanıma ne kadar yakınsam o kadar iyi. Guild ve Phera Labs'in kurucu ortağı ve geliştiricisiyim. Bütçeye göre kombin planlayan Vestura'yı ve kendi ders materyallerimden günlük çalışma kartları hazırlayan CENG Daily'yi de geliştirdim. KUARTIS stajımı ve C++17 / ROS 2 ile geliştirdiğim StateDecider projesini tamamladım. Projeyi Domain-Driven Design (DDD) ve Test-Driven Development (TDD) ile geliştirdim; düğümlerin yaşam döngüsü durumlarını izleyip görev hedeflerine göre yönetiyor. Mimari diyagramları GitHub'da; kaynak kodu gizli tutuluyor. Günlük işim C, C++, x86-64 assembly, Linux ve ROS 2.

Education2

Middle East Technical University

B.Sc. Computer Engineering · 2021 – 2027 (expected) · Ankara

Operating systems, computer organization, algorithms — and the exam rank that got me in the door.

3.62 / 4.00 CGPA · 799th / ~3M YKS rank, 2021

Operating SystemsComputer OrganizationAlgorithmsEmbedded

seed of this tree: 799th out of ~3,000,000 in the national university exam

Süleyman Demirel Anatolian High School

2017 – 2021

Graduated with 94.41 / 100.

Experience6

KUARTIS — Software Engineering Intern

2026 · completed · Ankara

Completed StateDecider — C++17 / ROS 2 lifecycle management with DDD and TDD.

  • Built Monitor and Enforcer nodes: one observes lifecycle states; the other reconciles them with mission targets and reports system readiness.
  • Separated ROS communication from decision logic, with asynchronous state transitions and bounded queues between communication and decision work.
  • Applied Domain-Driven Design (DDD) to model lifecycle states and mission rules, keeping domain and application logic independent of ROS 2 infrastructure.
  • Used Test-Driven Development (TDD): failing tests first, implementation next, then refactoring; complemented unit tests with integration scenarios and a browser demo connected to real ROS 2 nodes.
  • Also worked on C++17 GNSS signal-health monitoring on NVIDIA Jetson, using test-first fixes for silent GPS data and a test-harness data race.

ROS 2DDDTDDC++17Lifecycle NodesConcurrencyGoogleTest

Implementation completed. Source code is kept private for confidentiality; the GitHub repository shares the draw.io architecture diagrams.

ASELSAN — Candidate Engineer

Feb – Jul 2026 · candidate-engineer programme · Ankara

High-volume data pipelines for system evaluation.

  • Built the C++ pipelines that chew through millions of data points per run for system evaluation and offline experiments.
  • Owned the multithreading and synchronization that kept those streams race-free.

C++MultithreadingData Pipelines

ROMER — Undergraduate Researcher

Jan – Jul 2026 · METU Robotics & AI Center

Teaching computers to tell which way a honey bee is facing.

  • Trained CNN and ResNet classifiers that read a honey bee's heading from a top-down frame.
  • Owned the loop end to end: built the dataset, trained, tuned, and went back to the failure cases.

PythonCNNResNetComputer Vision

yes, the bee flying around this tree is a colleague

BİTES — Software Engineering Intern

Aug – Sep 2025 · Ankara

A team & project management desktop app.

  • Shipped C# / WPF features for users, teams, projects and tasks — MVVM, data binding, validation.
  • Wrote xUnit tests with mocks, and reshaped the task screens after rounds of user feedback.

C#WPFMVVMxUnit

ASELSAN — Intern

Jul – Aug 2025 · Ankara

Testing embedded systems, automating the boring parts.

  • Wrote C++ unit tests with GoogleTest for embedded systems.
  • Automated GUI test workflows with Python and Pywinauto.

C++GoogleTestPythonPywinauto

EXA4MIND — Data Mining Intern

Aug – Sep 2024 · EU Horizon research project

Low-latency streaming pipelines for scientific data.

  • Built streaming pipelines for scientific data with Kafka, Flink and ZeroMQ.
  • Benchmarked ZeroMQ against Kafka on latency and throughput and wrote up the trade-offs.

KafkaFlinkZeroMQ

Products4

Guild

Co-founder & sole developer · App Store · Google Play

A student community app for Turkey — verify with your university email, get your whole campus in one feed.

9 universities live · 5 surfaces, one dev

  • Co-founded with my close friend Emirhan Güler at METU; I built and shipped the code — iOS, Android, web, backend, admin.
  • Forum with anonymous posts and polls, events with seat reservations and door check-in, student societies, and a nationwide opportunities board.
  • Live at nine universities — METU, Hacettepe, Ankara University and more — and the list keeps growing (the current one is on getguild.app).
  • Reached 200+ users (as of August 2026; may have changed).

built between exams. the door check-in scanner was the fun part.

Phera Labs

Co-founder & developer · pheralabs.com

An art-tech startup's platform — students exhibit digital art, and the best of it joins an international NFT collection.

  • Co-founded and grew it with my high school friend Sabri Ilgaz; I built the platform — design, frontend, backend, database, admin.
  • "Phera-Land": a 360° drag-to-spin gallery you can wander through.
  • Also built the commerce side: limited prints, QR-ticketed events, referral rewards.
  • Featured 25 artists (as of August 2026; may have changed).

the 360° gallery started as a weekend experiment. it stayed.

Vestura

Creator & developer · outfit & wardrobe planner · web preview

What can I wear, and what will the whole outfit cost? A planner that brings your wardrobe, style and budget into the same decision.

  • Built the React Native / Expo app and TypeScript backend, from the outfit rules to the screens that explain each choice.
  • The solver considers clothing compatibility, size, season and shipping costs together, with room for pieces you already own.
  • Wardrobe tools cover saved outfits, packing lists and occasion planning, with separate style preferences for work, weekends and events.
  • Kept the outfit rules independent of the UI and database, with tests around compatibility, budget limits and ranking. Real retailer feeds are the next step.

TypeScriptReact NativeExpoPostgreSQLConstraint Solving

one outfit, one budget. the shipping bill counts too.

CENG Daily

Creator & developer · daily CS study cards · web & iPhone widget

One computer science topic a day, built from the lecture slides, past exams and textbooks I actually study.

4 CS tracks · TR / EN reading modes

  • A Python pipeline retrieves relevant passages with BM25, then gives them to an LLM to draft a study card with references back to the course material.
  • Each card works through the topic with code, complexity analysis, a solved example and self-check questions with answers.
  • Built a bilingual reader with a searchable archive, plus an iPhone widget and offline reader in Scriptable.
  • Scheduled generation rotates through algorithms, data structures, computer architecture and operating systems. Only the generated cards and site are published; the source corpus stays private.

PythonBM25LLMJavaScriptGitHub ActionsScriptable

a little of the syllabus, every day.

Projects10

Concurrent Data Pipeline Orchestrator

C · Unix system programming

A process controller running multi-stage CSV pipelines with fork, exec and pipes.

  • Like a shell pipeline, but shaped like a tree: every stage runs as its own process, and streams merge upward through sub-merger nodes.
  • The tricky part was the plumbing — deadlock-free IPC over Unix domain sockets, so no stage ever blocks another.

Cfork/execIPCUnix sockets

this project is also a tree — of processes. trees all the way down.

Crossroad — a monitor for a shared intersection

C++ · pthreads · monitors & condition variables

An intersection where every car is a thread — no collisions, no deadlock, and nobody waits forever.

100 / 100 grader score · 0 violations, deadlocks, races

  • Cars from perpendicular directions must never be inside at once, cars from the same direction cross in parallel, higher-priority lanes go first — and among equals, whoever arrived first.
  • Every car gets its own condition variable instead of one per lane, so a hand-over wakes exactly the threads that can actually move.
  • Each lane is a min-heap keyed by a monotone arrival ticket, so "is it my turn?" is a single peek — that's what keeps the ordering starvation-free.

C++pthreadsMonitorsCondition variablesDeadlock freedom

the whole thing is one Monitor subclass. the lock discipline is impossible to get wrong.

mergeext2fs — merging filesystems by hand

C++ · ext2 on-disk format · raw block I/O

git merge, one layer down: three ext2 disk images folded into one with nothing but open, read, write and lseek.

100 / 100 all five cases · ~1.3k lines of C++

  • A base image and two branches that each grew files, directories and appended content. The tool prints what the merge would do, then edits the base image in place to do it.
  • No mount, no libext2fs — inodes, bitmaps, directory entries and indirect block chains are all read and rewritten by hand, and every counter the kernel would normally maintain has to stay consistent or e2fsck screams.
  • The fiddly parts: walking direct → single → double → triple indirect blocks, splicing a new entry into a directory's packed slack list, and rewriting the superblock and group-descriptor backups.

C++Filesystemsext2Systems programmingBit manipulation

the most fun I've had with a hex dump.

Simulating and Reading Networks

OMNeT++ / INET · Wireshark · CENG435

Three assignments: measure a network, read a network, address a network.

  • Built the Ethernet topologies in OMNeT++ and swept them — throughput against offered load, the saturation knee at ~95.4 Mbps, delay and jitter, and chains of switches with and without bit errors. Ten seeds per point, so the curves come with confidence intervals.
  • Reconstructed a break-in from a packet capture: which accounts were real, whose password leaked, which IP was brute-forcing the login endpoint, and the file it walked out with — all from plaintext HTTP.
  • Six INET configurator labs, from wildcard auto-assignment inside METU's own 144.122.0.0/16 to asymmetric routing across a diamond of routers and hierarchical addressing with optimized tables.

OMNeT++INETWiresharkTCP/IPRoutingNetwork forensics

the wireshark shot is the actual capture. you can read the break-in off the Info column.

Pipelined Processor Optimization

Assembly · HCL · Y86-64

Extended a pipelined processor simulator, then made a bilateral filter run 2.1× faster on it.

2.1× speedup · 1442 → 688 cycles / element

  • Y86-64 is a teaching version of x86-64 — I worked on the processor itself, adding instructions and resolving data and control hazards in its control logic.
  • Then tuned programs to run fast on it: loop unrolling, instruction reordering, custom functions — every saved cycle counts.

HCLAssemblyPipeliningHazard resolution

the screenshot is the real run, not a slide.

Bomb & Attack Labs

x86-64 · GDB · reverse engineering

Defused a multi-stage binary bomb with GDB and a disassembler.

6 / 6 phases defused · 0 explosions

  • Each phase hides a password inside a binary — you disassemble it, watch the registers, and read the logic backwards. Every phase ends in a call to explode_bomb; guess wrong and it goes off.
  • Then switched sides: crafted code-injection and return-oriented-programming exploits against vulnerable binaries, in a sandboxed course lab.

x86-64GDBReverse EngineeringROP

all six phases defused. my favourite kind of puzzle.

PIC18 Embedded Systems

Assembly / C (PIC18F8722) · MPLAB X

Bare-metal microcontroller work: a Flappy Bird game on an LED matrix, a timer-free round-robin scheduler, and a serial link for an EV charging cabinet.

  • Flappy Bird on the board's LED grid: the bird flaps on a button interrupt, gravity pulls it down, pipes scroll in from the right, collisions end the game — and a 7-segment display keeps score. Timer0 is a 50 ms tick and every rhythm in the game is counted off it.
  • A separate control task: round-robin scheduling of three state machines with no hardware timers or interrupts at all — every deadline met by counting instructions.
  • For a three-port EV charging cabinet, I wrote the serial link to its supervisor: EUSART at 115200, lock-free ring buffers both ways, a frame parser that silently drops malformed input, and silent recovery from overrun and framing errors.

PIC18AssemblyCInterruptsEUSARTADCEmbedded

the board photo is my Flappy Bird — bird on the left, pipes scrolling in

Flight Finder

C++ · graph theory

A flight search engine on a directional multigraph.

  • Airports are nodes, flights are edges — and since two cities can be connected by many flights, it's a multigraph, backed by a hash table for fast lookups.
  • Dijkstra with heuristics that blend ticket cost and travel time, plus airline filtering.

C++DijkstraHash Table

AI Model Hub Database

Java · SQL · H2

A normalized database for models, datasets and training runs.

  • Schema design first: normalized tables that track which model trained on which dataset, and how each run went.
  • SQL analytics on top — user reputation scores and model performance metrics.

JavaSQLDatabase Design

KSO — Marine Biodiversity Platform

Team of two · Software Engineering (CENG350)

Architecture design for the Koster Seafloor Observatory — spotting marine species in seafloor video with ML and citizen science.

74 pages of SAD · 6 subsystems

  • Co-authored a 74-page Software Architecture Description: six subsystems, from a researcher web UI to a YOLO-based detection pipeline trained on HPC.
  • The loop that makes it work: volunteers annotate footage on Zooniverse, annotations retrain the models, results flow to global biodiversity databases (GBIF, OBIS) in Darwin Core format.
  • Full UML set — component, class, sequence, state and activity diagrams — plus the SRS.

Software ArchitectureUMLRequirements (SRS)Architecture (SAD)ML System Design

diagrams straight from our SAD — drawn box by box in StarUML

Skills5

Languages

The ones I think in.

CC++C#x86-64 AssemblyJavaPythonSQLHaskellTypeScriptJavaScriptVerilog

Systems & Low-level

Home turf. Every chip below is a link to the leaf that proves it.

OS internalsMultithreading & syncFilesystem internalsUnix system programmingComputer organizationPerformance tuningReverse engineeringNetworking & protocolsROS 2Embedded (PIC18, Jetson)Memory management

this is the branch I want to grow the most

People & Process

The parts that aren't code — with the receipts.

  • Ownership: sole developer on Guild across five surfaces, from the first commit to the store listings.
  • Working with feedback: BİTES task screens reshaped after user rounds; Guild features re-cut from campus feedback.
  • Teaching: educational volunteering with primary-school kids.
  • Writing things down: co-authored a 74-page architecture document (KSO) that a team could actually build from.

Data & ML

Streams and neural nets.

CNN / ResNetKafkaFlinkZeroMQMySQL / PostgreSQL

Tools & Practice

Sharp tools, tested code.

Domain-Driven Design (DDD)Test-Driven Development (TDD)GitGDBGoogleTest / GMockxUnitJest / MaestroValgrindclang-tidyDockerCI (GitHub Actions / GitLab)WiresharkOMNeT++MATLAB

Beyond Code4

Karate

Competed through middle and high school.

  • First place in inter-school and inter-regional competitions.

Volunteering

Showing up when it matters.

  • Earthquake relief in Hatay (certified).
  • Educational volunteering with primary-school kids.

Sports & Outdoors

If it's physical, I'm in.

  • Tennis, volleyball, basketball, camping, cycling, fitness — usually with friends.

Ateş

My dog of 7+ years — walked twice a day, every day.

  • Chief Morale Officer. Sits at the base of this tree.