Curriculum vitae

Version web de mon CV, identique au PDF. Les noms des employeurs, clients et produits sont anonymisés ; la version nominative est transmise sur demande.

Télécharger le CV (PDF)Retour à l’accueil

Hedi Riahi

Développeur iOS senior · Swift · UIKit · SwiftUI · Objective-C

Profil

Développeur iOS senior : 14 ans de développement natif et plus de 10 applications iOS à mon actif depuis 2012, grand public comme métier. Je conçois, développe et fais évoluer des applications en Swift, Objective-C, UIKit et SwiftUI, sur des architectures MVVM, de l’analyse et du chiffrage jusqu’à la publication et au suivi en production. Habitué aux applications qui vivent plusieurs années et au travail avec le produit, Android et le backend. Développement avec agents IA (Claude Code, Codex) ; IBM AI Engineering Professional Certificate (2026). Télétravail ou hybride en France et en Allemagne ; environnement de travail en français ou en anglais.

Réalisations clés

  • Swift 6 et iOS 26 : migration d’une app de contrôle d’accès publiée sur l’App Store, avec analyse d’impact, livrée sans régression.
  • Legacy critique : app métier Objective-C très instable diagnostiquée puis stabilisée ; crashs fortement réduits, outil remis en production.
  • Architecture : navigation centralisée et refonte SwiftUI pour les apps d’un groupe de télésurveillance, avec tests XCTest.
  • Durée : 5 ans et demi d’évolution continue d’une app de paiement grand public, sur une base mixte Objective-C / Swift.

Compétences techniques

Langages
Swift (Swift 6), Objective-C, Interopérabilité Swift / Objective-C
Interface
UIKit, SwiftUI, Auto Layout, Interface Builder, Storyboards
Architecture
MVVM, Navigation centralisée, Swift Concurrency (async/await), RxSwift, Combine
Données et réseau
REST, JSON, Alamofire, Core Data, Realm
Frameworks et intégrations
WidgetKit, Notifications push (APNs), Face ID / Touch ID, Audio / vidéo, VoIP / SIP (PJSIP), MQTT
IA
Claude Code, Codex, MCP, Foundation Models (Apple), LLM, RAG, LangChain, Agents IA
Qualité et livraison
XCTest, Firebase Crashlytics, Git, GitLab, TeamCity, Jenkins, Fastlane, Bitrise, Tuist, SPM, CocoaPods, Signature et provisioning, TestFlight, App Store, distribution entreprise
Méthodes
Analyse technique et chiffrage, Scrum, Kanban, Jira, Confluence, Postman
Secteurs
Paiement mobile, télésurveillance, bâtiment connecté, apps métier, santé, édition, photo

Expérience professionnelle

Senior iOS Engineer

– aujourd’hui · 2 ans 2 mois

Société de services franco-allemande (mobile, cloud, IoT) · Allemagne, région frontalière

Sur les deux projets clients : analyse et chiffrage, tests et validation, coordination client, Android, backend et produit.

Projet : App de contrôle d’accès aux bâtiments — Application publiée sur l’App Store pour un fabricant d’interphones : configuration des sites, gestion des portes, ouverture à distance, appels vidéo avec l’interphone, notifications. Enjeu : Faire évoluer une application en production, reliée à des interphones et à un backend, pendant sa migration vers Swift 6 et iOS 26.

  • Migré l’application vers Swift 6 et iOS 26 : analyse d’impact, adaptation des composants, validation de la compatibilité.
  • Fait évoluer les modules principaux en UIKit (sites, portes, ouverture à distance, appels vidéo, conciergerie, galerie d’images) ; ajouté un widget d’ouverture de porte sur l’écran d’accueil (WidgetKit) et les notifications push.
  • Intégré la communication avec l’interphone : appels audio et vidéo en SIP (bibliothèque PJSIP), événements temps réel reçus par MQTT.
  • Livré l’application et le SDK iOS, sur l’App Store et en distribution entreprise.

Résultat : Migration livrée sans régression ; vidéo plus fiable pendant les appels ; comportement cohérent entre iOS, Android et backend.

Environnement technique : Swift 6, UIKit, WidgetKit, APNs, REST / JSON, SIP (PJSIP), MQTT

Projet : Reprise d’une app métier instable — Application interne des équipes commerciales d’un client, utilisée pour les tournées et la génération des contrats. Enjeu : Une base Objective-C ancienne et très instable (crashs fréquents, dette technique importante), avec des bugs qui bloquaient le travail des commerciaux.

  • Établi un diagnostic : audit du code (gestion mémoire, threading, parsing JSON, erreurs réseau) et suivi des crashs avec Firebase Crashlytics.
  • Corrigé les bugs critiques qui bloquaient les tournées commerciales et la génération des contrats.
  • Refondu de façon ciblée les modules instables (synchronisation, gestion des erreurs), allégé le main thread et fiabilisé le parsing JSON.
  • Pris en charge le pipeline de build (TeamCity) et la livraison en distribution entreprise.

Résultat : Crashs fortement réduits ; l’outil, critique pour les équipes commerciales, est de nouveau utilisé en production.

Environnement technique : Objective-C, Swift, UIKit, Core Data, REST / JSON, Firebase Crashlytics, TeamCity, GitLab

Ingénieur études et développement iOS

– · 1 an 4 mois

Groupe français de télésurveillance (plusieurs centaines de milliers d’abonnés) · Strasbourg

Équipe : 3 iOS, 3 Android, 2 proxy product owners · Kanban

Projet : Quatre apps de télésurveillance — Applications iOS des différentes marques d’un même groupe : pilotage de l’alarme à distance, alertes en temps réel, vidéos, test des équipements.

  • Conçu un module de navigation centralisé pour découpler les écrans les uns des autres.
  • Reconstruit en SwiftUI la consultation des vidéos déclenchées par une alarme ; développé le pilotage à distance de l’orientation des caméras.
  • Refondu le paramétrage de l’authentification biométrique (Face ID / Touch ID) et intégré un module de gestion des environnements (développement, recette, production).
  • Écrit les tests unitaires (XCTest) des modules refondus.

Environnement technique : Swift, Objective-C, SwiftUI, async/await, MVVM, Realm, REST, Tuist, Fastlane, Jenkins

Ingénieur études et développement iOS

– · 5 ans 7 mois

Fintech de paiement mobile grand public (plusieurs millions de téléchargements) · Strasbourg

Équipe : 2 iOS, 2 Android, 2 backend, 1 Scrum Master, 1 product owner · Scrum

Projet : Application de paiement mobile — Application grand public : paiement en magasin et par QR code ou code-barres, envoi d’argent entre amis, cagnottes et dons aux associations, cartes de fidélité.

  • Fait évoluer la base de code mixte Objective-C / Swift pendant 5 ans et demi, en MVVM avec RxSwift.
  • Refondu les parcours d’envoi d’argent entre amis et de dons aux associations.
  • Développé les fonctionnalités de cagnotte, de défis et de notation de l’application.

Environnement technique : Swift, Objective-C, RxSwift, MVVM, UIKit, Storyboards, Alamofire, REST / JSON, Jenkins

Développeur iOS

– · 2 ans 6 mois

Agence de développement mobile · Monastir, Tunisie

Quatre applications iPhone et iPad pour l’édition et la santé, et un module de diffusion vidéo en direct (RTMP) pour l’application d’une caméra connectée grand public.

Environnement technique : Objective-C, UIKit, Core Data, REST, LFLiveKit

Développeur iOS

– · 1 an 2 mois

Éditeur de logiciels · Tunis, Tunisie

Application de communication en VoIP (appels audio et vidéo, messagerie) et applications d’authentification vocale.

Environnement technique : Objective-C, liblinphone, AudioToolbox

Développeur iOS

– · 1 an 3 mois

Société de services informatiques · Monastir, Tunisie

Premier poste iOS : application de géolocalisation et de suivi d’amis en temps réel sur carte.

Environnement technique : Objective-C, SOAP

Formation

Langues

  • Français : courant
  • Anglais : professionnel
  • Arabe : langue maternelle
  • Permis B