Junior Software Developer

Rengin
Çelik

Engineering background. Software builder.

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.

Istanbul Technical University
B.Sc. Food Engineering · 2016 – 2022
a curriculum built on fluid mechanics, thermodynamics, and numerical methods.
Work Eligibility
EU Citizen (Bulgaria)
No sponsorship required
Languages
Turkish — Native
English — Proficient
Location
Sofia, Bulgaria & Istanbul, Turkey
Open to relocation across Europe
01 —

Projects

CFD Solver · Active Development

2D Navier-Stokes
Solver

From-scratch incompressible CFD with conjugate heat transfer

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.

C++17 Chorin Projection Gauss-Seidel Navier-Stokes SDL2 Ghia Validation CMake
Real-Time Graphics

GPU Instancing &
Rendering Systems

100K+ objects in a single draw call

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.

Unity URP Compute Shaders HLSL DrawMeshInstancedIndirect Frustum Culling Atomic Operations
Shader Development

Unity Shader
Samples

Advanced material shaders & procedural effects for URP

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.

HLSL Unity URP Anisotropic GGX PBR Vertex Displacement C# Editor Scripting
Unity Tooling

Mini Dev Kit

Modular, reusable Unity development systems

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.

C# Unity Engine State Machine ScriptableObjects DOTween Editor Scripting
02 —

Technical Skills

Languages
  • C++ (C++17)
  • JavaScript (ES6+, Modules)
  • C# (.NET)
  • HLSL
  • HTML5 / CSS3
Simulation & Numerics
  • Navier-Stokes (Chorin Projection)
  • Darcy-Weisbach / Colebrook-White
  • Gauss-Seidel iteration
  • Bisection
  • Fluid Dynamics & Thermodynamics
  • Conjugate Heat Transfer
  • CFL stability analysis
Real-Time & Graphics
  • SVG Rendering / Canvas 2D
  • GPU Instancing
  • Compute Shaders
  • Unity URP
  • Shader Development
  • Frustum Culling
  • SDL2
Tools & Workflow
  • Git / GitHub
  • CMake
  • CLion / WebStorm / VS Code
  • Unity Engine
03 —

About

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.

04 —

Experience

Company
iBright
Istanbul, Turkey
Period
Aug 2025 – Nov 2025
Role
Software Developer
(Unity / Tools)
Graphics & GPU Rendering
  • High-Performance Instancing: Three progressive approaches (DrawMeshInstanced, Indirect, Compute-driven) rendering over one million objects in a single draw call
  • GPU Optimization: Frustum and spherical culling via compute shaders with atomic operations, offloading heavy calculations from CPU
  • Procedural Systems: GPU-driven grass rendering with Compute Shaders, procedural generation, and ProBuilder integration
Advanced Shaders
  • Fabric Shaders: Physically-based silk shader (anisotropic GGX, Fresnel, iridescence, sheen BRDF); velvet shader (rim lighting, SSS, procedural fuzz scatter)
  • Environment Shaders: Dynamic water surfaces with vertex displacement, procedural wave simulation, depth-based coloring
Systems & Tooling
  • Movement Framework: Modular 2D/3D input-movement system using State Machine architecture and ScriptableObject-driven animation pipelines
Unity URP HLSL Compute Shaders C# GPU Instancing Editor Scripting

Let's work
together.

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)