I come from an engineering background and learn fastest by building. From a browser-based hydraulics simulator in vanilla JavaScript to a C++ Navier-Stokes solver and high-performance GPU rendering systems, I write software that models and visualizes how real physical systems behave.
A real-time pipeline flow simulator that runs entirely in the browser with
zero external dependencies and no build step. Engineers drag and drop
components — pumps, pipes, valves, elbows, reducers — and the system calculates
pressure, velocity, flow rate, and energy losses every 100 ms.
The physics model is genuine: Darcy-Weisbach for friction losses,
Colebrook-White solved via fixed-point iteration, Borda-Carnot
for expansion losses, and a full pump H-Q curve resolved each tick by bisection.
Fluid properties (water and 50% ethylene glycol) use empirical polynomial models
from 0–150 °C.
A parallel diagnostic engine applies 21 hydraulic rules against
industry thresholds (Crane TP-410, ISA 75.01), flagging BEP deviation, flash risk,
consecutive globe valves, near-deadhead conditions, and more — each with severity
level and corrective advice.
A 2D incompressible Navier-Stokes solver built in C++ with zero external framework
dependencies. Implements Chorin's projection method — fractional step
approach decoupling velocity and pressure — with Gauss-Seidel pressure iteration and
CFL-stable time stepping.
Validated against the Ghia et al. (1982) lid-driven cavity benchmark
with automated L₂/L∞ error norms at Re = 400. Includes a conjugate heat transfer
solver, interactive draggable rigid bodies (Dirichlet disk, Neumann obstacle), and
SDL2 real-time visualization with dynamic colormaps.
Currently validating at increasing mesh resolutions — 64×64 complete,
128×128 with bilinear interpolation in progress.
A collection of Unity GPU rendering systems pushing the limits of real-time object counts.
Three progressive instancing approaches — from simple batched rendering up to
Compute Shader-driven indirect draw — each targeting a different instance
range and hardware profile.
The GPU Sprite system adds dynamic memory slot allocation, thread-safe atomic counters,
and camera frustum + spherical culling entirely on the GPU. The grass
renderer generates 100K+ blades procedurally with noise-based placement and gradient
colour variation. Runs at 60+ fps throughout.
Seven custom Unity URP shaders covering physically-based material rendering and
procedural environment effects. The silk shader implements anisotropic
GGX reflections, Fresnel, iridescence, and sheen BRDF. The velvet shader
adds rim lighting, subsurface scattering simulation, and procedural fuzz scatter.
Water shaders provide vertex displacement, procedural wave generation, dynamic normal
recalculation, and depth-based colour gradients. A suite of editor gallery tools
automates parameter visualisation across mesh complexities.
A library of Unity packages designed for rapid integration into any project.
Movement frameworks for both 2D and 3D handle input bridge systems,
camera-relative controls, state machine architecture, and
ScriptableObject-driven animation pipelines — all configurable via custom
property drawers.
The sprite database animator provides code-driven animation with a simple
SetCategory("Run") API. DOTween-based object movement covers Move,
Jump, Path, Rotate, and Torque. Distributed as .unitypackage files with READMEs.
I'm a software developer with an engineering background — a B.Sc. in Food Engineering from Istanbul Technical University, grounded in fluid mechanics, thermodynamics, and numerical methods.
I wanted to be an engineer for as long as I can remember. What I didn't expect was that software would end up being the way I got there. Partway through my degree, sitting in class, I kept catching myself thinking we could just code this — turn the equation on the board into something that actually runs. After graduating I started learning software more seriously, and once I had enough footing, I went back and rebuilt what I'd learned in school as real, working projects. That's the part I want to keep doing: taking a hard technical problem and solving it in code.
I learn fastest by building. I implemented a shader from scratch within a week while working on Unity/GPU projects at iBright. I picked up JavaScript to build PipeFlow, a dependency-free browser-based hydraulics simulator, in two months. I'm currently developing a 2D CFD solver in C++, with a working demo in three months.
I'm looking for a junior software developer role — ideally backend, systems, or tools-focused work. Based between Sofia, Bulgaria and Istanbul, Turkey. As an EU citizen (Bulgaria), I require no visa sponsorship anywhere in Europe.
I am actively seeking a Junior Software Developer role, open to Backend, Systems, or Full-Stack work. I'm most drawn to low-level, numerical, technical problems — but I code across the stack when the job calls for it.
↓ Download CV (PDF)