KAIKO — CRÉER UNE BASE SOLIDE POUR ÉVOLUER PLUS RAPIDEMENT

Kaiko, startup dans le secteur de la santé, avait besoin d'un socle technique solide pour construire son data framework basé sur le ML pour la recherche contre le cancer. Nous avons accompagné la première équipe d'ingénieurs de Kaiko et avons créé son environnement de développement, ses workflows et son framework CI/CD. Nous avons également aidé Kaiko à gagner en visibilité dans les communautés open source, facilitant le recrutement d'ingénieurs seniors et la création d'une base solide pour son produit.

Nos missions

  • Conception de Monorepo
  • Automatisation des workflows
  • Engineering leadership
  • Data engineering
  • Infrastructure DevOps

Impact

  • Amélioration de l'expérience des développeurs
  • Accélération du cycle de développement
  • Réduction des coûts de maintenance

24 nouvelles bibliothèques créées
20 nouveaux ingénieurs recrutés

Fondée par la Fondation Hartwig, Kaiko est une startup tech néerlandaise et suisse qui fournit un data framework et un soutien en IA pour les centres de recherche sur le cancer et les hôpitaux. Elle réunit des data scientists, des ingénieurs logiciels et des experts médicaux hautement qualifiés pour faire avancer les solutions de données open-source, les outils de machine-learning et le développement d'algorithmes - le tout visant à améliorer les résultats pour les patients. Par exemple, Kaiko développe des algorithmes qui utilisent l'IA pour détecter des cellules cancéreuses dans des images médicales.

OpenSlide test data CMU-1.tiff, reference
OpenSlide test data CMU-1.tiff, reference

Le problème : Mettre en place une équipe d'ingénieurs

Il est difficile pour une jeune startup d'embaucher des ingénieurs expérimentés car elle n'a ni notoriété ni présence sur le marché. Pourtant, c'est à ce moment-là que l'expérience compte le plus. Les choix techniques initiaux ont des implications à long terme.

Les fondateurs de Kaiko Robert Berke et Thomas Hufener étaient conscients de l'importance d'un leadership technique solide dès les prémices de leur startup. Ils ont choisi Tweag, une entreprise de Modus Create, pour créer une base solide pour Kaiko et aider à attirer des talents d'ingénierie seniors. L'expérience forte de Tweag en matière de Machine Learning et de data engineering avancé dans le secteur de la santé en faisait un partenaire idéal pour le projet.

Les dirigeants de Kaiko connaissaient la réputation de Tweag en matière de qualité logicielle et nous ont spécifiquement demandé de généraliser les meilleures pratiques de développement au sein de leur entreprise. Cela permettait non seulement de créer une base technique solide pour leur produit, mais aussi de semer les graines d'une culture agile et collaborative.

L'équipe s'est fixé deux objectifs majeurs pour le projet :

  • Renforcer la notoriété de Kaiko dans le domaine de l'open source afin d'attirer les meilleurs ingénieurs.
  • Bénéficier de l'expertise de Tweag pour valider les choix techniques initiaux et les processus de développement pour aider Kaiko à passer au niveau supérieur

Attirer les talents dans les communautés Open Source

DICOM (Digital Imaging and Communications in Medicine) est la norme internationale pour les images médicales et les informations associées. Elle définit les formats des images médicales qui peuvent être échangées avec les données et la qualité nécessaires à leur utilisation clinique.

Malheureusement, Apache Sparkl'un des principaux moteurs de traitement de données, ne prenait pas en charge DICOM, rendant le traitement de données difficile pour certains cas médicaux. C'est pourquoi nous avons créé le spark-dicom qui a simplifié le traitement des données dans le domaine de la santé et fait connaître Kaiko dans les communautés open-source. Dans les mois qui ont suivi, Kaiko a reçu plusieurs candidatures de développeurs seniors et de data scientists.

Spark DICOM

Concevoir un Monorepo

Le directeur technique de Kaiko souhaitait utiliser un monorepo pour évangéliser les bonnes pratiques et améliorer la collaboration. Nous avons consolidé des tests qui étaient répartis dans plusieurs repos pour construire un monorepo à partir de zéro.

Comme la plupart des développeurs de Kaiko manquaient d'expérience avec les monorepos, nous avons apporté notre soutien et expliqué les tenants et les aboutissants afin de nous assurer que tout le monde comprenait la décision. Nous avons également aidé sur les points suivants :

  • Choisir des outils de développement tels qu'un gestionnaire de paquets Python qui correspondait aux contraintes de Kaiko
  • Structurer des livrables techniques tels que les bibliothèques et les projets au sein du monorepo
  • Créer des workflows, à la fois pour l'environnement de développement et pour l'environnement d'intégration continue (CI)
  • Mettre en place des contrôles de qualité d'ingénierie (formatage, linting, vérification de type et tests) et créer des alertes automatisées
  • Configurer un système de workflows sur Pants afin de garantir que ce monorepo Python de plus en plus large puisse supporter les montées en charge à l'avenir
Kaiko-03

Améliorer l'expérience des développeurs grâce aux automatisations

Vous pouvez simuler l'agilité, mais vous ne pouvez pas simuler l'automatisation.. L'automatisation est la clé d'une expérience de développeur réussie. Elle aide vos ingénieurs à se concentrer sur des tâches à haute valeur ajoutée au lieu de changer constamment de contexte et d'assister à des réunions qui auraient pu être un email.

Nous avons utilisé Actions GitHubune plateforme d'intégration et de livraison continues (CI/CD), afin d'automatiser le build, test et déploiement de Kaiko. Cela a automatisé de manière considérable les tâches répétitives des développeurs pour augmenter la vélocité de l'équipe, depuis l'utilisation de merge bots jusqu'à l'automatisation des versions.

source: github.com
source: github.com

Nous avons également activé la synchronisation automatique du code à partir de repos non liés, ce qui a permis au monorepo d'être l'unique source de vérité tout en contribuant à d'autres dépôts. Ce point était essentiel car Kaiko collabore fréquemment avec des hôpitaux et des instituts de recherche. Pour cela, nous avons utilisé Copybara et l'avons intégré pour prendre en charge les repos Azure DevOps,en plus de ceux de GitHub.

Enfin, nous avons présenté le mergebotKodiak pour faciliter le workflow des développeurs de Kaiko, et pour automatiser les copies effectuées par Copybara.

Impact : Une base solide pour évoluer facilement

En effectuant les premiers choix techniques et en alignant les équipes, nous avons aidé Kaiko à se concentrer sur ce qu'ils font le mieux : apporter des améliorations aux diagnostics médicaux et au quotidien des médecins. Créer une notoriété dans les communautés open source a aidé Kaikoà faire croître son équipe de zéro à 20 personnes en moins d'un an.

De plus, l'automatisation des flux de travail et la collaboration généralisée ont préparé les ingénieurs de Kaiko au futur. Par exemple, lorsque les contributions à la monorepo sont fusionnées, les changements sont publiés automatiquement afin que les hôpitaux puissent y accéder en temps réel.

Aujourd'hui, Kaiko collabore avec l'Institut néerlandais du cancer (NKI-AVL) pour mettre en place une architecture de données sûre et évolutive, valider le suport de l'IA et permettre la recherche en Machine Learning.

Données clés

Création de nouvelles bibliothèques

Onboarding de nouveaux ingénieurs

Création de nouveaux projets

Vous souhaitez faire évoluer votre application ?

Nos ingénieurs ont aidé des entreprises du Global 2000 comme Audi, Sephora, Uniqlo et Burger King à créer des expériences numériques innovantes.