- Date of birth: February 21st, 1978
- Place of birth: Pisa, Italy
- Nationality: Italian
- Address: [feel free to contact me]
Software Development Engineer
Research&Development Department, London (UK)
Summary — I am a Software Engineer in the R&D News Search team in the London office of Bloomberg LP where I focus on the relevance aspects of the news search. My day by day work involves the classification, clustering and ranking of the news that are requested by our customers through the Bloomberg Terminal
Bing.com — Microsoft ltd
Senior Software Development Engineer
Search Technology Center, London (UK)
November 2009∼December 2014
Summary — In my work at Bing.com, I served in many different teams with the role of individual contributor (IC) and as a development leader (DL). I have been working in:
- The Multimedia Relevance team which provided rankers and classifiers for both Image and Video search verticals in international markets (IC & DL)
- The Query Rewriting Experimentation Platform for the offline training infrasctructure of the Speller and related services (DL)
- The relevance part and the training of the models used by the Online Speller for the international markets (DL)
- Double role of dev-lead for both the DataGen team which was charge of designing, creating and maintaining the pipelines used to feed AutoSuggest (aka Bing's search box auto-complete) and RelatedSearches, and in the Metrics team which is in charge of measuring the performance of the same two products (DL)
- The AutoSuggest product with the special focus on the ranking of non-prefix suggestions (IC)
In all my roles at Bing.com, I have been actively involved, in collaboration with Microsoft Research, in the research of new solution and techniques with a particular attention to temporal data analysis, NLP and compressed data structures.
Moreover, I have been coordinator of hiring for all the Bing office for atmost 3 years.
Senior Software Engineer
Ask.com R&D Office, Pisa (Italy)
October 2007∼July 2009
Summary — During my work at the Ask.com R&D Office in Pisa, I worked on a variety of different projects. I was involved in both the Image and News search. In Image Search, I was involved in the image processing for feature extraction and engineering (face recognition, etc.). In News Search, I was involved in the crawling and reverse-templating/text-extraction parts of the system. Morover, I was involved in the development of the tools used for the 24/7 monitoring and alert of our distributed processing system.
- Ph.D. (Diploma di Dottore di Ricerca) in Computer Science, Università di Pisa, 2008
- Internship at Department of Electrical and Computer Engineering (ECE) of Northeastern University, Boston, MA (USA), from August 2006 to March 2007, under the supervision of Prof. Stefano Basagni.
- Master Degree (M.Sc. – Laurea Specialistica), Tecnologie Informatiche, Università di Pisa, 2004.
- Bachelor Degree (B.Sc – Laurea), Informatica, Università di Pisa, 2003.
- Programming languages: C/C++, Perl, Bash and C# (in the past XSLT, Java, Pascal and OCaml).
- "Big Data" processing: experience in working with multi TB-scale datasets using Microsoft proprietary technology and tools. Clustering and data-mining for knowledge extraction.
- Operating systems: Linux, Solaris, Windows (latest versions used) 7, 8, Server 2008R2 and Server 2012.
- System and parallel programming: multi-threading, OpenMP, MPI/PVM and sockets.
- Generative and generic programming: C++ Templates and Template Meta-programming, code generation for task specific optimization and abstraction (DSLs).
- Deep knowledge of both the Unicode standard (UTF-8, UCS-2...) and Regular Expression.
I love programming and I love learning new things. I do believe that the better and only way to learn is learning-by-doing. The following ones are some of the projects that I did, or that I am still doing, that were originated by for personal curiosity of study needs:
- Perl modules on CPAN. I am the author and maintainer of
the following Perl modules:
- Algorithm::WordLevelStatistics: implementation of the words level statistics algorithm as described in: Carpena, Bernaola-Galván, Hackenberg, et al. Level statistics of words: Finding keywords in literary texts and symbolic sequences, Phys Rev E Stat Nonlin Soft Matter Phys Volume: 79 Issue: 3 Pt 2.
- Statistics::OnLine: a class that permits to make ongoing statistics on data streams or very large amount of data.
- Selenium: C++ framework that provides some of the functionalities offered by pynum (vector processing). The project uses many of the features of the latest C++11 standard (e.g., variadic templates, etc.).
- Uranium: C++ framework that provides general utilities: string processing, conguration classes, modern I/O, lazy pointers, etc.
During my Ph.D. and internship at the Northeastern University, I had the occasion to be a teaching assistant and/or present topics to students during classes. The topics that I presented were:
- Types and Type Systems
- Object Oriented Design and Programming
- C++ Templates, STL and Template Meta-programming
- Wireless Networks (MAC layer and Ad-Hoc Networks)
- System programming in Linux with C (multi-processing and multi-threading, networking with sockets)
- Algorithms and Data Structures (Sorting and Searching, Search Trees)
I do not run a blog, anyway, I like writing about technological topics and my "posts" can be found in the Documents section of this web-site.
During my Ph.D., my research area was the one of Wireless Sensors Networks. A list of publications can be found in the Publications section of this web-site.
- "Golden Star" at Microsoft Bing
- "Rock Star" at Ask.com
- ACM Professional Member (2008∼Present)
- ACM Student Member (2006∼2007)
- Perl.it member (since 2004)