Akın Aydın

Ingénieur logiciel

Voici le côté technique d'akinaydin.com : comment mes projets sont construits, avec des schémas et du code tirés des dépôts.

  • Cofondateur et responsable technique de FitEscala
  • Master en intelligence artificielle (machine learning), Liverpool John Moores University. Moyenne des modules de cours : 78,8 %. Résultat final en attente.
  • Liverpool, Royaume-Uni

Schémas d'architecture

Architecture console

No diagram yet

Architecture console, idle.

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

Appuyez sur une commande, ou tapez-en une. Essayez « ls » pour tous les schémas, ou « source » pour voir le code de la console elle-même.

Articles sur les projets

Six projets en détail. Chacun présente le problème, la façon dont il est construit, les décisions qui ont compté et du code tiré du dépôt.

Un réseau de neurones dans votre navigateur

Un petit réseau de neurones, écrit de zéro en TypeScript, sans bibliothèque de machine learning. Il apprend à séparer deux demi-lunes imbriquées, en utilisant seulement le temps libre de votre navigateur. Appuyez sur Grad check pour comparer ses gradients écrits à la main avec une estimation numérique.

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.

Petits projets

Sites clients, expérimentations et travaux universitaires, en quelques phrases chacun.

Sites web pour des clients

  • Anamaria Andrei

    Concept

    Quatre concepts de boutique en ligne pour une créatrice de bougies coulées à la main, à Oxford, chacun dans une direction différente. L'un d'eux a une bougie en 3D que vous pouvez allumer.

    HTML · Three.js · GSAP · Lenis

  • Yağız Cem Yılmaz

    En ligne

    Un portfolio de plusieurs pages pour un professeur de musique, musicien de scène et chef de chœur à İzmir : un récit en trois parties au fil du scroll, de la typographie animée et une scène WebGL optionnelle, avec tout le contenu dans un seul fichier de profil vérifié.

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

    yagizcemyilmaz.com
  • Tiyatro Fısıltı

    En ligne

    Un site PHP avec espace d'administration pour la troupe de théâtre de Kuluçka Kahve Sanat, un café avec une scène à İzmir : programme, pièces, blog, équipe et galerie, avec des données d'événements pour les moteurs de recherche. L'espace d'administration a une authentification par session, une protection CSRF, du rate limiting et un upload d'images avec une liste de types MIME autorisés. Il se déploie sur un hébergement mutualisé, sans étape de build.

    PHP · SQLite or MySQL · JavaScript

    kuluckakahvesanat.com
  • CIBES Research Centre

    En ligne

    Le site public du centre de recherche, ainsi que les campagnes publicitaires de la conférence via la Meta Marketing API, dont parle la première note plus bas.

    React · Vite · Tailwind · Meta Marketing API

    cibesresearch.org
  • Phinova Clinics

    Démo livrée

    Une démo qui reconstruit le site one-page d'une clinique sous forme de plateforme en neuf langues : pages des soins et des praticiens, un parcours guidé pour s'orienter dans les soins, avec consentement, des références de ticket et un passage de relais vers WhatsApp, plus hreflang, un sitemap et du JSON-LD.

    Next.js · Tailwind · Resend

  • Ogün Aslan

    Terminé

    Un site pour un producteur de musique, musicien de scène et professeur : pages production, scène et cours, plus un blog en turc avec des articles structurés, construit à partir du CV et d'entretiens du producteur.

    Next.js · TypeScript

  • Maske Sanat Tiyatro

    Terminé

    Un site pour un théâtre-café indépendant de 50 places à Bornova. Chaque information est reliée à une source dans un fichier de recherche, pour que la programmation puisse être revérifiée avant publication.

    Vite · HTML

  • Emir Özeren

    Hors ligne

    Un site académique personnel pour un maître de conférences, avec un CV, des publications et des notes. Il est désormais hors ligne.

    Astro

Produits et expérimentations

  • Anı Defteri

    Créé pour un vrai mariage

    Une application web de livre d'or pour les mariages. Les invités scannent un QR code et laissent un petit mot et jusqu'à trois photos. Les mariés choisissent ce qui va sur le mur partagé et dans un livre PDF qu'ils peuvent télécharger.

    Next.js · Supabase · React PDF

  • Charisma AI

    Arrêté

    Un SaaS complet que j'ai fait tourner en ligne pendant un temps, comme projet perso : un selfie et un questionnaire en entrée, un profil de charisme noté par Gemini en sortie, avec un plan de coaching, des check-ins quotidiens, un coach IA avec qui discuter, des abonnements Stripe et des e-mails de rappel. Je l'ai arrêté volontairement ; ses patterns de facturation et de scoring sont passés dans des produits ultérieurs.

    Next.js · Supabase · Gemini · Stripe · Resend

  • Automatisation YouTube

    Mis de côté

    Un prompt en entrée, une vidéo publiée en sortie : script, images de scènes, voix off avec horodatage par mot, vidéo, rendu Remotion, SEO, miniature et mise en ligne. Chaque étape écrit son résultat sur le disque, donc un run qui échoue reprend à l'étape qui a échoué. Ça fonctionnait ; je l'ai mis de côté parce qu'il détournait mon attention des vrais produits.

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

  • Tatil Radar

    Terminé

    Calcule, par zone, ce que coûte vraiment une nuit sur la côte d'İzmir (hôtel, dîner, plage et sorties), et compare un même hôtel sur 13 canaux de vente. Chaque lien d'hôtel est vérifié, et tout ce qui ne l'est pas est signalé comme tel.

    Next.js · TypeScript

  • Hands-Free Chords

    Prototype fonctionnel

    La webcam suit les deux mains. Chaque main a son menu radial, la fondamentale à gauche et le type d'accord à droite, et un pincement joue l'accord dans un DAW via un port MIDI virtuel. Une version web est en cours.

    Python · MediaPipe · OpenCV · mido

  • MOKOKO

    Terminé

    Un jeu de mots turc en trois manches dans le navigateur, avec la logique de jeu et les règles sur les mots couvertes par des tests unitaires.

    React 19 · Vite · Vitest

  • Pipeline de contenu LinkedIn

    En service

    Un fichier de marque, une liste de recherches et une file de contenus. Claude rédige deux versions, j'en valide une, et elle est publiée via l'API officielle de LinkedIn. Rien ne part sans ma validation.

    Claude · LinkedIn API · Markdown

  • HorrorGuess

    Terminé, pas en ligne

    Un jeu de devinettes d'horreur en turc, fait avec un ami en deux jours. Le modèle écrit une histoire de fantômes selon des règles « doit », « peut » et « ne doit pas », avec une sortie imposée par un schéma, et le joueur devine laquelle des vingt créatures elle décrit.

    React · Vite · TypeScript · OpenAI

  • Chordinia

    En pause

    Un assistant d'accords et de paroles avec un vrai cœur de théorie musicale en Dart pur (parsing d'accords, détection de tonalité, transposition en un tap, analyse de hauteur en direct), plus la reconnaissance de chansons et les paroles. En pause le temps que Pistochia sorte.

    Flutter · Supabase · ACRCloud · Genius API

  • Kuluçka Vampir Köylü

    Arrêté

    Une application pour des soirées Loup-Garou dans un café : les joueurs rejoignent la partie avec un QR code et reçoivent des cartes de rôle à révéler d'un tap, les actions de nuit se résolvent sur l'écran du meneur de jeu, et les votes en direct se synchronisent sur chaque téléphone. Qui voit quoi est imposé par la row-level security, pas par l'application. Les soirées du café se passaient bien avec des cartes en papier, donc l'application a été arrêtée.

    Next.js · Supabase Realtime · Row-level security

  • aifindsit

    Workflow terminé

    Un bot de DM Instagram construit comme un workflow n8n : un message arrive par un webhook, le produit est recherché, et la réponse contient un lien vers lui.

    n8n · Instagram Graph API

Université et open source

  • FlexFlow

    Projet de fin d'études, arrêté

    Mon projet de fin d'études à la Yaşar University, en équipe de trois : une application de fitness qui met en relation les habitués des salles de sport et des coachs personnels, avec des programmes d'entraînement et de nutrition, les salles proches sur une carte, un coach IA et un suivi des calories. J'ai développé l'application mobile ; un coéquipier a développé le backend NestJS.

    React Native · Expo · Firebase · NestJS · PostgreSQL

  • Smart Bed

    Prototype, présenté

    Un lit d'hôpital réalisé en trois jours (mars 2024) par des équipes mixtes d'étudiants de la Yaşar University et de Penn State Abington. Des capteurs dans le lit et une caméra IA surveillent le patient, et quand il commence à se lever, un boîtier mural alerte le soignant sur son téléphone avant une chute. Présenté à Bordatech et relayé par le site d'actualités de l'université.

    M5Stack · MicroPython · AI camera

  • Billetterie aérienne avec un assistant IA

    Projet de cours, réalisé en binôme

    Une API de billetterie (vols, achat, enregistrement, auth JWT) derrière une passerelle Express avec des rate limits par IP, plus un assistant qui répond en langage naturel en appelant les mêmes endpoints publics que n'importe quel autre client. Les dépôts sont sur le GitHub de mon binôme.

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

  • Microservices de réservation d'hôtel

    Projet de cours, réalisé en binôme

    Sept services derrière une seule passerelle (admin, recherche, réservation, commentaires, notifications et un agent conversationnel), chacun avec le stockage qui lui convient : Postgres pour les réservations, MongoDB pour les avis, Redis pour le cache et une file de messages pour les e-mails.

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

  • MiroFish, un fork avec des ajouts

    Contribution

    Des ajouts à MiroFish, un moteur de prédiction multi-agents open source : un backend de mémoire interchangeable (Zep Cloud, ou Graphiti avec Neo4j sur votre propre serveur), un suivi des coûts en dollars en temps réel qui arrête un run à une limite fixée, un watchdog pour ses processus et un bouton d'arrêt d'urgence. Le moteur lui-même vient du projet upstream ; seuls ces ajouts sont de moi.

    Python · FastAPI · Graphiti · Neo4j · Vue

Compétences, selon l'usage que j'en fais

Pas d'étoiles, seulement la fréquence à laquelle chacune sert dans de vrais projets, et l'endroit où vous pouvez la voir.

CompétenceFréquenceOù la voir
JavaScript, TypeScript et Node.jsTous les joursL'essentiel de ce site tourne dessus. Malton London Press
Next.js, React et SupabaseTous les joursResearchGo, Ürünereklam, Malton London Press, plusieurs sites clients et mes deux propres sites. ResearchGo
SQL, conception d'API, CI/CD et GitTous les joursUtilisés dans chaque projet. Les migrations, les vérifications de base de données et les pipelines de déploiement reviennent dans les articles. Malton London Press
Python : pipelines de données, scraping et machine learningEn productionLe moteur de prospection de FitEscala, le worker de parsing de ResearchGo et mon mémoire de master (modèles classiques, d'ensemble et transformers, plus des métriques d'explicabilité). Mémoire de master : détection explicable du phishing écrit par IA
React Native et ExpoEn productionFlexFlow, mon projet de fin d'études sur Firebase, et Pistochia, offline-first sur SQLite avec des Edge Functions Supabase. Pistochia
WebGL et Three.js (React Three Fiber)En productionLa lettre en 3D sur akinaydin.com, avec un contexte WebGL qui se reconstruit tout seul quand le GPU le perd. akinaydin.com
Meta Marketing API et campagnes publicitairesEn productionUne campagne pour une conférence, passée de dépenses à l'aveugle à un coût par lead mesuré. L'histoire est dans les notes plus bas.
Playwright et automatisation du navigateurEn productionLe pipeline de contenu LinkedIn.
AccessibilitéEn productionLe site web d'un projet cofinancé par l'UE pour les personnes qui utilisent la langue des signes, réalisé pour une association d'éducation spécialisée en 2024 et 2025.
C, C++, C#, Java, Flutter et IoTOccasionnelUn vrai usage, mais pas quotidien : le Smart Bed tournait en MicroPython sur un M5Stack, Chordinia est en Flutter et le système de billetterie aérienne en .NET.

Notes techniques

Ce qui a mal tourné dans de vrais projets, et ce que j'ai changé.

2026.06

La campagne publicitaire qui ne voyait pas son objectif

Une conférence avait besoin d'inscriptions, donc le compte publicitaire a lancé une campagne de conversion. Mais aucun événement d'inscription n'était relié au pixel. Meta optimise en fonction de ce qu'il peut voir, et il ne voyait rien, donc une audience similaire a dépensé l'essentiel du budget dans trois pays qui ont produit des milliers de clics et aucune inscription.

Une audience plus maligne n'aurait rien réglé. Passer aux formulaires de leads natifs de Meta a donné à l'algorithme un vrai événement à viser, et le même compte a commencé à amener des universitaires qualifiés à un coût par lead bien inférieur au tarif habituel du B2B dans l'UE. Les chiffres mesurés sont dans le rapport final ; je les laisse volontairement en dehors de cette page.

Depuis, avant d'ajuster une campagne, je vérifie qu'elle peut vraiment voir le résultat que je veux.

2026.07

Les reflets qui faisaient planter le GPU

akinaydin.com a une lettre 3D réfléchissante qui capte la lumière de son environnement. La première version refaisait le rendu de l'environnement et le passait par la génération PMREM à chaque frame, pour que les reflets soient toujours à jour. Sur un portable rapide, ça s'affichait bien. Sur du matériel ordinaire, l'onglet perdait son contexte WebGL en plein défilement, et la lettre s'éteignait.

Désormais, l'environnement est rendu une seule fois, au chargement de la page. Les contextes se perdent quand même sur de vrais appareils, donc la page reconstruit automatiquement le canvas quand ça arrive, au lieu de laisser un cadre mort à l'écran.

2026.07

Pourquoi le réseau de neurones s'entraîne lentement exprès

Le réseau de neurones de cette page pourrait s'entraîner beaucoup plus vite dans un web worker sans bridage. Ce n'est pas le cas, et c'est voulu : quelqu'un qui fait défiler la page ne devrait jamais voir une image sautée parce qu'un réseau s'entraîne en arrière-plan.

La boucle d'entraînement ne fait donc quelques pas de gradient que lorsque le navigateur a du temps libre, dans des callbacks d'inactivité et de petites tranches de frame, et aucun quand il est occupé. La courbe de perte met plus de temps à descendre, et la page reste fluide.