Aive
L'équipe Tech
L’ambition de Aive est de proposer une plateforme dédiée à l’IA et la vidéo. Si notre produit est aujourd’hui focalisé sur la post-production, il couvrira à terme, tous les domaines ayant attrait à la vidéo (édition, diffusion, etc.). L’ADN du produit est profondément tech.
L’objectif de l’équipe technique est d’accumuler le minimum de dette possible, car les évolutions de la plateforme vont s’inscrire sur la durée. La vertu cardinale qui arbitre nos choix de méthode, d’implémentation ou de technologie, est la simplicité. Nous sommes convaincus qu’un système simple et modulaire est plus maintenable et évolutif qu’une idée brillante et complexe.
Un des effets de bords bénéfique de cette approche est que chaque contributeur peut participer à la hauteur de ses compétences. Les sujets d’architecture et d’organisation sont classiquement opérés par les seniors. Les modules eux-mêmes, souvent plus simples, peuvent être pris en main par des juniors.
Répartition des collaborateurs
Back
35%
Front
30%
Data
15%
Product & Design
15%
SRE
5%
1 mise en prod/semaine
opérable par tous, du junior au lead
Technologies et outils
Typescript (NodeJS)GraphQL server
100%PostgreSQLgeneral-purpose databse
100%GraphQLAPI facade
100%GoAPIs & services
100%TypeScript
100%React JS
100%JavaScript
100%D3.js
100%Kubernetes
100%Docker
100%AWS
100%Amazon EKS
100%
Backend
Frontend
Devops
⚙️ http/json
La communication entre les services backend se fait en majorité par http/json. A l’heure du protobuf/grpc, nous avons décidé de rester sobres et simples, en utilisant une technologie plus facile à maintenir et à debug. Nos problématiques de performance ne sont pas liées à la charge réseau mais au travail individuel des machines (tâches data).
⚙️ monorepo
Les équipes techniques travaillent dans un repo git unique, ce qui donne une garantie de la compatibilité (statique) entre les différents services à mesure de l’avancement du projet. L’interopérabilité entre les langages est garantie par un transpiler, qui assure l’adéquation entre les types déclarés go, python et ts, s’ils sont échangés sous la forme d’objets json.
Organisation et méthodologies
Les sujets sont traités sur des feature-chan, sur slack. Ces chan sont les équivalents chat d’épics, et permettent des échanges en temps réel plus efficaces que les commentaires sur un board.
Différentes réunions (weekly d’équipe, grooming, point roadmap…) sont organisées de manière hebdomadaire.
Les contributeurs disposent d’une grande autonomie. Le pair programming est encouragé, la review n’est pas systématique (sur les tâches simples). Chaque développeur est responsable de la qualité de son travail.
Le lead a davantage un rôle de référent que de contremaître.
Projets et défis techniques
Voici un exemple de projet chez AIVE, qui touche toute la stack (front - back - data): Les suggestions.
A partir d’une vidéo analysée, c'est-à-dire sur laquelle nous avons identifié les personnes, objets, logos, cadrage.., le moteur de suggestion propose différents montages. Il suffit de faire sa demande dans un prompt.
En interne, le moteur de suggestion va comparer la demande (le prompt) et générer aléatoirement, avec un algorithme génétique, des montages dont il va évaluer la pertinence, jusqu’à élire un candidat le mieux noté possible. Les critères d’évaluation du montage et les éléments de la vidéo qui constituent celui-ci sont paramétrables dans le prompt.
Par exemple, à partir du dernier James Bond, je peux demander un montage de 15s au format carré, constitué de plans rapides, ou l’on voit 007 en course-poursuite. Parfait pour instagram.
Processus de recrutement
Le processus de recrutement est simple:
- un premier échange par mail avec un membre de l’équipe pour entrer en relation
- un entretien technique, en présentiel ou en visio, avec deux ingénieurs, dont un lead au moins, et un membre d’une autre équipe (2h). Il ne s’agit pas d’un exercice de code.
- un échange avec les fondateurs (30m)
- une proposition
Derniers jobs
Aucune offre en ce moment, revenez d'ici quelques jours !