Curriculum Vitae

Altre lingue

Note legali

Alcune delle informazioni che seguono sono definite "sensibili" ai sensi della legge 31 dicembre 1996 n. 675 e successive modifiche. Il fatto che siano qui disponibili non implica alcuna autorizzazione al loro trattamento. Chiunque avesse interesse a rilevare, archiviare o comunque trattare le informazioni che seguono (per uso non personale, si veda Art.3) è tenuto a contattarmi e chiedere esplicita autorizzazione.

Dati anagrafici

Nome e cognome:

Gianni Ceccarelli

Luogo e data di nascita:

San Giovanni Valdarno (AR), 1977-04-05 (5 aprile 1977)

Residenza:
8 Union Road
Northolt UB5 6UE
UK
Posta elettronica:

dakkar@thenautilus.net

Telefono:

+44 756 4023 056

Istruzione

Diploma di maturità scientifica conseguito presso il Liceo Scientifico “Francesco Redi” di Arezzo nel 1996, sezione MFI (sperimentazione Matematica-Fisica-Informatica), con votazione di 60/60. All'interno della prova orale ho esposto una breve tesi sulla generazione di immagini fotorealistiche al calcolatore, con particolare riguardo a tecniche di ray-tracing.

Il 2001-10-19 ho conseguito la Laurea in Informatica presso l'Università di Pisa con la votazione di 110/110 e lode; sono inoltre stato allievo ordinario presso la Scuola Normale Superiore di Pisa per tutta la durata del corso di laurea (5 anni).

La mia tesi di laurea ha come argomento un'estensione degli algoritmi di apprendimento con rinforzo tramite reti neurali ricorrenti per strutture, permettendo ad esempio di trattare insiemi di agenti cooperanti tramite reti di comunicazione. La tesi e la libreria ad essa correlata sono disponibili su SourceForge. La libreria è rilasciata sotto licenza GNU LGPL e la tesi sotto GNU FDL.

Dal 200-201-01 al 2002-12-31 sono stato iscritto al dottorato in informatica presso il Dipartimento di Informatica dell'Università di Pisa. Ho abbandonato per cercare un lavoro.

Esperienze lavorative

Presso Hyperborea

Dal 2003-02-03 al 2005-06-31 ho lavorato presso la Hyperborea s.c..

Presso Hyperborea ho acquisito svariate tecniche di progettazione e sviluppo, e approfondito le mie conoscenze. In particolare:

  • Programmazione in Python.
  • Integrazione in un gruppo di sviluppo e coordinamento con altri sviluppatori
  • Gestione delle segnalazioni di bug (usando GNATS).
  • Sviluppo distribuito e gestione delle versioni (con CVS).
  • Progettazione e sviluppo di applicazioni web/CGI.
  • Integrazione tra database relazionali e applicazioni web.
  • Uso di Oracle (8 e 9i), PostgreSQL, MySQL.
  • XML e tecnologie correlate: XPath, XSLT e XSL-FO, XML Schema.

Tra i progetti cui ho partecipato, i più significativi sono:

  • “iboFlex”, un framework per semplificare la scrittura di applicazioni web di data-entry su database, basato su ibo (un application server sviluppato in-house) e XSLT.
  • Un framework generale per la gestione di questionari via web, estremamente flessibile. Permette di definire questionari arbitrariamente complessi, di definire le regole di validazione delle risposte e di variare la presentazione dei questionari (domande e risposte riordinabili, diverse formulazioni per ciascuna). Usa XML come formato di rappresentazione e XSLT per definire la presentazione.
  • Arianna versione 3, programma per la inventariazione di archivi storici, basato su XML, per il quale ho definito i formati di rappresentazione interna e ho scritto il sistema di indicizzazione e ricerca full-text.
  • Un sistema di gestione distribuita per la programmazione e pianificazione didattica dell'università, sviluppato in collaborazione con l'Università di Milano Bicocca, per il quale ho collaborato alla progettazione d'insieme e alla definizione dei formati e protocolli di interscambio dati. Attualmente il progetto è portato avanti dalla spin-off TabulaeX.
  • Il progetto Ecumene, un progetto nazionale per la diffusione telematica di conoscenze sul patrimonio storico-artistico ed archivistico della Chiesa Cattolica in Italia, in cui ho collaborato alla definizione dell'architettura, alla progettazione di alcuni moduli, alla definizione dei linguaggi e protocolli di interscambio dati.

Presso Blackbit

Nel 2005 ho aiutato ad avviare lo Studio Blackbit, e ho lavorato lì per circa un anno. Tra i progetti cui abbiamo lavorato:

Presso Ask.com

Dal 2006-04-04 al 2009-07-31, ho lavorato per l'ufficio italiano di R&D di Ask.com.

Tra i vari progetti cui ho partecipato, i più significativi sono:

  • Nel progetto “BigNews”, ho scritto quasi tutti gli algoritmi di selezione delle immagini, e circa metà del codice che gestisce immagini e filmati; tutte le immagini e i filmati che potete vedere nel site BigNews sono passati dal mio codice
  • Ho gestito il progetto “News Triggering”, il cui scopo è di riconoscere quando una query indica che l'utente può essere interessato alle ultime notizie riguardo un certo argomento, e quindi di inserire tali notizie all'interno dei normali risultati della ricerca web; questo progetto ha richiesto ampie analisi statistiche sui gruppi di notizie, lo sviluppo di svariate euristiche per filtrare il rumore, e l'implementazione di server dedicati

Lavorando per Ask.com ho affinato le mia capacità di gestione progetti, e rafforzato le mie conoscenze in varie aree. In particolare:

  • Programmazione in C++, specialmente su progetti di larga scala
  • Gestione delle comunicazione tra sviluppatori geograficamente dispersi: alcuni dei miei colleghi erano a 6 e 9 fusi orari di distanza
  • Scrittura di codice che gestisca grandi quantità di dati, nel minor tempo possibile
  • Amministrazione di sistema su media scala: prima che assumessero un vero amministratore di sistema, io e un collega gestivamo 8 server e aiutavamo per le varie macchine desktop nell'ufficio
  • Screen-scraping di siti web dinamici (ad es. che includono JavaScript)
  • Download e ricodifica di filmati
  • Aggirare, usando software libero, le direttive dell'azienda che supponevano tutti usassero prodotti Microsoft

Presso net-a-porter.com

Mi sono trasferito a Londra i 2010-01-04 per lavorare a net-a-porter.com come sviluppatore Perl. I progetti più significativi a cui ho lavorato sono:

  • automazione della procedura per aggiungere nuovi prodotti al catalogo
  • integrazione del software interno di gestione magazzino con un sistema robotico, con particolare attenzione al protocollo di comunicazione e ai test di integrazione
  • un adattatore di protocollo (da una parte STOMP, dall'altra un protocollo seriale binario portato su TCP) per integrarsi con un altro sistema robotico; ho gestito tutti i test di integrazione a livello di protocollo
  • un insieme di linee guida e programmi di supporto per semplificare l'avvio di nuovi progetti e incoraggiare l'uniformità e la qualità del codice
  • una soluzione completa per scambio messaggi tra le nostre applicazioni
  • un'estensione di Puppet per configurare un intera rete di broker ActiveMQ partendo da una descrizione dichiarativa di come i messaggi devono essere instradati
  • librerie non-bloccanti per integrarsi con i sistemi dei corrieri UPS e DHL
  • un framework per costruire API REST non bloccanti (avremmo dovuto rilasciarlo come open source, ma è rimasto incastrato nella burocrazia)

Presso Broadbean

In 2015-06-15 ho cominciato a lavorare a Broadbean come sviluppatore Perl, principalmente per migliorare la qualità del codice e dei test, e ridurre il debito tecnico.

Altre esperienze

Nel 1992 ho iniziato a sviluppare per la tellure Rôta di Formigine (MO) il programma “Scegli la ruota giusta”. L'azienda produce ruote per movimentazione industriale; il programma era progettato per essere messo a disposizione dei clienti delle ferramenta per aiutarli a scegliere, all'interno del catalogo, la ruota migliore (sia come prestazioni sia come prezzo) per la loro applicazione. La prima versione era scritta per MS Quick Basic 4.5, successivamente è stato interamente riscritto in Borland Pascal. L'interfaccia utente era completamente grafica, con disegni e animazioni esplicativi (il tutto girava su sistemi 386 con schede grafiche VGA standard, sotto DOS). Il sistema di ricerca all'interno del catalogo era basato su funzioni di archivio scritte appositamente. Le ultime versioni includono un sistema per la traduzione dei messaggi, e ho curato (assieme a specialisti della tellure Rôta) la traduzione in inglese, francese, tedesco, spagnolo.

Nel 1995 ho sviluppato per la PFB di Modena un programma per la gestione di un banco prova per regolatori. L'azienda produce componenti per ascensori; il "regolatore" è una puleggia in cui scorre un cavo collegato alla cabina dell'ascensore: se il cavo (e quindi la cabina) supera una certa velocità, la puleggia deve bloccarsi, tendendo il cavo e attivando di conseguenza il sistema frenante della cabina. Il programma, grazie a una interfaccia da me sviluppata con un rilevatore di velocità (encoder ottico collegato alla porta parallela), permette di rilevare con precisione la velocità di intervento del regolatore (ovvero la massima velocità raggiunta prima del blocco), di archiviare le prove effettuate e di stampare un certificato di conformità. Il sistema gira su sistemi PC, in modo testo sotto DOS, ed è stato scritto in Borland Pascal. Il sistema di archiviazione è anche in questo caso sviluppato ad hoc.

Dal 1996 ho partecipato alla costruzione di una rete locale basata su Ethernet tra macchine eterogenee (Macintosh e PC con Windows, DOS, Linux). Dal 1997 al 2001 sono stato "ufficiosamente" responsabile della sala computer del Collegio Carducci della Scuola Normale (dove abitavo): al momento che l'ho lasciata era composta da 8 PC, con sistemi operativi MS Windows NT 4 e Linux (ci siamo basati sulla distribuzione RedHat), e due iMac. Erano inoltre presenti due stampanti, accessibili da tutte le macchine via rete; l'intera sala era protetta dagli attacchi esterni tramite un NAT (Network Address Translator) realizzato con un PC con Linux. Il merito dei risultati ottenuti non è solo mio: sono stato aiutato da quattro miei colleghi, senza la cui collaborazione non sarebbe stato possibile realizzare tutto ciò. Ho organizzato un ciclo di lezioni introduttive all'uso dei computer per gli utenti della sala, che sono state tenute dai miei collaboratori.

Nel 1997 ho tradotto dall'inglese alcuni articoli sulla programmazione del Presentation Manager di IBM OS/2 per la rivista in rete Just Warp!.

Nel periodo Luglio-Agosto 2000 sono stato invitato presso l'Università di Wollongong in Australia per lavorare col gruppo del prof. Ah Chung Tsoi su reti neurali per domìnî strutturati.

Nel 2000 ho tenuto alcune lezioni di Perl per altri studenti, esponendo i fondamenti del linguaggio (e qualche caratteristica oscura a seguito di domande cattive)

Ho tenuto anche una breve lezione sul funzionamento, l'uso e i problemi di Internet all'interno di un corso per insegnanti delle scuole medie tenuto dal mio insegnante di matematica alle medie.

Ho curato la traduzione italiana di SourceForge, e ho aiutato i traduttori italiani di KDE 2.

Ho fatto parte dell'organizzazione degli Italian Perl Workshop per tutte le sue edizioni (4 al momento), e la conferenza europea del Perl (YAPC::EU) nel 2010 a Pisa, gestendo il sito web, la selezione degli interventi proposti, e la stesura del programma.

Ho scritto alcuni articoli per http://www.perl.it/, e ho un account CPAN. Un po' del mio codice può essere esaminato nelle pagine del mio CGit e del mio account GitHub.

Capacità

Conosco vari linguaggi di programmazione:

Linguaggio

Livello di conoscenza

Perl

Elevato

Python

Buono

Ruby

Basilare

JavaScript

Basilare

C++

Buono ma un po' datato

C

Buono

Preferisco i linguaggi imperativi o a oggetti; ho qualche problema (di progettazione) con i linguaggi funzionali (Scheme, ML, Haskell).

Ho un forte interesse (e forti opinioni) per le interfacce utente. Le migliori (secondo me), modo testo: WordStar 4.0, Pine; gestione file e cartelle: IBM Work Place Shell per OS/2; per palmari: Apple Newton. Per questo ho progettato molte interfacce utente (più di quante sia riuscito a realizzare).

Come organizzatore/responsabile ho avuto qualche successo, riuscendo a coordinare il lavoro di cinque persone nell'amministrazione di una rete di computer, mettendo al primo posto la sicurezza e al secondo l'affidabilità per gli utenti (che include il non stravolgere le abitudini in nome dell'innovazione). Lavorando ad Ask.com ho coordinato un piccolo gruppo di persone, e tenuto in sincronia i nostri sviluppi con altri gruppi dall'altra parte dell'Atlantico.

Amministro le mie macchine Linux, tutte con Gentoo Linux, incluso il server dedicato che gestisce il dominio thenautilus.net.

Parlo e scrivo correntemente in inglese; leggo il francese e con un po' di difficoltà lo spagnolo. Ho seguito un corso di giapponese di primo livello, superando l'esame finale.

DateCreato: 2003-01-28 10:09:25 Ultima modifica: 2009-10-27 14:01:49