Skip to content
View kutsibalci's full-sized avatar

Highlights

  • Pro

Block or report kutsibalci

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
kutsibalci/README.md
Hüseyin Kutsi Balcı — Backend Development Student, Anadolu University, İzmir

I write backend systems. Every number on this page is one I measured myself.

I have twelve patches merged into projects I had never worked on before: NASA's flight-software ground system, CERN's ROOT, the Rust compiler's GCC backend, the .NET runtime, systemd, Apache Airflow and the VS Code docs. I went looking for the bugs, wrote the fixes, and defended them to maintainers who had no idea who I was.

The project I put most of my time into is a pre-accounting and logistics program. It has real users already and I am still building it — right now I am closing the gaps that only showed up once it met real data. I also write mobile apps in Flutter and React Native. And I built a watch-party engine where the browsers send video to each other peer to peer over a WebRTC mesh and the server only introduces them; when I put a second instance behind it, p95 dropped from 258 ms to 14 ms.

I am looking for an internship or a junior backend position.


Open source

I go looking for one class of defect at a time, in code I have never worked on before. Almost everything a sweep returns is a false positive and gets thrown away; what survives, I prove before I open anything, and then defend it to maintainers who have no idea who I am.

Behaviour and design

Merged What it was
fprime-gds#333 NASA's F´ ground system. A bare except: around opening the sequence file caught KeyboardInterrupt along with the file error and threw the real cause away, so a bad output path reached the user as one unhelpful line. Narrowed to OSError, chained the cause. It sat a week with no CI at all; I worked out that was the first-contributor approval gate, said so, and it merged the next day.
root#23065 CERN's ROOT. RDataFrame's progress bar divided the event count by an elapsed time that had already been truncated to whole seconds, so any loop finishing in under a second divided by zero and printed inf evt/s, and longer ones over-reported. Measured on three runs: 0.447 s printed inf against a true 894 evt/s, 2.408 s over-reported by 20%, 5.607 s by 12%. The fix divides by a full-precision duration and keeps the truncated value for the elapsed-time text, so that line stays byte-for-byte identical. I showed the test failing on master before it passed with the patch.
root#23019 Four CMake variables in the tutorials build that nothing reads. I derived the names CMake actually looks up from the files on disk and diffed the two sets. The subtlest one I proved by rebuilding the derivation in a throwaway CMake project and reading the property back — the reasoning on its own was not proof. Merged with its CI still red, because I showed the failures came from a four-day-old build tree the runner had restored.
eclipse-score/logging#253 Eclipse S-CORE, the BMW/Bosch/Mercedes automotive platform. A safety-qualification record named the symbol its test verifies — except two components of that name were a directory and the test file's own basename, neither of which is a namespace anywhere in the repository. Under ISO 26262 that record is the audit trail tying a test to the requirement it discharges, so a name resolving nowhere is a broken trace, not a typo.

Defect sweeps

Each of these started as a scanner run over a whole repository, and the number that matters is how much came back wrong. A link that looks broken usually is not: a redirect, a case-insensitive filesystem, an anchor the renderer generates, a path that only resolves in the built docs. Sorting those out is the work — the patch is what is left when it is done.

Merged What it was
airflow#71179 372 candidates in, 20 real. Links that 404 for every reader but open fine for every author: the directory is a git symlink blob, and GitHub will not traverse one.
vscode-docs#10119 771 setting IDs behind 1,760 macros, 3 wrong. The casing does not match what VS Code registers, so they resolve to settings that do not exist.
dotnet/runtime#131865 39 candidates in, 8 real. Documentation links whose targets exist but whose relative paths resolve nowhere.
systemd#43300 7 man page cross-references pointing at the wrong section. CI went red; I pulled the 5.4 MB log, showed the failure was an unrelated ppc64le timeout, and it merged with the job still red.
root#23002 · root#23004 A TMVA header unreachable since 2015, and two aggregate LinkDef headers that lost their only caller when the build went back to two dictionaries per package. Each traced to the commit that orphaned it.
rustc_codegen_gcc#945 · communication#853 Two links in the Rust compiler's GCC backend — the useful part was working out that it is a subtree, so a fix landed upstream would be overwritten on the next sync. Four more in the BMW/Bosch/Mercedes design docs, one of them written hhttp://, so a diagram had never rendered.

One more worth mentioning: root#23036 was a report, not a patch. Three settings shipped in system.rootrc that nothing in ROOT reads. Whether to delete them or wire them up was a maintainer's call, so I filed both options. The engineer who wrote that subsystem replied "Yes, some parameters were not cleaned up", opened the fix half an hour later, and it merged. No commit under my name, which for that kind of finding is the honest outcome.


Projects

Concurrent Ticketing Watch Party Sync Engine
Ön Muhasebe ve Lojistik Takibi Sınav Motoru
Kurye Rota Course Registration System
File Analysis Service Life Gate

Anything marked PRIVATE — a card above or a row below — links to a repository that is not open to visitors. Happy to walk through any of them in an interview.

Also built

Coffee Shop Management Windows Forms till for a small café. Making the ordering logic testable is how I found that two waiters could open two tabs on one table and only one got billed.
Sefer Defteri PRIVATE The driver's side of the accounting system. Expo, on-device SQLite, document expiry reminders. Works with no signal in a truck cab.
Minik Masal PRIVATE Audio story player for small children, with a parent gate. Written twice: Flutter and Expo.
Business Directory API PRIVATE FastAPI service collecting business listings by province. Paginated endpoints, Alembic migrations, spreadsheet export.
Redmine Deployment PRIVATE Dockerised Redmine with PostgreSQL on AWS EC2. Built with @hzflora.
Pansuman Simulator PRIVATE Unity training simulator for wound dressing. In progress.

Stack

Stack: languages, backend, data and messaging, mobile, real-time and infrastructure


balcihkutsi@gmail.com · LinkedIn

İzmir, Türkiye · open to remote and hybrid

Pinned Loading

  1. concurrent-ticketing concurrent-ticketing Public

    Ticketing API showing how a seat is sold exactly once under concurrent demand - PostgreSQL xmin optimistic concurrency, a transactional outbox to RabbitMQ, JWT with refresh rotation, and 119 tests …

    C#

  2. watch-party-sync-engine watch-party-sync-engine Public

    Real-time watch-together sync engine: WebSocket sync layer, atomic state transitions in Redis Lua, a hand-written job queue and an ffmpeg HLS transcoding pipeline. Horizontal scaling verified by me…

    TypeScript

  3. Course-Registration-System Course-Registration-System Public

    Course registration and management web app built with ASP.NET Core MVC, EF Core and SQLite - student applications, plus an admin panel for courses and instructors.

    C#

  4. Small-coffee-Shop-Management-App Small-coffee-Shop-Management-App Public

    Windows Forms point-of-sale app for a small coffee shop - order taking, table tracking and an admin panel, backed by MySQL.

    C#