hi, I'm

Deniz Karakoyun

Computer Engineering student @ METU — two shipped apps, now writing C++17 for a robot's GPS.

→ 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

Two apps in the stores, one ROS 2 node on a robot, 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.
  • KUARTIS: a C++17 ROS 2 node on a Jetson that decides whether a GPS fix can be trusted — written test-first.
  • 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. Şu an KUARTIS'te C++17 ile ROS 2 tarafında GPS tester ve system health üzerine çalışıyorum. 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 – present · Ankara

ROS 2 GNSS signal-health monitoring on an autonomous platform.

  • C++17 lifecycle node on NVIDIA Jetson — turns a raw GPS stream into a clear "can we trust this fix?" verdict.
  • Caught a case where a silent GPS looked healthy: wrote the failing test first, then the fix.
  • Fixed a data race in the multi-threaded test harness.

ROS 2C++17GNSSTDDGoogleTestJetson

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

Products2

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).

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.

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

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.

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.