Everything that is not related to software development: ideas on natural languages, countries I have lived in, my life, stuff that make me curious. All sort of interesting things.

My last day at TripAdvisor

Today is my last day at TripAdvisor, where I have been part of the personalization team.

I have joined this office a few months after it was started. When I arrived there were less than ten engineers and I was the second of my team, with the first being sent over from the USA. We were staying in a small office in Sheriff street. I had the chance of seeing new people joining us, knowing them one by one during these months. Many things happened, as we grew to occupy another room in the Liffey Trust and as we later moved to our new office in Grand Canal.

Being part of TripAdvisor has been great for different reasons. The first one is that we do something that matters (~300 Millions of unique visitors per month!) and that people love: I remember when we went to the Web Summit and everyone was stopping by to our stand just to tell us how much they loved our website, how frequently they have used it and how many reviews they had written for us.

Another reason why it has been great working here is because I had fantastic colleagues. Build a no-assholes company is easy to say but difficult to deliver. Well, TripAdvisor managed. It was a pleasure to work with every single colleague. This was very important also because this one is the first engineering office outside USA, and the first remote office for my team. It meant that we had to learn on the job how to organize things. Things worked out because my colleagues and my managers (here and in the USA) were always looking for ways to improve the processes and our colleagues in the USA were supportive. Things were not perfect from the beginning, of course, but it was great to be part of a growing thing, trying to give my contribution.

As always happens I would like to have delivered more, but still there a few things I am happy to have done:

  • I have been the main author of the “reason messages”. Those messages explaining why we are suggesting an hotel to you. I am happy to have done that because it was a key element to activate the personalization feature for 100% of our traffic and also because those messages had a strong impact for our click rates

Screen Shot 2015-01-16 at 11.55.43

  • I advocated a stronger focus on testing. While we are far to reach a coverage I would be happy with, we improved a little bit our situation
  • I spent some time in improving internal debugging tools mainly used by our PMs. During my previous life in research I discovered the importance of tools and I always loved the idea to create tools that facilitate the job of someone. I happy that here I had the possibility to give a small contribution in that direction

Here I had the chance to understand what it means to work in a successful company with a huge user base. You learn to remain calm, find a solution quickly and push that commit to production, when it is needed.

I think this experience will help me a lot in my new position a Groupon, working on the Platform Services. There I hope to have the chance to work with more diversified technologies. But for now, all what I want to say is thank you TripAdvisor, it has been a great time for me.

My first month working at TripAdvisor

So I just finished my first month at TripAdvisor.

It has been quite an intense period and it involved spending a couple of weeks at the headquarters in Newton (MA, USA).

Working at TripAdvisor is both completely different and very similar to what I used to do.

It is similar because I am still playing with code; the very same activity I have been doing since I remember. Whatever particular type of code you are working on you always feel this sense of familiarity  while you are programming. It makes me feel comfortable and relaxed, after all I keep doing the same thing over and over: reading, reasoning about and writing code.

On the other hand this job it is very new for me because I used to work in an Acamedic environment or to do other stuff (MDD/DSL consultant, Java teacher, etc.) which did not imply working with such a large codebase, on a project with hundreds of millions of user which is constantly evolving (and at a fast pace: Speed wins!).

There are a lot of new challenges in this kind of environment and I am enjoying them. I do not have problems understanding the code base (everything seems reasonable and there is enough documentation) but I am still very clumsy in following the processes and I should improve in the way I interact with the other members of the teams.

Maybe I could have expected these differences but there were also a few surprises.

The first one is how helpful all my team-mates are: you can just go and interrupt everyone asking about a piece of code, which is the best way to perform a task, if some idea of yours make sense. Everyone is always ready to help. This is simply astonishing and it is something I still need to get used to.

The second one is that the company wants you to understand that they care and they are happy about having you on board. They spoil you in any possible way and they do an effort to put you in the best conditions to do your work. So you can relax, open your brand new mac and focus on writing code.

Another thing I am starting to like is being a completely full-stack engineer: I am working on back-end and front-end. If I find a possibility for improvements in any script I am encouraged to implement and share them. Everyone has the possibility to intervene and improve things around himself. The result is that things are always evolving in a positive way. Things are not perfect in every single area, but you feel you can actually change the bits you are not happy with, you feel empowered. If you decide to not fix something, well, you have no excuses to complain about that.

Dublin and Irish people are another variable of the equation. Let me just say that they play a huge role in making this new adventure a very happy one, so far.

How the languages we use affect the way we think

The first to consider this hypothesis were Sapir and Whorf, with their work on linguist relativity.

They started examine different languages of the natives of America and look into the differences between them. For example, they found out that some languages did not have an explicit notion of time: there were no future tenses or words to express the concept of “tomorrow” . They did some errors, due to their misunderstanding of these languages, so their theory, after an initial success was rejected by the scientific community. For many decades every attempt to revive the theory that languages affect they we think was disdainfully dismissed as a whorfianism.

Recently this old idea is coming back and there are different works showing an empirical link between a language and some behaviour. For example on TED Keith Chen tells us about this fact: considering two families from the same city of a bilingual nation, considering also that these families were classified in the same category under many dimensions, it seems that depending on the language they speak, they tend to save more or less. He concludes that speaker of languages with an explicit verbal form for the future tend to perceive the events to come as more distant and therefore they tend to save 30% less in comparison to speakers of “futureless” languages.

Fascinating, isn’t it?

There are a lot of studies about that. It has to be said that many scientists like Steven Pinker, to my understandings, do not support this theory. As far as I can understand Pinker, as Chomsky, suggests that language is a natural instinct, and the natural languages we speak just reflect that “internal language”, but we still think using this internal language and we are therefore not so much influenced by the external language we happen to use.

Still, I read a lot of material on this topics and discovered weird differences between languages around the world. Did you know there are languages which do not permit to express relative positioning? They do not have constructs to say that sometimes is “at your left”, they can only use absolute positioning: they can say something is east or north-west. As a side effect speakers of this language tend to be always conscious about directions, they can immediately point out where the north is, for example. Consider a speaker of such a language walking in the corridor of an hotel. Both on its left and its right there rooms. When you open the door of one of this room you could see that the bed is on the left and the closet is on the right. To you they rooms look all the same. To such a speaker they would look as opposite rooms.

Absolutely fascinating for me.

Joy of Clojure

They picked up for the second time a sentence of mine for a book cover. This time is Joy of Clojure. I think the language and the book are really worthy to take a look at them.


On education

It is worthy to take a look:


Today I achieved my master degree in Computer Engineering at the Politecnico di Torino with 105 points out of 110.

Google OS is going to be presented tomorrow


The big question we will finally see answered tomorrow, then, is what the heck Chrome OS actuallyis. Chrome OS has been hyped a lot ever since its announcement, but we know absolutely nothingabout it. So, what do you think Chrome OS will be like? Are we looking at an operating system built entirely about being online? Or will it be a more traditional operating system?

The first time I heard about Chrome OS I was not so thrilled. I consider very difficult to deliver something new and exciting in the OS field. The last time it happened it was with BeOS. It was so modern still years after its commercial death. I am looking now to haiku affectionality but I am aware that it remained so behind compared to the competitors.

Anyway it is Google involved. Let’s think about GMail and Chrome. I was skeptic in regards of both of them and now I am using both and appreciating the quality so Google gained a huge credit with me, let’s see if it is going to waste it o steady it. Just a day to discover.

Considerations on the future

Well, I am pretty sensible to the fact that

For students starting a 4 year technical degree this means that… …half of what they learn in their first year of study will be outdated by their third year of study

And so…

We are currently preparing students for jobs that don’t yet exists

In fact

The top 10 in-demand jobs in 2010… …did not exist in 2004

Exciting, confusing times, right?

Words to keep in your mind

This is the true joy in life: Being used for a purpose recognized by yourself as a mighty one, being a force of nature instead of a feverish, selfish little clod of ailments and grievances, complaining that the world will not devote itself to making you happy. I am of the opinion that my life belongs to the whole community and as long as I live, it is my privilege to do for it what I can. It is a sort of splendid torch which I have got hold of for the moment and I want to make it burn as brightly as possible before handing it on to future generations.

George Bernard Shaw

Tips for improving your foreign language: Mnemosyne

Disclaimer: these are just some small pieces of advice that proved to be helpful for me. My English is far from being perfect and my German is worse so it is obvious that I am not aware of some magical method to learn a foreign language without any effort. I want just to share some tips. I hope they can help someone out there.

Use Mnemosyne to retain the words you learn

Before I discovered Mnemosyne I followed the traditional way: I found a word that I did not know, I searched it in a vocabulary and I… forgot. After a while I found again that word and I searched it again. And again. It was so frustrating, but then finally I found out this fantastic program: Mnemosyne. This program helps you remember the words you learn revising them periodically.

Typically I use Mnemosyne in this way. At the morning I revise the words I have already learnt. The program show you a word or its definition and give you the time to think.

A question in Mnemosyne

A question in Mnemosyne

When you can remember the answer or you want to give up you press the button “show answer” and after that you evaluate as difficult was for you to remin the answer. The grade you can assign ranges from 0 to 5 (there are precise explanations about this levels in the documentation and as tooltiptexts).

Giving a grade to your answer

Giving a grade to your answer

The program reschedules the word to be revised again in the future after a certain amount of days depending on your answer and on the history of your answers on that word. So a word that you keep to forget will be revised every you days for a while, on the other and a word that you already have seen many times can be revised just one per year.

During the day I keep inserting new words and definitions.  In my experience using this method you can learn every day up tp 30 words if you are ready to spend up tp 20-30 minutes per day for it. That means around 900 words per month or a bit less than 11000 words per year. Or you can just spend some minutes every day (5-10) and learn between 5 and 10 words each morning.

Mnemosyne can be obtained from http://www.mnemosyne-proj.org/.