A koi drawn from my GitHub activity, redrawn every day.
I build AI products from start to finish. I work on infrastructure for AI agents and on tools for health, law, and real estate. My work covers data, evaluation, backend, interface, and deployment.
I currently build Muddei, a verifiable legal research platform, and Deed, a contract-first programming language for agents. I also contribute to OpenHands, with 15 merged pull requests across its agent SDK, extensions, and automation.
Before this, I worked at Microsoft. I built agent solutions with M365 Agents Toolkit and Copilot Chat. I also built RAG search with Azure OpenAI. I study CTIS at Bilkent University. I expect to graduate in 2027.
- Muddei: a verifiable legal research platform for Turkish law. It keeps every answer tied to its source. Built with Python and TypeScript.
- Deed: a contract-first language for agents. A function signature is a promise. The compiler checks it. Built with Rust.
- KlinikMCP: 18 tools that use 10 or more official sources for Turkish drug, interaction, and reimbursement data. The server helps doctors and pharmacists. Built with Python, FastMCP, and Docker.
- sold: UYAP auction data with source tracking. The project also has an atlas that compares court appraisals with final sale prices for Turkish property valuation. Built with Python and econometric models.
- Audio Transcription: privacy-first transcription. It runs locally in the browser on desktop. It uses a secure cloud fallback on mobile. Built with Next.js and TypeScript.
- Atlas: a personal assistant for scattered context. This is our graduation project. I built the WorkOS browser sign-in and the protected API session boundary. Built with TypeScript, React, and Hono.
- OpenHands: 15 merged pull requests across the core repo, software-agent-sdk, extensions, and automation. I worked on agent server lifecycle, MCP startup resilience, ACP isolation, and settings behavior. See the pull requests.
- modelcontextprotocol/rust-sdk: bounded the incoming line buffer in AsyncRwTransport. This prevents memory exhaustion from an unterminated line. Merged.
- canonical/multipass: wildcard support in instance-to-host transfers. C++, 500 or more lines. In review.
I work with Rust, Python, TypeScript, Go, C++, C#, PostgreSQL, Azure OpenAI, MCP, and Docker.
- test(hooks): skip stdin JSON test when jq is missing on docker/docker-agent
- fix: register Movie entity and add Movies migration on EfeDurmaz16/MoviesMicroservices
- feat: add movie-genre relationship CRUD on EfeDurmaz16/MoviesMicroservices
- test(sdk): cover env-only lookup with a readable dotenv file on OpenHands/software-agent-sdk
- fix(settings): refresh profile list even when title cleanup fails on OpenHands/OpenHands
- fix(transport): bound the incoming line buffer in AsyncRwTransport on modelcontextprotocol/rust-sdk
Contribution graph, redrawn every week.




