Redwood Materials
Charles River Associates
Développeur Agentic Full Stack
À propos de Charles River Associates
Charles River Associates est une société de conseil mondiale de premier plan qui fournit une expertise économique, financière et en gestion d'entreprise à de grands cabinets d'avocats, à des entreprises et à des gouvernements du monde entier.
CRA conseille ses clients sur les questions économiques et financières relatives aux litiges et aux procédures réglementaires, et guide les entreprises dans les questions critiques de stratégie commerciale et de performance. Depuis 1965, les clients font appel à CRA pour sa combinaison d'expérience sectorielle et d'analyses rigoureuses basées sur des faits, qui fournissent aux clients des solutions claires et réalisables à des problèmes commerciaux complexes.
Aperçu du poste
Charles River Associates recherche un Développeur Agentic Full Stack pour aider à construire et à faire évoluer une plateforme d'IA basée sur le Web qui permet aux experts de traduire leur expertise de domaine en flux de travail évolutifs et validés pilotés par l'IA. Il s'agit d'un rôle d'ingénierie full stack senior pour une personne qui a commencé avec de solides compétences en produit et plateforme et qui a évolué vers des systèmes agentiques alimentés par LLM.
Le produit combine un client Web React/Vite, un proxy backend Node.js/TypeScript, des services hébergés sur Azure, et des environnements d'exécution distants isolés où les agents IA exécutent des outils sur des espaces de travail de projet sandboxés. Ce rôle fait le pont entre la couche applicative et la couche agent : expérience utilisateur, APIs, flux de travail de session et de fichiers, streaming en temps réel, comportement personnalisé du runtime de l'agent, outils propriétaires, intégrations de fournisseurs de modèles, systèmes de prompt et de contexte, fiabilité et observabilité.
Le candidat idéal n'est pas un ingénieur frontend spécialisé, ni un ingénieur backend pur, ni un spécialiste de l'IA axé uniquement sur les prompts. CRA a besoin d'un développeur full stack pratique qui peut concevoir d'excellentes expériences produit, écrire du TypeScript et du React de qualité production, étendre les APIs Node.js/Express, et comprendre également comment les systèmes agentiques planifient, utilisent des outils, récupèrent des erreurs, diffusent des activités et produisent un travail que les utilisateurs peuvent inspecter et auquel ils peuvent faire confiance.
Mission principale
Le Développeur Agentic Full Stack sera responsable du chemin allant de l'intention de l'utilisateur à l'action de l'agent en passant par la sortie examinée. Cette personne construira les flux de travail du produit et les capacités agentiques sous-jacentes qui permettent aux consultants et aux experts du domaine de créer des sessions, de télécharger et d'organiser des documents, de lancer des travaux assistés par l'IA, de surveiller l'activité de l'agent en temps réel, d'examiner les fichiers et les sorties intermédiaires, et de s'appuyer sur la plateforme pour un travail analytique de haute qualité dans des environnements confidentiels et à enjeux élevés.
Responsabilités clés
DÉVELOPPEMENT DE PRODUIT FULL STACK
- Construire et faire évoluer l'application Web React sur les surfaces produit principales : authentification, configuration de session, navigation dans l'espace de travail, examen des fichiers, diffusion de l'activité de l'agent, examen des résultats et administration côté utilisateur.
- Créer des modèles de composants réutilisables pour des flux de travail complexes et stateful tout en gardant l'application maintenable, accessible et facile à étendre pour l'équipe.
- Concevoir et maintenir des points de terminaison Express/TypeScript API qui prennent en charge l'application Web, incluant l'orchestration de session, la gestion de fichiers, les opérations d'espace de travail, le suivi de l'utilisation et les nouvelles fonctionnalités produit.
- Intégrer les flux de travail frontend avec les services backend pour l'authentification, le routage LLM, le suivi de l'utilisation, l'orchestration des agents, le stockage cloud et les données applicatives basées sur PostgreSQL.
- Traduire des états complexes de backend et d'agent en modèles d'interface intuitifs, y compris les états vides, les états de progression, les états d'erreur, les états d'examen et les flux de travail reprenables.
EXPÉRIENCE AGENT EN TEMPS RÉEL
- Implémenter et améliorer l'interface de streaming en temps réel entre le backend, le runtime de l'agent et l'interface utilisateur, principalement via des événements envoyés par le serveur et des modèles événementiels associés.
- Afficher la sortie incrémentielle de l'agent telle que le texte token par token, les cartes d'exécution d'outils, les plans, les listes de tâches, les indicateurs de progression, les indicateurs de coût et d'utilisation, les modifications de fichiers, les avertissements et les états finaux du flux de travail.
- Gérer le cycle de vie de la connexion de streaming, les nouvelles tentatives, l'annulation, l'arrêt coopératif, le comportement d'arrêt/reprise, la récupération d'erreurs et un retour clair lorsque des flux de travail d'agent de longue durée sont en cours.
- Aider à définir les contrats d'événements afin que l'interface utilisateur puisse présenter le comportement de l'agent clairement sans exposer une complexité d'implémentation inutile aux utilisateurs finaux.
- Concevoir des modèles d'UX et d'API qui aident les utilisateurs à comprendre ce que fait l'agent, quels fichiers il a modifiés, quelles sorties sont prêtes à être examinées et ce qui nécessite encore un jugement humain.
RUNTIME ET OUTILLAGE AGENTIQUES
- Posséder et améliorer des parties de la boucle d'agent personnalisée multi-tours où l'agent envoie des messages aux fournisseurs de modèles, analyse les réponses en streaming, exécute des outils, observe les résultats et itère dans un conteneur cloud isolé.
- Développer des outils propriétaires qui étendent les capacités des agents en matière d'opérations sur les fichiers, d'analyse, de transformation, de visualisation, de création de documents, de traitement de données, de validation et d'automatisation des flux de travail.
- Étendre l'environnement d'exécution conteneurisé pour prendre en charge de nouveaux langages, bibliothèques, utilitaires, types de fichiers, méthodes analytiques et intégrations nécessaires aux utilisateurs experts.
- Concevoir des schémas d'outils clairs, des limites d'autorisation, des modèles d'accès à l'espace de travail, une validation des entrées et des messages d'erreur qui aident les agents à utiliser les outils efficacement et en toute sécurité.
- Créer des modèles réutilisables pour l'ajout de nouveaux outils afin que les capacités des agents puissent s'étendre sans rendre le runtime fragile, opaque ou difficile à déboguer.
SYSTÈMES DE FOURNISSEUR LLM, PROMPT ET CONTEXTE
- Prendre en charge l'intégration multi-modèles entre OpenAI, Anthropic et d'autres modèles de pointe ou locaux, y compris les formats de messages spécifiques au fournisseur, les formats d'appel d'outils, le comportement de streaming, les sorties structurées et les modèles d'erreur.
- Construire et maintenir des couches de traduction qui normalisent les différences entre fournisseurs tout en préservant l'accès aux capacités les plus fortes de chaque modèle.
- Concevoir et maintenir des systèmes de prompt et de contexte qui façonnent le comportement de l'agent, y compris l'identité analytique, la conformité méthodologique, les modes d'interaction, les politiques d'utilisation des outils, les normes de qualité et les modèles d'escalade.
- Implémenter l'estimation des tokens, le suivi de l'utilisation, la compression du contexte, la résumé de conversation, la mise en cache des prompts et les modèles de sélection de modèles pour les sessions analytiques de longue durée.
- Évaluer comment le comportement de l'agent change entre les fournisseurs, les familles de modèles, les prompts, les outils et les flux de travail, puis adapter le produit et le runtime pour améliorer la qualité, le coût, la vitesse, la fiabilité, la confidentialité et la confiance des utilisateurs.
CYCLE DE VIE DES SESSIONS, FICHIERS ET ESPACES DE TRAVAIL
- Gérer le cycle de vie côté utilisateur d'une session de travail IA, y compris la création, la configuration, le téléchargement de fichiers, l'exécution en streaming, l'interruption, la reprise, l'examen des résultats, le nettoyage de l'espace de travail et le démontage.
- Implémenter des flux de fichiers du navigateur vers le cloud, y compris le téléchargement de plusieurs fichiers, le suivi de la progression, la validation, la navigation dans l'espace de travail, la prévisualisation, le téléchargement et la gestion de fichiers volumineux ou mixtes.
- Prendre en charge les interfaces et les APIs qui aident les utilisateurs à comprendre l'état des espaces de travail distants, les sorties générées, les artefacts intermédiaires, les fichiers sources et les livrables finaux.
- Améliorer la connexion entre l'état de l'espace de travail et l'état de l'agent afin que les utilisateurs puissent examiner clairement le produit du travail et que les ingénieurs puissent déboguer de manière fiable le comportement de la session.
FIABILITÉ, SÉCURITÉ ET OBSERVABILITÉ
- Implémenter des modèles de fiabilité tels que la logique de nouvelle tentative, la gestion des limites de débit, la récupération d'erreurs d'outils, l'arrêt coopératif, l'annulation gracieuse, la reprise et le rapport d'échec.
- Construire en pensant à la préparation pour l'entreprise, y compris les flux d'authentification sécurisés du navigateur, le cycle de vie des JWT, l'accès basé sur les rôles, les considérations CORS, CSRF, l'auditabilité, les modèles d'interface sensibles à la confidentialité et la gestion prudente du produit de travail confidentiel.
- Ajouter des journaux structurés, du traçage, la capture de transcriptions, des métriques, des tests et des outils de débogage afin que le comportement de l'agent puisse être compris aux niveaux de l'ingénierie et du produit.
- Collaborer avec les parties prenantes du produit, des experts du domaine, de backend, de l'infrastructure et de la sécurité pour garantir que les fonctionnalités de bout en bout sont fiables sur le navigateur, la couche d'API, les services cloud et l'environnement d'exécution de l'agent.
- Contribuer à la discipline de livraison en rédigeant des notes techniques claires, en estimant le travail avec soin, en soutenant la planification des sprints et en améliorant continuellement les pratiques de développement.
Qualifications souhaitées
- Diplôme de licence en ingénierie logicielle, en ingénierie ou dans une discipline pertinente avec une expérience en programmation/technologie, diplôme supérieur souhaitable ;
- Plus de 6 ans d'expérience professionnelle en ingénierie logicielle, avec une solide responsabilité pratique dans les systèmes frontend, backend et les systèmes de production ;
- Solides compétences en TypeScript sur l'ensemble de la pile, y compris le développement moderne de React et le développement d'API Node.js/Express ;
- Expérience dans la construction d'applications React basées sur des composants avec un état complexe, plusieurs vues interconnectées, des mises à jour en temps réel et des flux de travail côté utilisateur nécessitant une gestion minutieuse des erreurs ;
- Expérience dans la construction ou la consommation d'interfaces en temps réel utilisant des événements envoyés par le serveur, des WebSockets, des APIs en streaming ou des modèles événementiels similaires ;
- Expérience dans la construction de systèmes agentiques alimentés par LLM qui utilisent des outils, exécutent des flux de travail multi-tours, gèrent l'état et récupèrent des erreurs ; pas seulement de l'expérience dans la construction de chatbots statiques ;
- Expérience avec l'appel d'outils ou l'appel de fonctions par LLM, y compris la conception de schémas d'outils, le streaming d'entrées/sorties d'outils, l'exécution multi-tours et les détails d'implémentation spécifiques au fournisseur ;
- Solides compétences en ingénierie de prompts pour des flux de travail structurés et multi-étapes, y compris des prompts qui encodent des politiques, une méthodologie, des rôles et des attentes d'utilisation des outils ;
- Confort dans l'utilisation de Python pour les outils agents, le traitement des données, l'automatisation, l'évaluation et l'intégration avec des bibliothèques analytiques ;
- Bonne compréhension des flux d'authentification du navigateur, du cycle de vie des JWT, du rafraîchissement des tokens, du CORS, des cookies sécurisés, de l'accès basé sur les rôles et des limites de sécurité frontend/backend ;
- Familiarité avec la conception d'applications pilotées par PostgreSQL et API, y compris une conscience pratique de la conception de schémas, des requêtes, des migrations et des modèles d'accès aux données ;
- Expérience avec des environnements d'exécution basés sur Docker ou Linux et une compréhension pratique de l'isolation, de l'accès au système de fichiers, de la gestion des dépendances et du dépannage du runtime ;
- Solide jugement produit, instincts de débogage, discipline de documentation et capacité à raisonner simultanément sur le comportement de l'IA, le comportement du logiciel et l'impact utilisateur.
Expérience fortement préférée
- Expérience dans la conception de frameworks d'agents personnalisés, de runtimes d'agents, de boucles d'orchestration, de systèmes d'extension d'outils ou de harnais d'évaluation plutôt que de s'appuyer entièrement sur des frameworks prêts à l'emploi.
- Expérience avec OpenAI, Anthropic et d'autres fournisseurs de modèles APIs, y compris le streaming, l'utilisation d'outils, les sorties structurées, le suivi de l'utilisation, les limites de débit et les échecs spécifiques au fournisseur.
- Expérience avec des applications Web riches en fichiers, y compris la progression du téléchargement, la gestion de fichiers volumineux, la prévisualisation, la navigation dans l'espace de travail, l'examen des sorties générées et les flux de téléchargement.
- Expérience dans le rendu de markdown, de sorties structurées, d'activités d'outils, de journaux, de transcriptions, de plans ou d'autres contenus incrémentiels riches en React.
- Expérience avec des modèles de calcul sandboxés ou éphémères, des conteneurs provisionnés dynamiquement, l'injection sécurisée d'identifiants et des cycles de vie de runtime à portée de session.
- Expérience avec des services Azure tels que les applications Web statiques, les applications conteneurisées, les instances conteneurisées, le stockage Blob, la base de données Azure pour PostgreSQL, Application Insights ou des services cloud associés.
- Expérience avec Docker, les actions GitHub, les pratiques CI/CD, la journalisation structurée, l'observabilité cloud et la collaboration dans un environnement d'ingénierie distribué.
- Expérience avec l'automatisation de navigateur sans tête, la génération de documents, l'analyse de données, la visualisation, la conversion de fichiers, R, LaTeX ou des outils d'automatisation de flux de travail.
- Expérience de travail dans le conseil, les services professionnels, le secteur juridique, économique, de la santé, des sciences de la vie, de l'énergie, des services financiers ou d'autres environnements confidentiels/à enjeux élevés.
- Familiarité avec les pratiques d'IA responsable, l'évaluation des modèles, l'examen des transcriptions, les contrôles de qualité, la gouvernance de l'IA et l'adoption de l'IA en entreprise.
Environnement de base
- Frontend: TypeScript, React, Vite, Tailwind CSS
- Backend: Node.js, Express, TypeScript
- Runtime de l'agent : Boucle d'agent personnalisée multi-tours, outils propriétaires, adaptateurs de fournisseur de modèle et protocole d'événements en streaming
- Langages : TypeScript, Node.js, Python ; avec R, LaTeX et utilitaires shell disponibles dans les environnements d'exécution
- Fournisseurs de modèles : OpenAI, Anthropic et autres modèles de pointe ou locaux selon les besoins
- Données : État de l'application piloté par PostgreSQL et API
- Streaming : Événements envoyés par le serveur et mises à jour de l'interface utilisateur pilotées par événements
- Runtime : Environnements d'agent conteneurisés basés sur Ubuntu avec des espaces de travail de projet sandboxés
- Cloud : Infrastructure Web, backend, stockage, base de données, conteneur et observabilité hébergée par Microsoft Azure
- Contexte produit : Flux de travail IA pilotés par des experts où la transparence, la fiabilité, la confidentialité et le contrôle qualité sont essentiels
Flexibilité du lieu de travail
CRA crée un environnement de travail qui permet à nos collègues de bénéficier d'être ensemble au bureau pour mieux tenir notre promesse de croissance professionnelle, de mentorat et d'inclusivité. Dans le même temps, nous reconnaissons que les individus bénéficient d'une gamme d'avantages lorsqu'ils travaillent à domicile périodiquement. Nous nous attendons actuellement à ce que les individus passent au moins 3 à 4 jours par semaine au bureau (ce qui peut inclure des déplacements vers un autre bureau CRA ou des réunions clients), les jours spécifiques étant déterminés en coordination avec votre pratique ou votre équipe.
Notre engagement envers l'égalité d'emploi
Charles River Associates est un employeur garantissant l'égalité des chances (EOE). Tous les candidats qualifiés recevront une considération pour l'emploi sans distinction de race, de couleur, de religion, de sexe, d'origine nationale, d'âge, de handicap, de statut de vétéran protégé ou de toute autre caractéristique protégée en vertu de la loi applicable.
Salaire et autres rémunérations
Une estimation de bonne foi de la fourchette de salaire de base annuel pour ce poste est de 150,000 $ - 230,000 $. Le salaire réel dans cette fourchette peut varier en fonction de facteurs tels que le niveau d'études, l'expérience, les compétences, la situation géographique, les conditions du marché et d'autres qualifications du candidat retenu. Ce poste peut être éligible à une rémunération supplémentaire sous forme de bonus. CRA offre un ensemble complet d'avantages sociaux, sous réserve des conditions d'éligibilité, qui peuvent inclure : assurance médicale, dentaire et optique ; plan de retraite 401(k) avec contribution de l'employeur ; assurance vie et invalidité ; congés payés (vacances, maladie, jours fériés) ; congé parental payé ; programmes de bien-être et ressources d'aide aux employés ; et avantages pour les navetteurs.
Croissance professionnelle et avantages sociaux
- Les programmes robustes de développement des compétences de CRA crai.com/cra-careers/talent-development/, y compris un engagement à offrir 100 heures de formation par an par le biais de programmes formels et informels, vous encouragent à vous épanouir en tant qu'individu et membre d'une équipe. La formation comprend la formation technique, les compétences de présentation, les séminaires internes, ainsi que le mentorat de carrière et le coaching de performance par un collègue senior désigné. Des opportunités supplémentaires de leadership et de collaboration existent par le biais d'activités internes de développement de l'entreprise.
- Nous offrons un programme complet de récompenses totales comprenant un ensemble d'avantages sociaux supérieur, des programmes de bien-être crai.com/benefits/ pour soutenir le bien-être physique, mental, émotionnel et financier, et un soutien interne en matière d'immigration crai.com/cra-careers/immigration-global-mobility/ pour les ressortissants étrangers et les voyageurs d'affaires internationaux.
