Projects
Things I've built, shipped, and occasionally regretted.
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.
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.
go-restclient
A handy Go package to call HTTP APIs — ergonomic client with retry, timeout, header management, and response binding.
client := restclient.New(
restclient.WithTimeout(5 * time.Second),
restclient.WithRetry(3),
)
var resp UserResponse
err := client.Get(ctx, "/users/42").Bind(&resp)zap-fieldbuilder-template
A field builder template for uber-go/zap that enforces consistency and type-safety in structured log fields across Go services.
logger.Info("request completed",
fields.UserID(userID),
fields.RequestID(reqID),
fields.Duration(elapsed),
)Metu-CENG
Comprehensive collection of coursework, algorithms, and distributed computing assignments from Middle East Technical University (METU CENG).
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.
sender = RDTSender(window_size=8, timeout=0.5)
sender.connect(dest_ip, dest_port)
sender.send_pipelined(packet_payload)CLI-ChatApp
Command-line multi-client chatroom application utilizing Python SocketServer and ThreadingMixIn with concurrent room management and socket multiplexing.
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.
Backupify
Configurable CLI automation tool for scheduling, compressing, and managing periodic backups of target system directories.
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.
ComputerGraphics
Custom 3D rendering pipeline and OpenGL implementations with programmable GLSL shaders, ray tracing, and rasterization.
Shader program("vertex.glsl", "fragment.glsl");
program.use();
program.setMat4("view", camera.getViewMatrix());
renderer.drawElements(GL_TRIANGLES, count);RTOS
Real-time operating system implementation for PIC18F microcontrollers using PicOS18 with priority-based preemptive scheduling.
PIC-Programming
Low-level hardware controller implementations for PIC18F8722 architecture, covering interrupt service routines and timers.
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.
OperatingSystems
Implementations for OS concepts: ext2 filesystem inspection, fsck, inter-process communication (IPC), map-reduce, and synchronization.
git-hooks-template
Handy, production-ready Git hooks templates for automated linting, commit message enforcement, and branch protection.
#!/usr/bin/env bash
# .git/hooks/pre-commit
exec npm run lint && npm run typecheckWeatherApp
Multi-user location weather tracking web application integrating OpenWeatherMap API with Django on backend and jQuery/HTML/CSS on frontend.
SpaceImpact
Classic Space Impact retro game written in assembly for PIC18F8722 architecture with timers and hardware interrupts.
my-ptl
Personal Template Library — modern generic data structures and high-performance algorithms implemented in C++.
