Ousama Boujaouane

Développeur iOS senior & Chef de Projet Technique

Moves to Paris, Ermont, Paris

  • 48.8546
  • 2.34771
  • Indicative rate €556 / day
  • Experience 7+ years
  • Response rate 100%
  • Response time 12h
Propose a project The project will only begin when you accept Ousama's quote.

Availability not confirmed

Propose a project The project will only begin when you accept Ousama's quote.

Location and geographical scope

Location
Paris, France
Can work in your office at
  • Paris and 50km around
  • Ermont and 20km around
  • Paris

Preferences

Business sector
  • Aviation & Aerospace
  • Digital Agency and IT company
  • Architecture & Urban Planning
  • Civic & Social Organization
  • Automobile
+34 autres

Verifications

Influence

Languages

  • Anglais

    Full professional proficiency

  • Français

    Native or bilingual

  • Arabe

    Basic

Skills (26)

Ousama in a few words

Passionné de nouvelles technologies, mon expérience professionnelle a débuté quelques années avant la fin de mes études. Avec 3 autres collègues nous avons créé une entreprise autour d'une application mobile développée from scratch pour une solution de guide interactif sur iOS et Android pour le château de la Roche-Guyon. J’ai ensuite été co-fondateur de la société́ Red1 Innovation qui a rejoint la première promotion du WelcomeCityLab (incubateur destiné à favoriser l’innovation dans le secteur touristique) et qui a réalisé́ une levée de fonds de 250 000 €. Responsable de tous les projets techniques, ces expériences m’ont permis d’enrichir considérablement mes performances en développement d’applications mobiles et sites internet. Suite à cela j’ai rejoint Devoteam Digital Factory où mes compétences en développement Swift, architecture Android et iOS on pu grandement augmenter. J’ai ainsi pu acquérir une double compétence iOS(principale) / Android(secondaire).

Portfolio

Experience

OpenClassrooms - Openclassrooms

Education & E-learning

Formation iOS

Paris, France

June 2020 - August 2020

Souhaitant consolider mes connaissances grâce notamment à un mentor dans le domaine du développement iOS car autodidacte jusqu’à présent je me suis inscrit au parcours de développeur iOS sur OpenClassrooms.

J’avais également pour intention d’apprendre de nouvelles choses plus en détail comme par exemple les tests unitaires, tests d’intégration, tests d’acceptation, TDD (Test Driven Development), les architectures type MVVM, la résolution des fuites mémoire, etc.

Ce afin d’évoluer sereinement vers un poste de tech lead ou d’auditeur de code.
J’ai pu lors de cette formation apprendre à :
- Définir une stratégie d’apprentissage
- Aller plus loin dans l’utilisation de Git et GitHub
- Comprendre un peu mieux le monde du Web
- Créer un jeu type RPG en projet MacOS en ligne de commandes
- Gérer de manière optimisées les traits autolayout pour les applications en mode portrait / landscape et iPad
- Créer une application de montage photo
- Améliorer une application existante
- Utiliser Adobe XD
- Insérer les tests et évaluer la couverture
- Comprendre Test Driven Development (TDD)
- Ajouter des fonctionnalités en TDD avec Behavior Driven Development
- La méthodologie Red Green Refactor
- Analyser les besoins d’un client (UML, Domain-Driven Design, rédaction d’une documentation technique)
- Modéliser et implémenter une base de données relationnelle avec UML
- Réaliser des appels réseau avec Postman et URLSession sur une API Rest
- Créer un jeu de données de test pour les appels réseau
- Mieux gérer la persistance des données dans une application
- Mettre en place un système de veille informationnelle
- Mieux rédiger un rapport
- Se préparer aux tests techniques
- Mieux gérer une architecture MVC et MVVM
- À résoudre plus rapidement les fuites mémoire

SNCF RESEAU - SNCF

Transportation

Lead Dev Android / iOS

Saint-Denis, France

July 2019 - May 2020

Avec le SDK Jawg il est possible d’intégrer rapidement et simplement une carte dans votre application mobile ou votre site. Grâce aux APIs et aux widgets mis à disposition. Il est ainsi possible de proposer aux utilisateurs une carte intelligente avec des POI (Point d’intérêt, des tracés entre deux points, etc.)


J'ai rejoins l'équipe en tant que consultant afin, dans un premier temps, d'effectuer un audit de ce qui avait déjà été développé puis j'ai repris le développement sur l’application iOS.
J’ai pu lors de cette mission :
- Étudier l’existant et faire des recommandations
- Mettre en place plusieurs lanes sur fastlane permettant notamment d’upload une IPA automatiquement sur TestFlight, de générer une documentation, de lancer une vérification swiftlint avec export des erreurs dans un fichier html, etc.)
- Réaliser et organiser divers documentations telles qu’entre autre la documentation du SDK Android, la documentation de l’api routing et du démonstrateur web, un processus GitFlow à suivre pour Android et iOS, un schéma architectural de différents dépôts git, une convention de nommage bien définie.
- Réaliser un écran de configuration
- Une vue visualisant les trois prochains horaires
- Un rayon autour d’une gare
- Réaliser via Sketch la nouvelle icône de l’application pour Android et iOS et l’intégrer dans l’app
- Fixer divers bugs
- Configurer SwiftLint et corriger des erreurs remontées par le diagnostique
- Assister à des grroomings, sprint review, daily, sprint planning, etc.
- Gérer des userstories et les sous tâches sur Taiga

Europcar International SASU - Europcar

Automobile

Auditeur iOS

Levallois-Perret, France

June 2019 - July 2019

Réalisation d’un audit de code pour l’application d’Europcar permettant de réserver un véhicule.
Tâches principales lors de cet audit :
- Analyse du code, de l’architecture choisie, de la structure du projet
- Analyse des libraries tierces utilisées
- Analyse du niveau de sécurité
- Analyse de l’intégration continue (JENKINS)
- Analyse de l’environnement de travail (GITLab, merge requests etc.)
- Analyse des bonnes pratiques (non) utilisées
- Analyse des chiffres clés (couverture du code, complexité cyclomatique, etc.) - Proposition de pistes d’amélioration sur d’autres sujets

Groupe Adecco

Medical field

Développeur iOS

Paris, France

December 2016 - March 2017

L'objectif de ce projet était de développer une application mobile, sur les plateformes Android et iOS pour la marque Adecco Médical. Elle a comme cibles les candidats et intérimaires. L’application offrira des fonctionnalités similaires à l’espace personnel du site actuel www.adeccomedical.com. A savoir :
- Se connecter à son compte
- Voir les informations de base de son profil
- Gérer ses disponibilités (consultation et mise à jour)
- Voir la liste de ses missions et le détail de chacune
En plus, sur l’application mobile, l’utilisateur recevra des missions via push notifications et pourra y répondre directement en l’acceptant ou la refusant.
Dans le cadre de ma mission j'ai pu répondre à certaines parties de l’appel d’offres (estimation en jour homme de chaque fonctionnalité, proposition financière, réalisation des slides techniques du powerpoint de présentation), participer à la soutenance afin de présenter le prototype réalisé sur proto.io et enfin j’ai pu participer au développement de l’ensemble des fonctionnalités de l’application sur iOS et également au développement d’une partie des fonctionnalités de l’application Android :
la création du projet et mise en place des build variants (Prod, Preprod, Dev)
l’ajout d’un événement au calendrier natif, l’ajout d’une map avec userlocation
les mocks des Web Services,
les différentes vues de l’application,
la mise en place de la stack WS (récupération / connexion / mapping sur les vues),
la gestion des tailles d’écrans (contraintes et stackview),
la gestion de l'accès aux réseaux
le modèle BaseNetwork, NetworkServices, DataManager

Groupe Adecco

Human Resources

Développeur iOS

Paris, France

March 2017 - June 2017

Adecco & moi est la nouvelle application du groupe Adecco permettant aux intérimaires :
de retrouver leurs informations personnelles
de signer leurs contrats en ligne
d’obtenir des informations utiles sur leurs missions en cours et à venir
de déclarer une absence ou un retard
de recevoir une attestation ou un certificat
d’accéder à leurs bulletins de salaire et de demander un acompte
Je suis intervenu sur ce projet sur la partie recueil du besoin, sur l’estimation financière mais également et surtout sur Ie développement de l’application sur iOS en Swift 3 from scratch jusqu’à la mise en production de la v1.0 sur le store.

Travelex

Banking & Insurance

Développeur Android

Paris, France

June 2017 - September 2017

L'objectif de ce projet est de développer l’application Travelex Ditto sur Android. Elle a comme cible les clients de Travelex afin qu’ils puissent avoir des taux de change préférentiels sur leurs devises. L’application possédant plus d’une cinquantaine d’écrans. L’utilisateur peut via l’application : créer un compte, ajouter un bénéficiaire, gérer ses cartes bancaires, effectuer des échanges de monnaies, gérer ses monnaies, faire un transfert de monnaie, échanger avec un agent, etc.
Je suis intervenu sur ce projet en tant que développeur Android. J’ai notamment intégré la librairie Zendesk, créé le xml d’une vingtaine d’écrans, créé un chartPie pour la partie gestion des cartes bancaires, etc. Je suis également intervenu sur la revue du code iOS développé par une entreprise suédoise.

DEVOTEAM

Software Publisher

Développeur iOS

Paris, France

October 2017 - January 2018

My Devoteam Experience est la nouvelle application du groupe Devoteam. Cette application a pour objectif de digitaliser la vie des collaborateurs chez Devoteam en leur proposant un ensemble de solutions innovantes et nomades.
Je suis intervenu sur ce projet from scratch en tant que développeur iOS (Swift 3). Ce projet ayant une architecture Model-View-Presenter j’ai notamment pu travailler sur les différentes fonctionnalités que voici :
Implémentation du Google Sign In avec restriction aux employés Devoteam
Implémentation d’une side bar menu avec l’utilisation de la librairie SWRevealViewController
Implémentation de la vue des semaines du compte rendu d’activité
Implémentation de la vue de détail d’une semaine du compte rendu d’activité
Fonctionnalité permettant d’ajouter une ou plusieurs tâches à un jour
Implémentation des webservices sur les différents écrans avec mise en place de modèles, DTO (Data Transfer Object), de mappers, d'un baseNetworkProvider, d'un networkProvider, d'un DataManager (Singleton), d'un MemoryCacheProvider et utilisation de RXSwift (Observables, Disposables, onNext, onError, zip, map, flatMap, etc.)
Implémentation de l’écran du questionnaire de satisfaction
Implémentation du système de localisation de la langue (Anglais & Français) permettant également de localiser des composants (UIButton, UILabel, UITextView, etc.) directement sur un storyboard
Création d'un fichier Google Sheet permettant de générer un fichier Localizable.strings via un Google Script dans chaque langue (Anglais & Français)
Relecture de Pull Requests sur Github
Création des release notes pour le client et mise à disposition via Fabric Beta
Mise en place de la configuration Fastlane pour déploiement automatisé 
Développement d'une bottom Sheet view via un xib qui peut être glissé de haut en bas et facilement ajoutable sur un Controller via storyboard
Mise en place d'un effet parallaxe sur la page d’accueil
Extractions des différentes assets et reprise de quelques icônes via Sketch

BNP Paribas Cardif - BNP

Banking & Insurance

Développeur iOS

Paris, France

September 2017 - January 2018

Réalisation de l'application Key-nnected pour la filiale du groupe BNP Paribas nommée Cardif. Celle-ci permet de mettre en relation les collaborateurs de l’entreprise de manière ludique en leur faisant gagner des badges engrangés grâce à des points. Il est également possible dans l’application d’inviter un collaborateur à prendre un café et d’échanger via un chat ou un group chat.
Je suis intervenu sur ce projet from scratch en tant que développeur iOS (Swift 4). Ce projet ayant une architecture Model-View-Presenter j’ai notamment pu travailler sur les différentes fonctionnalités que voici :
Création de la vue permettant d’inviter un collaborateur à prendre un café avec sélection du jour via un calendrier affiché par semaine
Création d’un header utilisant IBDesignable et IBInspectable car réutilisé sur plusieurs écrans avec un système de ranking ainsi qu’une barre de progression animée
Création de la page listant l’ensemble des challenges et détaillant le nombre de points associés
Implémentation de la vue listant l’historique des points et badges gagnés
Développement de plusieurs extensions pour divers objets (String, UILabel, UITextView, UserDefaults, UIViewController, etc.)
Implémentation des webservices sur les différents écrans avec mise en place de modèles, DTO (Data Transfer Object), de mappers, d'un baseNetworkProvider, d'un networkProvider, d'un DataManager (Singleton), d'un MemoryCacheProvider et utilisation de RXSwift (Observables, Disposables, onNext, onError, zip, map, flatMap, etc.)
Implémentation du système de localisation de la langue (Anglais & Français) permettant également de localiser des composants (UIButton, UILabel, UITextView, etc.) directement sur un storyboard
Création d'un fichier Google Sheet permettant de générer un fichier Localizable.strings via un Google Script dans chaque langue (Anglais & Français)
Relecture de Pull Requests sur Github
Extractions des différentes assets, reprise de quelques icônes et créations de nouveaux écrans sur Sketch
Ce projet était piloté par un Scrum Master et nous faisions avec l’équipe backend des sprint de deux semaines, des stand up chaque matin de 15 minutes, des sprint backlog et en fin de sprint des sprint review pour voir les points à adapter / améliorer.

Ditto Bank

Banking & Insurance

Développeur iOS

Paris, France

January 2018 - April 2018

L'équipe de développeurs à repris le développement de la version iOS de l’application DITTO BANK (nouvelle banque en ligne mobile first). Lancée d’abord en France, Ditto Bank s’est fixé pour objectif 50 000 à 80 000 clients d’ici fin 2018. Par la suite, Ditto Bank se déploiera également dans 20 pays au rythme d’un pays par mois.
Je suis intervenu sur ce projet from scratch en tant que développeur iOS (Swift 4). Ce projet ayant une architecture Model-View-Controller j’ai notamment pu travailler sur les différentes fonctionnalités que voici :
Reprise du code et étude de l’architecture technique
Coordination avec les développeurs étranger (russe, suédois, hongrois)
Recherche d’axe d’amélioration et implémentation
Formation et support aux développeurs junior
Développement de UserStories
Correction d’anomalies
Branchement de divers Web Services
Test fonctionnel
Revue de code
Publication sur l’AppStore
Participation à l’automatisation (via scripting python) d’ajout des nouvelles clés des storyboards via Bartycrouch

Ce projet était piloté par un Scrum Master et nous faisions avec l’équipe backend des sprint de deux semaines, des stand up chaque matin de 15 minutes, des sprint backlog et en fin de sprint des sprint retrospective.

Figaro classifieds - Le Figaro

Press & Media

Lead developer iOS & Audit app Viadeo iOS

Paris, France

April 2018 - Today

Viadeo se devait de faire une refonte complète de leurs applications (Android, iOS & Web).
J'ai rejoins l'équipe en tant que consultant afin, dans un premier temps, d'effectuer un audit de ce qui avait déjà été développé puis j'ai pris le lead sur l'équipe iOS composée de 3 développeurs.
J’ai tout d’abord pu remettre au CTO de Figaro Classifieds un audit de l'application iOS (langage Swift) avec diverses informations et recommandations sur notamment le versionning, la revue de code, la configuration du projet, la structure du projet, le style Guide (Ray Wenderlich), l’interface utilisateur, les chaînes de caractères, les parties importantes du code à refacto, les fuites mémoire, l’application en quelques chiffres (graph de dépendances, nombre de lignes de code, etc.) et un état des lieux sur le niveau de sécurité de l’application.

Lors de l'audit j’ai utilisé les outils suivants :
- Tailor (assure un style cohérent (Lint) et aide à éviter les bugs)
- Slather (génère des rapports de couverture de test)
- Lizard (mesure la complexité cyclomatique)
- SonarQube (mesure la qualité du code source en continu)
- Sonar-Swift (Plugin SonarQube permettant de détecter les bugs, les vulnérabilités et les bouts de code à retravailler)

Suite à l’audit, j’ai en tant que lead développeur iOS managé une équipe de 3 développeurs et j’ai pu (liste non exhaustive) :
- Mettre en place la partie hors connexion sur le Newsfeed avec du cache en utilisant Core Data
- Ajouter un gestionnaire de connexion
- Implémenter une partie du style guide Ray Wenderlich
- Ajouter une popin de notation de l'application sur le store
- Ajouter une popin de mise à jour de l'application en cas de nouvelle version
- Ajouter une animation sur le splashscreen
- Mettre en place le partage depuis une autre application (share extension target)
- Participer à l'amélioration du pipeline composé de Fastlane et de Circle CI
- Soumettre l'application sur le store, TestFlight et Fabric
- Améliorer le script de génération d'un nouveau module VIPER avec Generamba (générateur de code)
- Nettoyer certaines fuites mémoire et ajouter des tests UI
Passer le projet de Swift 3 à Swift 4
Monter la version minimum de l'application à une version 11.0 (vs 10.0 avant) pour profiter de certaines fonctionnalité de Xcode telles que les Color Set dans les xcassets, etc.
Implémenter un Playground dans le workspace pour faciliter certaines intégrations UI et animations Lottie

Education

charter modal image

Success is a team effort

Contribute to this success and the community's professionalism by signing the Freelancer Code of conduct

Sign the code