|
| 1 | +<h1 align="center">Hi, I'm Salih 👋</h1> |
| 2 | + |
| 3 | +<p align="center"> |
| 4 | + <b>I build backend systems that people can actually run.</b><br> |
| 5 | + A Rust WebRTC server, a Rust CLI with release binaries on three platforms, and a Python package on PyPI, all built end to end. |
| 6 | +</p> |
| 7 | + |
| 8 | +<p align="center"> |
| 9 | + <a href="mailto:salihyilboga98@gmail.com"><img src="https://img.shields.io/badge/Open_to-remote_backend_roles-2ea44f?style=for-the-badge" alt="Open to remote backend roles"></a> |
| 10 | +</p> |
| 11 | + |
| 12 | +<p align="center"> |
| 13 | + <img src="https://img.shields.io/badge/Rust-000000?style=flat&logo=rust&logoColor=white" alt="Rust"> |
| 14 | + <img src="https://img.shields.io/badge/Java-ED8B00?style=flat&logo=openjdk&logoColor=white" alt="Java"> |
| 15 | + <img src="https://img.shields.io/badge/Python-3776AB?style=flat&logo=python&logoColor=white" alt="Python"> |
| 16 | + <img src="https://img.shields.io/badge/TypeScript-3178C6?style=flat&logo=typescript&logoColor=white" alt="TypeScript"> |
| 17 | + <img src="https://img.shields.io/badge/AWS-232F3E?style=flat&logo=amazonwebservices&logoColor=white" alt="AWS"> |
| 18 | + <img src="https://img.shields.io/badge/Docker-2496ED?style=flat&logo=docker&logoColor=white" alt="Docker"> |
| 19 | +</p> |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## ⚡ In 10 seconds |
| 24 | + |
| 25 | +- 🦀 **Wrote a WebRTC SFU and an RTMP-to-HLS ingest server in Rust**, part of an 8-service social platform. |
| 26 | +- 📈 **Built a data cleaner that raised model accuracy by +8.14 points on average** across 15 benchmark runs and cut training time by **~49%**. |
| 27 | +- 📦 **Ship things people can install:** release binaries for Linux, macOS and Windows, and a package on PyPI. |
| 28 | +- 🧪 **Tested, documented and runnable by someone else**, because code nobody can run isn't finished. |
| 29 | + |
| 30 | +--- |
| 31 | + |
| 32 | +## 🛠️ Featured work |
| 33 | + |
| 34 | +### 🎥 [escld](https://github.com/voidstackloop/escld): real-time video calls and live streaming |
| 35 | + |
| 36 | +A social platform with posts, follows and moderation. It also has WebRTC video calls (screen share, in-call chat, recording) and RTMP live streaming delivered as HLS. |
| 37 | + |
| 38 | +- **Hardest part:** routing live media between callers. I wrote the **SFU (Selective Forwarding Unit) in Rust** rather than using a hosted service. |
| 39 | +- **8 services:** React SPA, Spring Boot API, two Rust services, three background workers, and **20 AWS CDK stacks** as infrastructure code. |
| 40 | +- **Data:** PostgreSQL, five DynamoDB single-table designs, Redis and Elasticsearch. |
| 41 | +- Designed and tested locally. The whole system starts with one command: `docker compose up -d`. |
| 42 | + |
| 43 | +<p align="center"><img src="https://raw.githubusercontent.com/voidstackloop/escld/main/docs/images/diagram-architecture.png" width="720" alt="escld architecture"></p> |
| 44 | + |
| 45 | +`Rust` `Java / Spring Boot` `TypeScript / React` `WebRTC` `AWS CDK` |
| 46 | + |
| 47 | +--- |
| 48 | + |
| 49 | +### 📊 [buffdata](https://github.com/voidstackloop/buffdata): better training data means better models |
| 50 | + |
| 51 | +A Python CLI and SDK that validates, deduplicates, PII-redacts and LLM-scores datasets before training. It works with OpenAI, Anthropic, Gemini or a local model. For managed runs, a **Rust worker** claims jobs from the queue and supervises each run's process. |
| 52 | + |
| 53 | +| Benchmark (40% duplicated, 10% empty rows) | Before | After | |
| 54 | +|---|---|---| |
| 55 | +| DBpedia-14 | 86.97% | **96.68%** | |
| 56 | +| Emotion | 71.23% | **83.77%** | |
| 57 | +| AG News, 100k rows | 83.39% | **89.42%** | |
| 58 | +| Training time, AG News 100k | 80.2 s | **42.3 s** | |
| 59 | + |
| 60 | +On already-clean data, accuracy stays within ±0.10 points, so it doesn't damage good datasets. |
| 61 | + |
| 62 | +`Python` `Rust` `LLM APIs` `Data quality` |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +### 🔍 [formwatch](https://github.com/voidstackloop/formwatch): finds out why people give up on government forms |
| 67 | + |
| 68 | +A Rust CLI that drives a real browser through public-service forms (permits, benefits, license renewals). It catches broken submissions, accessibility failures, unusable mobile layouts and forms that lose what you typed. |
| 69 | + |
| 70 | +```sh |
| 71 | +formwatch test https://city.gov/apply |
| 72 | +formwatch report --html |
| 73 | +``` |
| 74 | + |
| 75 | +<p align="center"><img src="https://raw.githubusercontent.com/voidstackloop/formwatch/master/docs/images/html-report.png" width="720" alt="formwatch HTML report"></p> |
| 76 | + |
| 77 | +[v0.1.0 released](https://github.com/voidstackloop/formwatch/releases/latest) with binaries for Linux, macOS (Intel and Apple Silicon) and Windows. |
| 78 | + |
| 79 | +`Rust` `Chromium` `Accessibility` `CLI` |
| 80 | + |
| 81 | +--- |
| 82 | + |
| 83 | +### 🎓 [expert-mentor](https://github.com/voidstackloop/expert-mentor): turns any LLM into a real teacher |
| 84 | + |
| 85 | +Most AI "tutor" prompts are a persona and a vibe. This one is based on learning science: retrieval practice, spaced repetition and a learner model that remembers what you've mastered between sessions. It works with Claude, ChatGPT, Gemini, Ollama and llama.cpp, and has **zero runtime dependencies**. |
| 86 | + |
| 87 | +```sh |
| 88 | +pipx install expert-mentor |
| 89 | +``` |
| 90 | + |
| 91 | +[](https://pypi.org/project/expert-mentor/) |
| 92 | + |
| 93 | +`Python` `LLM` `CLI` `Published on PyPI` |
| 94 | + |
| 95 | +--- |
| 96 | + |
| 97 | +## 🧭 How I work |
| 98 | + |
| 99 | +I'm self-taught and learned by building real projects instead of tutorials. For every project, I: |
| 100 | + |
| 101 | +1. **Start with the hard problem.** I pick the part most people would outsource, like media routing or dataset contamination, and build it myself. |
| 102 | +2. **Measure it.** I don't claim a result until a benchmark or a test backs it up. |
| 103 | +3. **Make it runnable.** One-command setup, CI, release binaries and docs, so someone else can use it without asking me. |
| 104 | + |
| 105 | +--- |
| 106 | + |
| 107 | +<p align="center"> |
| 108 | + <b>Hiring for a remote backend role? I'd like to hear about it.</b><br> |
| 109 | + 📫 <a href="mailto:salihyilboga98@gmail.com">salihyilboga98@gmail.com</a> |
| 110 | +</p> |
0 commit comments