Projects

Things I've built, shipped, and occasionally regretted.

iot / navigation
4
1

VipAssistant

Smart indoor navigation assistant powered by Bluetooth Low Energy (BLE) and customized for visually impaired users. Ranked 3rd Place in METU CENG DemoDay 2020. Led a team of 3 using Scrum to build containerized on-premises Spring Boot services, an Android mobile app, and QGIS 3D indoor mapping.

JavaSpring BootAndroidBLEDockerQGIS
game / sockets
3
1

CoronaKiller

Online multiplayer 2D arcade game featuring singleplayer levels and peer-to-peer matchmaking to defeat the CoronaVirus King. Built with Spring Boot (MVC, Data, Security, JUnit) on backend, JavaFX/JFoenix GUI on frontend, and real-time TCP socket P2P networking.

JavaSpring BootJavaFXSocketsP2PJUnit
library
10

go-restclient

A handy Go package to call HTTP APIs — ergonomic client with retry, timeout, header management, and response binding.

Usage Example
client := restclient.New(
  restclient.WithTimeout(5 * time.Second),
  restclient.WithRetry(3),
)
var resp UserResponse
err := client.Get(ctx, "/users/42").Bind(&resp)
GoHTTPREST
library
8

zap-fieldbuilder-template

A field builder template for uber-go/zap that enforces consistency and type-safety in structured log fields across Go services.

Usage Example
logger.Info("request completed",
  fields.UserID(userID),
  fields.RequestID(reqID),
  fields.Duration(elapsed),
)
GoZapLogging
academic / systems
77
11

Metu-CENG

Comprehensive collection of coursework, algorithms, and distributed computing assignments from Middle East Technical University (METU CENG).

C++CPythonAlgorithmsOperating Systems
protocol
3
1

RDT-Protocol

Implementation of a multihomed and pipelined Reliable Data Transfer Protocol (RDT) over an unreliable channel using UDP in Python, featuring packet pipelining, simulated lossy network topologies, and congestion/timeout recovery.

Usage Example
sender = RDTSender(window_size=8, timeout=0.5)
sender.connect(dest_ip, dest_port)
sender.send_pipelined(packet_payload)
PythonUDPNetworkingSockets
cli tool
11
4

CLI-ChatApp

Command-line multi-client chatroom application utilizing Python SocketServer and ThreadingMixIn with concurrent room management and socket multiplexing.

PythonSocketsMultithreadingCLI
tool / observability
2

LogWatcher

Real-time log watch and custom filtering tool powered by syslog-rfc5424-parser and WebSockets with Django on backend and JavaScript on frontend. Supports CRUD filtering rules, live multi-source streaming, and unittest coverage.

PythonDjangoWebSocketssyslogJavaScript
cli tool
5

Backupify

Configurable CLI automation tool for scheduling, compressing, and managing periodic backups of target system directories.

PythonCLIAutomationFilesystem
web app
6
3

TodoApp

Multi-user task management application for tracking personal to-dos within categorized lists, featuring user authentication, deadline alerts, and responsive UI built with Django on backend and jQuery/HTML/CSS on frontend.

PythonDjangojQuerySQLite
graphics engine
5
1

ComputerGraphics

Custom 3D rendering pipeline and OpenGL implementations with programmable GLSL shaders, ray tracing, and rasterization.

Usage Example
Shader program("vertex.glsl", "fragment.glsl");
program.use();
program.setMat4("view", camera.getViewMatrix());
renderer.drawElements(GL_TRIANGLES, count);
C++OpenGLGLSL
embedded / rtos
4

RTOS

Real-time operating system implementation for PIC18F microcontrollers using PicOS18 with priority-based preemptive scheduling.

CAssemblyRTOSEmbedded
embedded
4
2

PIC-Programming

Low-level hardware controller implementations for PIC18F8722 architecture, covering interrupt service routines and timers.

CAssemblyEmbeddedPIC18F
backend service
3
1

potential-playlist

Playlist maintainer backend developed as the capstone of Spring-Workbench, exercising Spring Core, Boot, MVC, Data, HATEOAS, Security, and Test frameworks with MapStruct, Liquibase migrations, Postman, and Docker containerization.

JavaSpring BootPostgreSQLLiquibaseDockerREST
systems / kernel
1

OperatingSystems

Implementations for OS concepts: ext2 filesystem inspection, fsck, inter-process communication (IPC), map-reduce, and synchronization.

C++CLinuxOperating Systems
developer tooling
1

git-hooks-template

Handy, production-ready Git hooks templates for automated linting, commit message enforcement, and branch protection.

Usage Example
#!/usr/bin/env bash
# .git/hooks/pre-commit
exec npm run lint && npm run typecheck
ShellGitCI/CD
web app
1

WeatherApp

Multi-user location weather tracking web application integrating OpenWeatherMap API with Django on backend and jQuery/HTML/CSS on frontend.

PythonDjangojQueryREST
game / assembly
1

SpaceImpact

Classic Space Impact retro game written in assembly for PIC18F8722 architecture with timers and hardware interrupts.

AssemblyEmbeddedPIC18F
library

my-ptl

Personal Template Library — modern generic data structures and high-performance algorithms implemented in C++.

C++AlgorithmsData Structures
backend service

spring-workbench

Spring framework workbench covering Spring Boot, MVC, Data JPA, Security, and HATEOAS with Docker containerization.

JavaSpring BootDockerPostgreSQL