FullStack Software Engineer (F/H) - Python/JS

Résumé du poste
CDI
Paris
Salaire : 48K à 65K €
Début : 14 septembre 2022
Télétravail fréquent
Expérience : > 1 an
Éducation : Bac +5 / Master
Compétences & expertises
Contenu généré
Intégration de technologies
Appréciation et évaluation
Angular
Huggingface
Opensearch
+8

Explain
Explain

Cette offre vous tente ?

Questions et réponses sur l'offre

Le poste

Descriptif du poste

Mission

Au sein d’une squad polyvalente comprenant ingénieur R&D, dataengineer, ingénieur full stack

  • est responsable de ses sujets de A à Z : de l’idéation à la mise en production, en passant par la conception technique (définition de l’architecture) et l’implémentation,

  • suit et fait évoluer les standards d’implémentation et les bonnes pratiques d’Explain,

  • travaille sur des fonctionnalités utilisant des données textuelles, en appliquant les techniques de pointe en matière de LLMs et de NLP

Il est amené à travailler sur des fonctionnalités variées. Quelques exemples de sujets que nous avons mis en production ces derniers mois:

  • L’implémentation du backend et du frontend d’un système de RAG (Retrieval Augmented Generation) permettant d’interroger des documents pdfs avec un LLM et de permettre la vérifiabilité des réponses,

  • Le découpage, la vectorisation, et l’indexation dans une base de données vectorielle de chunks de pdfs cohérents sémantiquement (respectant les best practices de chunking),

  • Des outils permettant aux utilisateurs d’annoter, d’assigner des tâches et des statuts à des documents et de collaborer efficacement avec leurs collègues.

  • Une fonctionnalité d’autocompletion (type copilot) pour la rédaction d’appel d’offre, à partir d’une API LLM interne .

Impliqué dans les questions produit, l’ingénieur fullstack évalue la faisabilité des projets avec précision. Son recul lui permet de contribuer efficacement aux décisions. Il remet en question les spécifications de manière constructive, propose des alternatives pertinentes et évalue leur viabilité. De plus, il s’engage activement dans la phase de découverte produit et participe à l’idéation de nouvelles fonctionnalités.

Intégration et résultats attendus


  • Après 1 semaine :

    • Prise en main de la base de code et des bonnes pratiques,

    • Onboarding et premiers tickets simples pris en autonomie et mis en production.

  • Après 1 mois :

    • Première conception technique réalisée en autonomie,

    • Prise en main des différents services et composants de notre stack,

    • Responsable du déploiement et de la mise en production de ses fonctionnalités.

  • Après 3 mois :

    • Première fonctionnalité complexe portée du début à la fin,

    • Contribution à l’amélioration continue des pratiques de l’équipe, via les pull request et les retro.

Contexte du poste


🧭 Principaux enjeux techniques

Le produit Explain est construit autour d’un actif de données textuelles. Ces données sont collectées et traitées quotidiennement via des fournisseurs de données ou par web scraping. Nos principaux enjeux techniques sont :

  1. Mettre en production à l’échelle des fonctionnalité d’IA générative (RAG, aide à la rédaction, agents…)

  2. Apporter de la valeur ajoutée à la donnée et la structurer via des traitements de ML (OCR, Clustering, Catégorisation, Reconnaissance d’entité, architecture serverless, architecture de datalake).

  3. Assurer une collecte robuste et rapide de données non structurées et hétérogènes (web scraping).

  4. Rendre accessible aux utilisateurs la donnée dans un front intuitif (UX/UI, Moteur de recherche, Backend).

🛠️ Stack

  • Côté FRONT

    • Angular 18
  • Côté BACK / DATA

    • Python (SQL Alchemy, HuggingFace, Alembic, Flask, Sklearn, Spacy, Scrapy)

    • OpenSearch

    • PostgreSQL

    • OpenAI, Mistral, AWS Bedrock

  • Côté INFRA

    • AWS

      • Elasticbeanstalk pour nos microservices

      • Batch / Lambda / SQS pour nos scripts serverless

      • S3

      • Cloudfront

🏡 Politique de remote

Remote possible jusqu’à 2 ou 3 jours par semaine après la phase d’onboarding.

🤓 Nos méthodes et standards

  • Conception technique - Notre process de développement comprend une phase de conception technique, sans limite de temps, en amont de la delivery. L’ingénieur propose une architecture technique pérenne, et la discute avec d’autres membres de l’équipe. On limite ainsi les reworks et la dette technique.

  • Pull request - Elles sont systématiques avec deux reviewers. Elles sont un moyen pour nous de faciliter la montée en compétence et d’assurer la cohérence de notre base de code.

  • Code coverage - Sur tous les projets back, une pull request ne peut être fusionnée qu’avec 80% de coverage ou plus.

  • Chaque développeur a accès à une licence Copilot.

  • Formation continue - nous organisons régulièrement en interne des exercices et formation autour de nos process (relecture de pull requests, tests, debugging…), pour s’assurer que l’on respecte et que l’on améliore nos standards.

Profil recherché


Pré-requis

  • Bac+5 : école d’ingénieur ou master informatique.

  • 2 ans d’expérience (incluant potentiellement des années d’alternance)

  • Front : connaissance d’un framework JS.

  • Back : Maîtrise d’un langage back orienté objet.

  • Intérêt pour la communication avec les métiers non-technique et la compréhension des besoins utilisateurs.

  • Appétence pour la qualité logicielle et les bonnes pratiques de software engineering.

Apprécié

  • Maîtrise déjà acquise de Python

  • Intérêt pour la datascience ou le NLP.

  • Appétence pour les sujets de société et le produit


Profil recherché

Pré-requis

  • Bac+5 : école d’ingénieur ou master informatique.

  • 2 à 4 ans d’expérience: au moins une première expérience solide dans une équipe de bon niveau.

  • Front : connaissance d’un framework JS.

  • Back : Maîtrise d’un langage back orienté objet.

  • Intérêt pour la communication avec les métiers non-technique et la compréhension des besoins utilisateurs.

  • Appétence pour la qualité logicielle et les bonnes pratiques de software engineering.

Apprécié

  • Maîtrise déjà acquise de Python

  • Intérêt pour la datascience ou le NLP.

  • Appétence pour les sujets de société et la réflexion produit (nouvelles features, compréhension des problèmes clients…).


Déroulement des entretiens

  • Entretien filtre avec le CTO (30min): validation du fit et de l’adéquation du profil au poste

  • Entretien avec CTO et Lead architect (1h30min): cas pratique en live, et passage en revue détaillé des expériences passées.

  • Demi-journée Explain (1/2 journée): 4 entretiens en personne avec différents membres de l’équipe, et une opportunité pour toi de bien valider qu’Explain te convient 🙂

  • Appel de références

Envie d’en savoir plus ?

D’autres offres vous correspondent !

Ces entreprises recrutent aussi au poste de “Développement de logiciels et de sites Web”.

Voir toutes les offres