Défi Top Coder des années 80/90
Publication originale sur LinkedIn
Dépôt GitHub du projet
Vendredi soir, j’ai vu une publication publique sur Twitter/X de Chamath Palihapitiya annonçant un Défi Top Coder ouvert organisé par sa nouvelle entreprise, 8090 Solutions. N’importe qui pouvait y participer. Le défi devait avoir lieu le lendemain même, durer seulement 8 heures, et impliquer la rétro-ingénierie d’un système hérité en boîte noire en utilisant uniquement des données historiques et quelques entretiens avec des employés.
J’ai décidé de me lancer !
À la fin de la journée, j’ai eu l’honneur de terminer 7e sur 425 ingénieurs. Vous pouvez consulter le classement ICI et consulter le code de ce défi ICI. Mais je ne vais pas mentir, j’espérais honnêtement seulement parvenir à terminer quelque chose dans ce court laps de temps, donc figurer au classement a été une surprise et une énorme victoire personnelle pour moi.
Le défi était individuel, et l’objectif était de reproduire un système de remboursement de frais de déplacement en boîte noire vieux de 60 ans, sans code स्रोत et sans documentation. On nous a fourni quelques éléments, notamment un résumé produit, des transcriptions d’entretiens avec des employés et un jeu de données public contenant 1 000 exemples historiques d’entrées et de sorties attendues. À partir de cela, j’ai dû inférer la logique métier derrière le calcul des montants de remboursement et implémenter une version moderne capable de produire les mêmes résultats aussi fidèlement que possible. Les soumissions ont été évaluées sur un ensemble caché séparé contenant 5 000 cas de test au lieu des 1 000 originaux. C’est ce plus grand ensemble privé qui a finalement déterminé votre score final et votre classement. Le système de notation récompensait la précision, où un score plus faible signifiait que votre solution correspondait plus étroitement au comportement caché du système original.
Pour faire face à l’incertitude et aux motifs présents dans les données, j’ai utilisé des techniques classiques d’apprentissage automatique aux côtés d’heuristiques de base et de logique programmatique. C’était un mélange prudent d’analyse de données, de modélisation de caractéristiques et d’approximation de règles fondée sur des indices imparfaits.
Voici mon score eval pour le jeu de données public de 1 000 éléments :
✅ Résumé de l'évaluation
------------------------
Total des cas : 1000
Correspondances exactes (<$0.01): 0
Correspondances proches (<$1.00): 17
Erreur moyenne : $31.15
Score : 3214.93
Développer une solution pour un tel défi en 8 heures aurait été presque impossible sans l’aide d’outils alimentés par l’IA qui ont rendu plus facile l’exploration rapide, l’intégration et le test d’idées.
Cela ressemblait à de l’archéologie logicielle combinée à un sprint de codage en direct. C’est sans doute l’un des défis techniques les plus intenses et les plus gratifiants que j’aie réalisés.
Merci à Chamath Palihapitiya et Arjun Krishna d’avoir organisé un défi aussi créatif et inspirant.
Liens :