Now that I told the story of my hiring process, I can finally talk about what I've been doing in my 12 months at Google.
I spent the first four weeks in Mountain View for training and to meet my team, or at least part of it, as we also have members all over the world, from New York to Zurich, from Hyderabad to Sydney. As expected, I felt like drinking from the firehose with lots of new things and technologies to learn and I was totally overwhelmed at the end of the month when I went to Google I/O, for the first time and as a Googler!
I moved to London right after Google I/O and the first challenge was to find a place to stay. The company helped me and eventually I found a nice small apartment one train stop away from the office, very convenient and very expensive!
I was settled so I had more time to spend on my job and start my first 20% project, something I was looking forward to do since I joined Google. My project was to extend the open-source library called JetS3t to natively support Google Storage for Developers, which was announced only a few weeks earlier at Google I/O.
That was my first 20% project, my main job was (and still is) to empower developers that want to use the Google Apps APIs. In order to do so, I write code for the client libraries in many languages, interact with the community on forums, support customers with their coding questions or present at public event on Google technologies.
In September I went to Madrid to present at the DevFest, then in October I did the same in Munich, Moscow and Prague for the Google Developer Days and at the end of November I presented at the Dublin GTUG.
While not flying around to meet external developers, I was spending more and more time coding and I eventually found myself leading the Google API Client Library for .NET project (yes, we do .NET development at Google!).
Fast forward to the new year, which started with two trips to Mountain View to meet my team and plan the new activities, including the super-secret projects you are hoping to read about and that I'm not going to disclose!
Exactly one year ago I started working for Google so it's about time to look back at how this new life has been doing so far.
I came to Google after a very long hiring process. It's not usually like that, but it took 11 months for me to get from the first contact with the recruiter to the job offer.
Everything started on June 2009, when a Google recruiter saw my submission on the job site and sent me an email offering to schedule the first of a series of phone interviews for a Developer Programs Engineer position in Mountain View.
In my opinion, the phone interview went terribly bad, but apparently the interviewer disagreed with me and I was asked to setup a second phone interview with another Googler. I did that at the beginning of July and this time I was quite positive about the results.
And I was right, everything was going well and I was invited to fly to a Google office for the onsite interviews.
Actually, I thought everything was going well, but instead something went wrong. The position was filled by someone else and there was no open headcount for me so I had to wait and wait and wait...
I was on hold till December 2009, when the recruiter finally contacted me again for a new opportunity for the same position in London or Dublin. My preference was still for Mountain View, but you don't say no to Google, do you?
This time things moved faster and I went to Dublin for the onsite interviews right after Christmas, only to find one of the coldest winters in ages and have 3 out of my 4 flights cancelled due to the snow. I eventually made it to Dublin and went through 7 interviews, from 11.30am to 5.30pm!
I went back home tired but enthusiastic and I kept my fingers crossed for days, waiting for the response from the hiring committee. It took less than I was expecting to get the answer, and I'm here now, so you may easily guess what that answer was like
Well, I guess I'll talk about my first year at Google in the next post...
One of the side projects I worked on at the end of last year is the Google Developer Advocate Team page, a web application that provides bios for all members of my team and allows to track the public events we are going to attend.
We'll probably end up open-sourcing the code but I've already got questions about the technologies adopted so I decided to write this post to explain some of the design choices.
The application is written in Java and runs on App Engine, which provides scalability and simple deployment and administration.
One of the main requirements when designing the application was that it had to seamlessly integrate into our existing workflow in order to be as easy as possible for Google advocates to insert their events. Internally we use Google Calendar to track our trips and speaking opportunities so it was straightforward to use the Calendar Data API to fetch data from a shared calendar.
Advocates' profiles are stored in a Google Spreadsheet which we can internally update using a simple web form. The public page uses the Spreadsheets Data API to get the relevant pieces of information and display them.
Want to see your face in the Google Developer Advocates page? We are hiring!
It's always hard to find some time to write about my job at Google but I really want to tell you what my team and I have done last week as that makes me proud of them and the entire company.
I work in the Developer Relations team for Google Apps APIs and one of our tasks is to write and maintain the GData client libraries for the various languages supported, mainly Java, Python, .NET and PHP.
This obviously includes fixing bugs in the libraries and once in a while we plan a fix-it day, during which each team member ignores other tasks and focuses on fixing bugs. This is quite normal, but last week we decided to go one step further.
Instead of having a fix-it day we organized a fix-it week and added some Christmas spirit to it by setting an extra incentive: for each bug fixed 10$ (5$ from our manager and 5$ from Google) would have been donated to charity!
And since we all love games, we also put a special "prize" for the team member who fixed the highest number of bugs: that guy had to pick the non-profit organization that would get the money.
Those rules made everyone interested in fixing as many bugs as possible (i.e. more charity) but also created an healthy competition among us to be the one to choose the target organization.
At the end of the week, 31 bugs were fixed and 310$ were donated to Save the Children.
Many people believe that Google's motto "Don't be evil" is just a slogan, do you know of other companies where something like that could happen?
Merry Christmas everyone!
In the last two weeks I've been travelling around Europe to present at the Google Developer Days in Munich, Moscow and Prague (three amazing cities!).
The series of events was a great success with more than 3000 participants and lots of interest and good questions.
In the three cities I gave similar talks on the Google Apps APIs and how to integrate an application on the Google Apps Marketplace, here are the slides I used:
My talk in Prague was also filmed and is available on Youtube:
I just started my third week at Google as Developer Programs Engineer and I wanted to recap my experience so far.
You may have heard many stories on what working for Google is like, and many of them are actually true, but you won't know until you are inside, and that's exactly what happened to me.
When you start at Google, you have to attend the Noogler Orientation training sessions for one or more weeks, where you learn how things work (and a lot of secrets too!). In the meanwhile you have to understand how to move inside the huge internal documentation section and start a personal project.
One of the other advantages of working at Google is that you can attend to many Tech Talks on any kind of topics. Just to mention a few, in the two weeks I have been here I listened to Vint Cerf, the "Father of the Internet", and to Monty Widenius, the creator of MySQL.
What else? I'm having a lot of fun and eating too much. You already know about food at Google, don't you?
This new article covers more advanced topics and is focused on writing a basic spell checker that mixes together the functional and object-oriented programming paradigms.
The spell checking algorithm is implemented in functional F# and is based on the Jaro-Winkler similarity distance while the UI is WPF-based and written with OO code.
I hope you will appreciate the article and I'll be very happy to get any feedback from the readers.
Da qualche giorno sto studiando le Google Gadgets API, quella serie di librerie fornite da Google per personalizzare la propria homepage o il proprio sito web aggiungendo dei pannelli (i "gadget", appunto) al cui interno possono girare delle vere e proprie applicazioni.
I gadget possono essere sviluppati liberamente e, una volta che sono stati verificati da Google, pubblicati gratuitamente all'interno della directory ufficiale in modo da essere facilmente utilizzati dagli utenti di tutto il mondo.
Ne esistono già parecchie migliaia dalle funzioni più disparate. Si va dal gadget che riporta le previsioni del tempo aggiornate in tempo reale a quello che consente di tradurre i testi in 50 lingue diverse. Ci sono poi giochi, musica, immagini e molto altro ancora, praticamente esiste un gadget per qualunque cosa!
In questa selva di applicazioni è adesso possibile ritrovare anche il mio primo esperimento con le API di Google, un gadget chiamato "Algorithm of the Day" che si interfaccia con il portale Algorithmatic.com e propone la descrizione di un algoritmo prelevato in maniera casuale.
Si tratta ovviamente di uno strumento riservato ad un target di nicchia, composto da sviluppatori e progettisti di software.
Nulla vieta però ai non addetti ai lavori di installare ugualmente il gadget anche perché, come dice il proverbio, "un algoritmo al giorno toglie il medico di torno", no?
Restano meno di due giorni di tempo per registrarsi all'edizione 2009 del Google Code Jam, la competizione riservata ai migliori sviluppatori di tutto il mondo.
Il formato è lo stesso della scorsa edizione: un primo turno di qualificazione che si apre questa notte e al quale può partecipare chiunque nell'arco delle 24 ore successive. In questa fase verranno proposti tre problemi, ciascuno con un set di input piccolo e e uno grande. Per superare il turno basterà risolvere uno dei problemi sull'input piccolo e uno sull'input grande (anche lo stesso problema).
Successivamente ci saranno tre turni online e la finale per i migliori 25 qualificati da tenersi presso la sede principale di Google a Mountain View, California.
I premi vanno dalle magliette firmate Google Code Jam ai 5000 dollari per il primo qualificato, oltre ovviamente alla possibilità di farsi notare dai recruiter di Google.
In bocca al lupo!
E' uscito da pochi giorni il numero di Agosto di IoProgrammo, la rivista di informatica più importante in Italia, e al suo interno, per la prima volta, è possibile leggere un articolo del sottoscritto dedicato ad F#, il nuovo linguaggio di programmazione funzionale di Microsoft.
L'articolo è lungo 5 pagine ed ha un taglio introduttivo, allo scopo di diffondere il paradigma di programmazione funzionale. Non manca comunque una prima applicazione di esempio, che si occupa di cifrare e decifrare dei messaggi sfruttando il Cifrario di Vigenere.
L'argomento è sicuramente attuale ed interessante, tanto che sto già lavorando ad un secondo articolo che tratti dei concetti più avanzati.
Mi auguro che lo possiate apprezzare e sarò lieto di ricevere i vostri commenti.