La sfida Top Coder degli anni '80 e '90
Post originale su LinkedIn
Repository GitHub del progetto
Venerdì sera, ho visto un post pubblico su Twitter/X di Chamath Palihapitiya che annunciava una sfida Top Coder aperta ospitata dalla sua nuova azienda, 8090 Solutions. Chiunque poteva partecipare. La sfida si sarebbe svolta il giorno successivo, sarebbe durata solo 8 ore e avrebbe comportato il reverse engineering di un sistema legacy black box usando solo dati storici e alcune interviste ai dipendenti.
Ho deciso di partecipare!
Entro la fine della giornata, sono stato onorato di classificarmi 7º su 425 ingegneri. Potete consultare la classifica QUI e consultare il codice per questa sfida QUI. Ma, non mentirò, speravo sinceramente solo di completare qualcosa entro quel breve periodo di tempo, quindi finire nella classifica è stata una sorpresa e una grande vittoria personale per me.
La sfida era individuale e l’obiettivo era replicare un sistema di rimborso spese di viaggio black box di 60 anni fa che non aveva né codice sorgente né documentazione. Ci sono stati forniti alcuni materiali, tra cui una descrizione del prodotto, trascrizioni di interviste ai dipendenti e un dataset pubblico contenente 1.000 esempi storici di input e output attesi. Da ciò, ho dovuto dedurre la logica di business dietro a come venivano calcolati gli importi dei rimborsi e implementare una versione moderna che potesse produrre gli stessi risultati nel modo più vicino possibile. Le submission sono state valutate su un dataset nascosto separato che conteneva 5.000 casi di test invece degli originali 1.000. Questo insieme privato più ampio è ciò che alla fine ha determinato il tuo punteggio finale e il tuo posizionamento. Il sistema di punteggio premiava l’accuratezza, dove un punteggio più basso significava che la tua soluzione corrispondeva più da vicino al comportamento nascosto del sistema originale.
Per affrontare l’incertezza e i modelli presenti nei dati, ho utilizzato tecniche classiche di machine learning insieme a euristiche di base e logica programmatica. È stata un’attenta combinazione di analisi dei dati, modellazione delle caratteristiche e approssimazione di regole basata su indizi imperfetti.
Ecco il mio punteggio di eval per il dataset pubblico di 1.000 elementi:
✅ Riepilogo della valutazione
------------------------
Casi totali : 1000
Corrispondenze esatte (<$0.01): 0
Corrispondenze vicine (<$1.00): 17
Errore medio : $31.15
Punteggio : 3214.93
Sviluppare una soluzione per una sfida del genere in 8 ore sarebbe stato quasi impossibile senza l’aiuto di strumenti basati su IA che hanno reso più facile esplorare, integrare e testare rapidamente le idee.
È sembrato come archeologia del software combinata con uno sprint di programmazione dal vivo. Facilmente una delle sfide tecniche più intense e gratificanti che abbia mai affrontato.
Grazie a Chamath Palihapitiya e Arjun Krishna per aver organizzato una sfida così creativa e stimolante.
Link: