Hi, my name is
Burak Katı.
I am a
I've worked on a variety of projects for freelance clients as well as my own pet projects, crafting digital experiences that bridge creativity and functionality. From full-stack web apps and AI-powered tools to immersive games, I bring ideas to life through clean code and thoughtful design.
Check out my work!Skills & Technologies
Frontend
- ▹ HTML5
- ▹ CSS3
- ▹ JavaScript
- ▹ TypeScript
- ▹ React
- ▹ Astro
- ▹ Tailwind CSS
- ▹ HTML Canvas
Backend & Data
- ▹ Node.js
- ▹ Express
- ▹ Python
- ▹ RESTful APIs
- ▹ MongoDB
- ▹ PostgreSQL
AI & Machine Learning
- ▹ llama.cpp
- ▹ RAG Pipelines
- ▹ Scikit-learn
- ▹ TensorFlow
Tools & DevOps
- ▹ Git
- ▹ Linux
- ▹ Docker
- ▹ Nginx
- ▹ Unity
- ▹ VS Code
What I'm building right now
A top-down 2D sci-fi dungeon crawler built solo in Godot 4 with C#. The singleplayer core loop is fully playable: descend into a procedurally generated planet, fight through escalating enemy encounters, gather resources, and reach the planet's Soul Core Carrier to claim its core and unlock the next planet.
System status
- Combat system Implemented
- Skill & passive tree Implemented
- XP & leveling Implemented
- Inventory system Implemented
- Mining & resource gathering Implemented
- Crafting system Implemented
- Procedural dungeon generation Implemented
- Core boss (Soul Core Carrier) In progress
Technical highlights
Procedural Generation
- ▹ Grid-based dungeon generator with guaranteed core connectivity, verified via graph traversal (cycle detection, branch & loop guarantees)
- ▹ Weighted, distance-aware room typing (Enemy, Resource, Shop, Puzzle, Hidden, Core) that shifts odds as players get closer to the core
- ▹ Streaming/culling system for mineable terrain based on player proximity
Performance & Architecture
- ▹ Object pooling shared across enemies, SFX, point lights and mineable tiles instead of per-instance allocation
- ▹ GPU-instanced rendering (MultiMeshInstance2D) for dormant enemies, with distance-based LOD activation so a room can hold ~200 enemy records while only a handful ever run full AI/physics at once
- ▹ Event-driven UI updates (signals) instead of per-frame polling or full-list rebuilds
Player Systems
- ▹ Data-driven skill and class system loaded from JSON, covering melee/ranged/magic/utility/dash archetypes with per-skill cost, cooldown and status-effect data
- ▹ Prerequisite-gated passive tree with XP/leveling and a modifier pipeline (damage%, armor, block chance, regen) rebuilt on allocation
- ▹ Enemy AI driven by a finite state machine (idle, patrol, chase, attack) reused across all enemy archetypes
Backend & Persistence
- ▹ Self-hosted MySQL backend with auto-provisioning schema and idempotent migrations on first run
- ▹ Repository pattern for player save/load, decoupled from gameplay code
- Godot 4
- C#
- .NET 8
- MySQL
What I've built so far
Speech Verification With Python
Desktop application that analyzes the given speech data using speech waveform analysis and machine learning techniques and produces a nearly 90% correct prediction for the owner of the speech file using the data training model. Model obtained by OpenSLR.
- Python
- Sklearn
- Tensorflow
- librosa
- pyaudio
AI vs BOB
The game AI vs BOB is our entry to the MAĞARA GAME JAM at 2020. We developed a 2D game with Unity and the goal was to defeat an evil AI that the corporate greed brought in the office. The challenge is to beat the AI despite the various obstacles that it puts in front of the player and the unfair advantages. The theme was 'One must cheat in order to win'.
- C#
- Unity
Cat API
A simple web app that shows random cat images alongside their names and details. Users can add, delete, update and view their submissions. I developed this project for fun and to gain experience with nginx deployment. I hosted this app on my Raspberry Pi.
- Nginx
- React
- MongoDB
- TailwindCSS
- Express