Akın Aydın

Softwareentwickler

Das ist die technische Seite von akinaydin.com: wie meine Projekte gebaut sind, mit Diagrammen und Code aus den Repos.

  • Mitgründer und technischer Leiter bei FitEscala
  • MSc Künstliche Intelligenz (Machine Learning), Liverpool John Moores University. Durchschnitt der Lehrmodule: 78,8 %. Das Endergebnis steht noch aus.
  • Liverpool, Vereinigtes Königreich

Architekturdiagramme

Architecture console

No diagram yet

Architecture console, idle.

Ready. Type `help`, or tap a command.

Tippe auf einen Befehl oder gib einen ein. Probier „ls“ für alle Diagramme oder „source“, um den Code der Konsole selbst zu sehen.

Artikel zu den Projekten

Sechs Projekte im Detail. Jeder Artikel zeigt das Problem, wie das Projekt gebaut ist, die Entscheidungen, auf die es ankam, und Code aus dem Repo.

Ein neuronales Netz in deinem Browser

Ein kleines neuronales Netz, von Grund auf in TypeScript geschrieben, ohne Machine-Learning-Bibliothek. Es lernt, zwei ineinandergreifende Halbmonde zu trennen, und nutzt dafür nur die freie Zeit deines Browsers. Drück auf Grad check, um seine handgeschriebenen Gradienten mit einer numerischen Schätzung zu vergleichen.

Neural net, 1218 parameters

Layers 2-32-32-2 · tanh and softmax · SGD with momentum

Step
0
Loss
n/a
Train acc
0.0%
Params
1218
Budget
Idle frames only

Training idle at step 0.

Kleinere Projekte

Kundenwebsites, Experimente und Projekte aus dem Studium, jeweils in ein paar Sätzen.

Websites für Kunden

  • Anamaria Andrei

    Konzept

    Vier Onlineshop-Konzepte für eine Kerzenmacherin in Oxford, die ihre Kerzen von Hand gießt, jedes in eine andere Richtung. Eines hat eine 3D-Kerze, die man anzünden kann.

    HTML · Three.js · GSAP · Lenis

  • Yağız Cem Yılmaz

    Online

    Ein mehrseitiges Portfolio für einen Musiklehrer, Bühnenmusiker und Chorleiter in İzmir: eine Scroll-Geschichte in drei Teilen, bewegte Typografie und eine optionale WebGL-Szene, alle Inhalte in einer einzigen geprüften Profildatei.

    Next.js 16 · React 19 · Motion · anime.js · React Three Fiber

    yagizcemyilmaz.com
  • Tiyatro Fısıltı

    Online

    Eine PHP-Website mit Admin-Bereich für die Theatergruppe im Kuluçka Kahve Sanat, einem Café mit Bühne in İzmir: Spielplan, Stücke, Blog, Team und Galerie, mit Veranstaltungsdaten für Suchmaschinen. Der Admin-Bereich hat Session-Authentifizierung, CSRF-Schutz, Rate Limiting und einen Bild-Upload mit MIME-Allowlist. Deployt wird auf Shared Hosting, ohne Build-Schritt.

    PHP · SQLite or MySQL · JavaScript

    kuluckakahvesanat.com
  • CIBES Research Centre

    Online

    Die öffentliche Website des Forschungszentrums, dazu die Werbekampagnen für die Konferenz über die Meta Marketing API, um die es in der ersten Notiz weiter unten geht.

    React · Vite · Tailwind · Meta Marketing API

    cibesresearch.org
  • Phinova Clinics

    Demo übergeben

    Eine Demo, die die einseitige Website einer Klinik als Plattform in neun Sprachen neu aufbaut: Seiten für Behandlungen und Behandler, ein geführter Behandlungsnavigator mit Einwilligung, Ticketnummern und Übergabe an WhatsApp, dazu hreflang, eine Sitemap und JSON-LD.

    Next.js · Tailwind · Resend

  • Ogün Aslan

    Fertiggestellt

    Eine Website für einen Musikproduzenten, Bühnenmusiker und Lehrer: Seiten für Produktion, Bühne und Unterricht, dazu ein türkischsprachiger Blog mit strukturierten Artikeln, aufgebaut aus dem Lebenslauf und Interviews des Produzenten.

    Next.js · TypeScript

  • Maske Sanat Tiyatro

    Fertiggestellt

    Eine Website für ein freies Theater mit Café und 50 Plätzen in Bornova. Jede Angabe ist in einer Recherchedatei auf eine Quelle zurückgeführt, damit sich der Spielplan vor dem Veröffentlichen noch einmal prüfen lässt.

    Vite · HTML

  • Emir Özeren

    Offline

    Eine persönliche akademische Website für einen Associate Professor, mit Lebenslauf, Publikationen und Notizen. Sie ist inzwischen offline.

    Astro

Produkte und Experimente

  • Anı Defteri

    Für eine echte Hochzeit gemacht

    Ein Hochzeitsgästebuch als Web-App. Die Gäste scannen einen QR-Code und hinterlassen eine Nachricht und bis zu drei Fotos. Das Brautpaar wählt aus, was auf die gemeinsame Pinnwand und in ein PDF-Buch kommt, das es herunterladen kann.

    Next.js · Supabase · React PDF

  • Charisma AI

    Eingestellt

    Ein vollständiges SaaS, das ich eine Zeit lang als Nebenprojekt live betrieben habe: Rein gehen ein Selfie und ein Fragebogen, raus kommt ein von Gemini bewertetes Charisma-Profil, dazu ein Coaching-Plan, tägliche Check-ins, ein KI-Coach zum Chatten, Abos über Stripe und Erinnerungsmails. Ich habe es bewusst abgeschaltet; seine Muster für Abrechnung und Scoring sind in spätere Produkte eingeflossen.

    Next.js · Supabase · Gemini · Stripe · Resend

  • YouTube-Automatisierung

    Auf Eis gelegt

    Ein Prompt rein, ein veröffentlichtes Video raus: Skript, Szenenbilder, eine Sprecherstimme mit Zeitstempeln pro Wort, Video, ein Render mit Remotion, SEO, Thumbnail und Upload. Jeder Schritt schreibt sein Ergebnis auf die Festplatte, so macht ein fehlgeschlagener Lauf bei dem Schritt weiter, an dem er gescheitert ist. Es hat funktioniert; ich habe es auf Eis gelegt, weil es den Fokus von den echten Produkten abgezogen hat.

    TypeScript · Gemini · fal.ai · ElevenLabs · Remotion · YouTube API

  • Tatil Radar

    Fertiggestellt

    Rechnet nach Gegend aus, was eine Nacht an der Küste von İzmir wirklich kostet (Hotel, Abendessen, Strand und Ausgehen), und vergleicht ein Hotel über 13 Vertriebskanäle. Jeder Hotellink wird geprüft, und alles Ungeprüfte ist als solches gekennzeichnet.

    Next.js · TypeScript

  • Hands-Free Chords

    Funktionierender Prototyp

    Die Webcam verfolgt beide Hände. Jede Hand bekommt ein Radialmenü, links den Grundton und rechts den Akkordtyp, und eine Pinch-Geste spielt den Akkord über einen virtuellen MIDI-Port in eine DAW. Eine Web-Version ist in Arbeit.

    Python · MediaPipe · OpenCV · mido

  • MOKOKO

    Fertiggestellt

    Ein türkisches Wortspiel in drei Runden im Browser, bei dem Spiellogik und Wortregeln durch Unit-Tests abgedeckt sind.

    React 19 · Vite · Vitest

  • LinkedIn-Content-Pipeline

    Im Einsatz

    Eine Markendatei, eine Rechercheliste und eine Content-Warteschlange. Claude entwirft zwei Versionen, ich gebe eine frei, und sie wird über die offizielle LinkedIn-API veröffentlicht. Nichts geht ohne meine Freigabe raus.

    Claude · LinkedIn API · Markdown

  • HorrorGuess

    Fertiggestellt, nicht online

    Ein türkisches Horror-Ratespiel, in zwei Tagen mit einem Freund gebaut. Das Modell schreibt eine Geistergeschichte nach Muss-, Kann- und Darf-nicht-Regeln mit einer per Schema erzwungenen Ausgabe, und der Spieler rät, welche von zwanzig Kreaturen sie beschreibt.

    React · Vite · TypeScript · OpenAI

  • Chordinia

    Pausiert

    Ein Assistent für Akkorde und Songtexte mit einem echten Musiktheorie-Kern in reinem Dart (Akkord-Parsing, Tonarterkennung, Transponieren mit einem Tippen, Live-Analyse der Tonhöhe), dazu Songerkennung und Songtexte. Pausiert, während Pistochia an den Start geht.

    Flutter · Supabase · ACRCloud · Genius API

  • Kuluçka Vampir Köylü

    Eingestellt

    Eine App für Werwolf-Spieleabende in einem Café: Die Spieler steigen per QR-Code ein und bekommen Rollenkarten, die sie per Tippen aufdecken, Nachtaktionen werden auf dem Bildschirm der Spielleitung aufgelöst, und Live-Abstimmungen synchronisieren sich auf jedes Handy. Wer was sieht, wird per Row-Level Security erzwungen, nicht in der App. Die Abende im Café liefen mit Papierkarten gut, deshalb wurde die App eingestellt.

    Next.js · Supabase Realtime · Row-level security

  • aifindsit

    Workflow fertiggestellt

    Ein Bot für Instagram-DMs, gebaut als n8n-Workflow: Eine Nachricht kommt über einen Webhook rein, das Produkt wird nachgeschlagen, und die Antwort enthält einen Link darauf.

    n8n · Instagram Graph API

Universität und Open Source

  • FlexFlow

    Abschlussprojekt, eingestellt

    Mein Abschlussprojekt an der Yaşar University, im Dreierteam: eine Fitness-App, die Studiobesucher mit Personal Trainern zusammenbringt, mit Trainings- und Ernährungsplänen, Studios in der Nähe auf einer Karte, einem KI-Coach und Kalorien-Tracking. Ich habe die mobile App gebaut, ein Teamkollege das NestJS-Backend.

    React Native · Expo · Firebase · NestJS · PostgreSQL

  • Smart Bed

    Prototyp, vorgeführt

    Ein Krankenhausbett, in drei Tagen (März 2024) in gemischten Teams aus Studierenden der Yaşar University und von Penn State Abington gebaut. Bettsensoren und eine KI-Kamera überwachen den Patienten, und wenn er anfängt aufzustehen, alarmiert eine Wandeinheit das Handy der Pflegekraft, bevor es zu einem Sturz kommt. Vor Bordatech vorgeführt und auf der Nachrichtenseite der Universität vorgestellt.

    M5Stack · MicroPython · AI camera

  • Flugticketsystem mit KI-Assistent

    Studienprojekt, zu zweit gebaut

    Eine Ticketing-API (Flüge, Kauf, Check-in, JWT-Auth) hinter einem Express-Gateway mit Rate Limits pro IP, dazu ein Assistent, der in natürlicher Sprache antwortet und dafür dieselben öffentlichen Endpoints aufruft wie jeder andere Client. Die Repos liegen im GitHub-Account meines Projektpartners.

    .NET 8 · EF Core · Azure SQL · Express · OpenAI

  • Microservices für Hotelbuchungen

    Studienprojekt, zu zweit gebaut

    Sieben Services hinter einem Gateway (Admin, Suche, Buchung, Kommentare, Benachrichtigungen und ein Sprachagent), jeder mit dem Datenspeicher, der zu ihm passt: Postgres für Buchungen, MongoDB für Bewertungen, Redis für den Cache und eine Message Queue für E-Mails.

    Node.js · Express · PostgreSQL · MongoDB · Redis · RabbitMQ · Docker Compose

  • MiroFish, ein Fork mit Erweiterungen

    Beitrag

    Erweiterungen für MiroFish, eine Open-Source-Engine für Multi-Agenten-Vorhersagen: ein austauschbares Memory-Backend (Zep Cloud oder Graphiti mit Neo4j auf dem eigenen Server), ein Live-Kostentracker in Dollar, der einen Lauf bei einem festgelegten Limit stoppt, ein Watchdog für ihre Prozesse und ein Not-Aus-Knopf. Die Engine selbst stammt von Upstream; nur diese Erweiterungen sind von mir.

    Python · FastAPI · Graphiti · Neo4j · Vue

Skills und wie oft ich sie nutze

Keine Sterne, nur wie oft jeder Skill in echter Arbeit vorkommt und wo du ihn sehen kannst.

SkillWie oftWo man es sieht
JavaScript, TypeScript und Node.jsTäglichDas meiste, was auf dieser Website steht, läuft damit. Malton London Press
Next.js, React und SupabaseTäglichResearchGo, Ürünereklam, Malton London Press, mehrere Kundenwebsites und meine beiden eigenen Websites. ResearchGo
SQL, API-Design, CI/CD und GitTäglichIn jedem Projekt im Einsatz. Migrationen, Datenbank-Checks und Deploy-Pipelines kommen in den Artikeln vor. Malton London Press
Python: Datenpipelines, Scraping und Machine LearningIn ProduktionDie Lead-Engine von FitEscala, der Parsing-Worker von ResearchGo und meine Masterarbeit (klassische, Ensemble- und Transformer-Modelle sowie Metriken zur Erklärbarkeit). Masterarbeit: erklärbare Erkennung von KI-geschriebenem Phishing
React Native und ExpoIn ProduktionFlexFlow, mein Abschlussprojekt auf Firebase, und Pistochia, offline-first auf SQLite mit Supabase Edge Functions. Pistochia
WebGL und Three.js (React Three Fiber)In ProduktionDer 3D-Buchstabe auf akinaydin.com, mit einem WebGL-Kontext, der sich selbst neu aufbaut, wenn die GPU ihn verliert. akinaydin.com
Meta Marketing API und WerbekampagnenIn ProduktionEine Konferenzkampagne, die von blindem Ausgeben zu gemessenen Kosten pro Lead geführt wurde. Die Geschichte steht weiter unten in den Notizen.
Playwright und Browser-AutomatisierungIn ProduktionDie LinkedIn-Content-Pipeline.
BarrierefreiheitIn ProduktionDie Website eines von der EU kofinanzierten Projekts für Menschen, die Gebärdensprache nutzen, gebaut 2024 und 2025 für einen sonderpädagogischen Verein.
C, C++, C#, Java, Flutter und IoTGelegentlichEchter Einsatz, nicht täglich: Das Smart Bed lief mit MicroPython auf einem M5Stack, Chordinia nutzt Flutter, und das Flugticketsystem .NET.

Technische Notizen

Was in echten Projekten schiefgelaufen ist und was ich geändert habe.

2026.06

Die Werbekampagne, die ihr Ziel nicht sehen konnte

Eine Konferenz brauchte Anmeldungen, also lief im Werbekonto eine Conversion-Kampagne. Aber am Pixel war kein Anmelde-Event angebunden. Meta optimiert auf das, was es sehen kann, und es konnte nichts sehen, also hat eine Lookalike Audience den Großteil des Budgets in drei Ländern ausgegeben, die Tausende Klicks und keine Anmeldungen brachten.

Eine schlauere Zielgruppe hätte das nicht gelöst. Der Wechsel zu Metas eigenen Lead-Formularen gab dem Algorithmus ein echtes Event als Ziel, und dasselbe Konto brachte von da an qualifizierte Forschende zu Kosten pro Lead, die deutlich unter dem üblichen Wert für B2B in der EU lagen. Die gemessenen Zahlen stehen im Abschlussbericht; ich lasse sie bewusst von dieser Seite weg.

Seitdem prüfe ich, bevor ich eine Kampagne optimiere, ob sie das Ergebnis, das ich will, überhaupt sehen kann.

2026.07

Die Spiegelungen, die die GPU abstürzen ließen

akinaydin.com hat einen spiegelnden 3D-Buchstaben, der das Licht aus seiner Umgebung aufnimmt. Die erste Version hat die Umgebung in jedem Frame neu gerendert und durch die PMREM-Generierung geschickt, damit die Spiegelungen immer aktuell waren. Auf einem schnellen Laptop sah das gut aus. Auf normaler Hardware verlor der Tab mitten im Scrollen seinen WebGL-Kontext, und der Buchstabe wurde dunkel.

Jetzt wird die Umgebung einmal gerendert, beim Laden der Seite. Auf echten Geräten gehen Kontexte trotzdem verloren, deshalb baut die Seite das Canvas-Element in diesem Fall automatisch neu auf, statt ein totes Bild zurückzulassen.

2026.07

Warum das neuronale Netz absichtlich langsam trainiert

Das neuronale Netz auf dieser Seite könnte in einem Web Worker ohne Drosselung viel schneller trainieren. Das tut es absichtlich nicht: Wer vorbeiscrollt, soll nie einen Frame-Drop sehen, weil im Hintergrund ein Netz trainiert.

Deshalb macht der Trainer nur dann ein paar Gradientenschritte, wenn der Browser Zeit übrig hat, in Idle-Callbacks und kleinen Zeitscheiben eines Frames, und gar keine, wenn er beschäftigt ist. Die Loss-Kurve braucht länger, um zu fallen, und die Seite bleibt flüssig.