i build full-stack apps and desktop tools end to end, from the database up to the interface.
##about
hi, i'm kaan. computer engineer interested in the defense industry, with a BSc from Gaziosmanpaşa University (GPA 3.45/4.0) and an Erasmus term at Kielce University of Technology in Poland.
i work on a hospital information system with about 3,000 users, where rewritten Oracle SQL queries cut a typical report load from over 30 seconds to 6.5 seconds. outside work i write things from scratch: a packet analyzer and IDS in Python, a 2D physics engine in TypeScript, and full-stack and desktop apps for retail businesses, with React on the frontend and Python desktop tools backed by SQL. i've also completed the three Cisco CCNA courses.
i like owning a project end to end, from the database up to the interface, rather than one slice of it.
##skills
languagesPython, TypeScript/JavaScript, C#, C++, Java, SQL, Pascal
webReact, TanStack Start, Tailwind CSS, Zod, discord.js
dataOracle SQL, SQLite
vision / mlOpenCV, TensorFlow/Keras
games / vrUnity, VR gameplay and physics
networkingCisco IOS, VLANs, STP, OSPF, ACLs/NAT, VPN/IPsec
toolsGit, GitHub Actions, pytest, Vitest, Playwright
##projects
Sentinel (Packet Analyzer / IDS)
Python · pytest · CI
Packet analyzer and rule-based intrusion detection system written from scratch in Python with no runtime dependencies: hand-written parsers (Ethernet/VLAN, ARP, IPv4/IPv6, TCP, UDP, ICMP, DNS, HTTP, TLS ClientHello), PCAP read/write, TCP stream reassembly, a filter language, detectors for port scans, SYN floods, ARP spoofing and DNS tunneling, and live capture on Linux and Windows. Verified with 942 tests, 405 deliberate code mutations (all caught), a fuzzer run over 3 million inputs, and a comparison with Wireshark's tshark on 10 captures (68,756 field values, 0 unexplained differences after 3 bugs were fixed), with CI on Linux and Windows. It also ran on 2.7 million packets of real traffic, including 14.6 s of a 1 Gbps backbone, where an independent tshark recount found the same 376 scanning sources; the write-up (part 1, part 2 and part 3) is on the blog.
Impulse (2D Physics Engine)
TypeScript · Vitest · Playwright
2D rigid body physics engine written from scratch with no libraries: circle, box, and convex polygon collision (SAT), a warm-started sequential-impulse solver with friction and restitution, sleeping, continuous collision, five joint types, and a spatial-hash broadphase about 42× faster than brute force at 4,000 bodies. Tall stacks settle and sleep (10-box towers in about 1 s instead of 7 s). Verified against analytic references with 171 unit tests and 14 browser tests, and shipped as an interactive browser demo.
Business Management App
Python · SQLite
Desktop application for a retail business handling inventory, point-of-sale (cash and credit), customer accounts and payments, daily earnings and expenses, and PDF customer statements. Layered architecture separating data, business logic and UI, with automatic backups on startup.
E-Commerce Website
TypeScript · React · Cloudflare
Full-stack website for a retail business: a public storefront with product catalog, categories and stock status, and a custom admin panel for products, discounts, homepage content and site settings. Built with TanStack Start, Tailwind CSS and Zod validation, on a SQL database (Cloudflare D1).
Invoice Application
Python · SQLite
Desktop application for a retail business that fills PDF receipt templates, tracks payment status and customer history, and numbers receipts automatically.
Real-Time CV Automation Tool
Python · OpenCV
Built to automate in-game minigames: screen-region object detection with OpenCV using color and contour tracking, a sub-frame-precise pattern-recognition module, and a configurable, persisted region selector.
Illusa (VR Game)
Gameplay/level design
Gameplay programmer and level designer on a VR headset game: built the physics and movement behind its flight mechanics and custom gameplay systems from scratch.
##repos
Packet analyzer and rule-based IDS in pure Python with no runtime dependencies. Hand-written protocol parsers, PCAP I/O, TCP stream reassembly, and detection of port scans, SYN floods, ARP spoofing, and DNS tunneling, with live capture on Linux and Windows.
2D rigid body physics engine written from scratch in TypeScript with no physics libraries. SAT collision, a sequential impulse solver, sleeping, continuous collision, and joints, fully deterministic.
Chrome extension that controls per-site media volume, remembering each site's level and letting you reset it on demand.
Discord leveling bot for the Respy project. Tracks XP from reply and mention activity, stores levels in SQLite, and posts level-up announcements with configurable curves and admin roles.
Discord bot on discord.js that monitors a FiveM game server, posting live join and leave activity to a channel and keeping a SQLite history of player sessions.
Desktop GUI tool for diffing two Excel files with configurable column mapping, built to speed up a recurring task at work and shipped as a standalone executable.