Ege Yesilyurt

Full-Stack Developer · 📍 Toronto

B.Eng., Spec. Hons. Software Engineering · Expected Jan. 2028

Software Engineering student at York University. I build and ship full-stack products, most recently a Bundesliga prediction site with paying subscribers, and before that a daily puzzle game with 200+ players.

Outside of coding: I like traveling, backpacking, or playing sports like soccer, badminton, or bouldering. I love hiking and being in nature. I also like gaming with friends.

Ege Yesilyurt

Projects

BundesPredict matchday page with win, draw and loss odds for all nine fixtures
Featured · Live 2026

BundesPredict

Bundesliga prediction site with paying subscribers

Kept the Dixon–Coles model as the only thing that produces a probability. The LLM agent can only ask for an expected-goals change, and the server clamps each one to ±0.6.

  • Free and $5/month Pro plans on Stripe Checkout, with the plan read only from signed webhooks so a returning browser can never grant Pro on its own.
  • Hand-written Dixon–Coles model within 4% of closing bookmaker odds over 1,827 walk-forward backtested matches, refit daily by GitHub Actions.
  • Chat agent on the Anthropic API that streams each tool call over SSE while it checks your news against squad data and the weather forecast.
  • Google and email-code sign-in, daily chat quotas, a public track record scored after every match, a weekly matchday email, and an admin dashboard for MRR, churn and AI cost per subscriber.
PythonDjango REST FrameworkNext.jsTypeScriptPostgreSQLStripeAnthropic APIGitHub Actions
Featured · Open source 2026

OverTerm

Agent-aware floating terminal for macOS

Determined agent state from a vt100 screen model of the pseudoterminal instead of the raw byte stream, so it works with any CLI tool rather than one parser per agent.

  • Native Rust + Tauri v2 terminal that shrinks to a status bar while an AI coding agent works and expands when it needs you.
  • Reads exact turn events out of Claude Code hooks as OSC markers, with all agent-state logic in a Rust core built through TDD.
  • One-command install behind a tag-triggered GitHub Actions pipeline that verifies every artifact and auto-bumps the Homebrew cask.
RustTauri v2TypeScriptxterm.jsvt100objc2GitHub Actions

More projects

  • z9bra landing page with the daily logic grid

    z9bra

    2026

    Daily logic-puzzle game, live at zebra9.xyz

    It runs on a commit-based solver that scores the guesses you lock in as you go, so the game rewards real reasoning over a lucky final grid.

    • Wordle-style daily puzzle with 200+ unique players, all solving the same date-seeded grid.
    • Commit-based solving engine with overwrite scoring and server-rendered share cards.
    • Optional account sync for cross-device streaks; automated deploys on Vercel.
    Next.js 16React 19TypeScriptTailwind CSSSatoriVitestVercel
  • Deximon landing page with a fanned spread of Pokémon TCG cards

    Deximon

    2026

    Pokémon TCG collector platform, 6-person team

    Reviewed 8 teammate pull requests with written scores and follow-up fixes, catching a WebSocket handler that crashed on dead sockets and an N+1 query on the marketplace feed.

    • Largest contributor on a 6-person team (66 of 140 commits) across the digital binder, card-recognition scanner, and listing-scoped marketplace.
    • Built binder persistence end to end across a Docker Compose monorepo: Next.js web, FastAPI backend, and a FastAPI scanner service on AWS Rekognition.
    • 80+ backend tests covering auth, listings, and the scanner pipeline.
    Next.jsTypeScriptFastAPIPostgreSQLDocker ComposeWebSocketsAWS Rekognition
  • csp-generator CLI generating and exporting a 5×5 logic puzzle

    Puzzle Generator

    2026

    The constraint-solver engine behind z9bra

    Used CP-SAT as a uniqueness oracle instead of hand-checking puzzles, so every shipped daily is provably single-solution. No unsolvable or ambiguous grids reach players.

    • Python engine that uses OR-Tools CP-SAT as a uniqueness oracle, so every puzzle is provably single-solution.
    • Custom propagation tracer measures human deduction depth to score and tune difficulty.
    • Built with strict TDD: property-based tests, dual-implementation cross-checks, mypy-strict clean.
    Python 3.12OR-Tools CP-SATPydantic v2pytestHypothesismypy
  • Spocity landing page with a 3D voxel city built from listening history

    Spocity

    2026

    Your Spotify history as a 3D voxel city, live

    Offloaded Spotify history ingest to Celery background jobs so the OAuth flow stayed instant while heavy pulls ran out of the request path.

    • Spotify OAuth with on-demand history ingest via Django + Celery jobs.
    • Genre rollup turns your artists into districts of a 3D voxel city in React Three Fiber, scored by a test-first ranking engine.
    • Shareable public profiles and a postcard generator; deployed on Vercel + Railway.
    Next.jsReact Three FiberTypeScriptDjangoCeleryPostgreSQL
  • FITIVA workout planner landing page

    FITIVA

    2026

    Workout training planner web app

    Led the 6-person team and pushed for a repository-pattern data layer so the backend stayed testable under a tight deadline.

    • Project lead for a 6-person agile team, running sprint planning and delegation in Jira.
    • User/trainer auth, fitness profiles, program scheduling, and workout recommendations.
    • Repository-pattern data layer covered by Django unit tests, fully containerized.
    Next.jsTypeScriptDjango RESTMySQLDocker

Stack

Languages

  • TypeScript
  • Python
  • Rust
  • Java
  • SQL

Frameworks & Libraries

  • Next.js
  • React
  • SvelteKit
  • Django REST Framework
  • FastAPI
  • Tailwind CSS

Infrastructure & Tools

  • PostgreSQL
  • MySQL
  • Docker
  • GitHub Actions
  • Vercel
  • Git

Contact

Let's talk.

Based in Toronto. Looking for internships/new-grad software engineering roles. If you're hiring, or just want to argue about logic puzzles, my inbox is open.

© 2026 Ege Yesilyurt

Built with SvelteKit + Svelte 5 runes, Tailwind v4, and GSAP · animations respect prefers-reduced-motion · deployed on Vercel