A few weeks ago, I participated in Google Code Jam and Distributed Code Jam finals. Later, the finalists were asked to provide some feedback. I think that my feedback may be interesting for other people as well, so I post it here (I also posted it on Google Code Jam group).
Thank you for organizing such a great event! Everything went quite well. Mostly. Hopefully it will be even better next year! Here are some things that weren't very good, in my opinion:
Firstly, I think that, when Google is going to organize some event in a country other than United States, the people responsible for that event should study some of that country's laws and regulations, especially those related to visas. This year, finalists were sent visa invitation letters in electronic form, while the rules require visa applicants to submit original documents. Only later, when told about the problem, they finally sent original invitation letters. Fortunately, I was still able to get my visa in time.
There are other things that need to be adapted depending on the country. One of the emails that they send to finalists contains the sentence: "We recommend that you contact your local consulate to schedule a visa interview appointment immediately in order to ensure you receive your visa in time for your flight to Dublin." United States is notorious for requiring almost all visa applicants to pass visa interview, which must be scheduled well in advance. Fortunately, most other countries are much better. For example, Ireland doesn't require visa interview at all, and applicants in Russia (most finalists that need Irish visa are from Russia) don't even need to appear anywhere in person. Another sentence, "Be sure you bring a valid form of identification if you wish to consume alcohol", is because of United States' strict anti-alcohol law. Fortunately, Ireland doesn't have such a law, and the only place in Ireland where I've been asked for an ID was Dublin airport.
Then, there were also some technical issues. Before the contest, the finalists were provided with a list of software that would be available on their machines during the finals. It listed specific versions of programs that would be installed, which would be very good. However, the program versions actually installed were not those on the list. For example, the list included Firefox 47 (on Ubuntu), but Firefox 54 was actually installed. Some other programs had different versions installed as well. This is important, because some finalists (including me) test their tools and processes to work in a specific environment. For example, when preparing for the finals, I created a virtual machine where I installed the same programs that I thought to be present on finalists' machines during the finals. It was said that the list was subject to change, but those changes should at least have been communicated to the finalists, which didn't happen. In fact, a printed version of the list that I received a day before the finals had the same old versions in it.
Speaking of software versions, when will Google update compilers used for testing Distributed Code Jam submissions? For C++, they use GCC 4.7.2. This version was released in 2012, and it became outdated long before DCJ even started! For Java, they use Java 7, which had its support ended a few years ago. Nowadays even obtaining such an old version is not trivial: it is not available from Oracle's web site, and most Linux distros don't include it either. It's a good thing that they're not testing our solutions on Windows XP! Perhaps using such an old Java version is the reason why they use three years old version of Ubuntu on finalists' machines, despite new versions of Ubuntu being released twice a year. On their FAQ page, they say they're looking into a major overhaul of DCJ system, hopefully this will include updating the compilers.
In general, I think that DCJ needs more attention. Why isn't it live streamed like the regular Code Jam? I think that it needs the same level of attention as the regular Code Jam, and the same number of finalists also.
After the contest, we had a dinner. On Thursday, the dinner was at Ocean's 11 Cafe. The dinner was fine (pizza is almost never a bad choice), but waiting a few hours for the dinner was not fine. If they thought that we needed some time to become hungry, they should know that we were quite hungry already by the time we got there. On Friday, the dinner was at the Irish Whiskey Museum. Organizing a dinner at a museum is not such a bad idea, but I think that next time they should choose a bigger museum, and also provide more food. There were some tiny portions of rice with something, which don't really count as a meal, so I had to get some food on my own afterwards.
After the trip, there was a process of expense reimbursement. This is outsourced to a company called Plus Relocation, which requires finalists to submit their expenses and bank details through some shoddy web application. Looks like the developers of that application won't get a job at Google. Right after logging in with a temporary password sent in an email, it asked me to change that password. They require the new password to include at least one uppercase letter, one lowercase letter, one digit, AND one special characters. To make it worse, they also required me to provide answers to three security questions. Not only this doesn't add any security at all, even if it did, I doubt that so much security is needed for a one-off action.
After that, I began filling in my bank info. There, they have some confusing fields (like "reason for payment" — why do they need that?) Also, their site was logging me out automatically after a short period of inactivity, and at some point my password stopped working. I tried to reset it, but this didn't work either. Finally, I had their support reset my password. Fortunately, their support responds pretty quickly. Unfortunately, after I logged in with the new password, I had to fill in these lousy security questions again.
Then I submitted my expenses. A week later, I got an email saying that some of my expenses were rejected, including part of my prize (I won some prize money both for Code Jam and for Distributed Code Jam, and I think this was the reason for this error). I wrote to Google, and the expenses were approved the same day. A few days later, the money arrived at my bank account.
Finally, a bit about this feedback form. In it, there are some questions which shouldn't be answered, like the feedback on events which I didn't attend. However, if I accidentally select an answer to one of such questions, there is no way to deselect it, short of starting the form from scratch. Maybe an additional choice, like "no answer", would be in order.
See you in 2018.
Soon after I posted this on Google Code Jam group, my post was deleted by moderators. Here is their explanation:
The post commented on other institutions and vendors, which are outside of the intended scope of the forum. We value feedback on the Finals, and we will take all of your feedback into consideration for 2018, but we would prefer to keep the focus of the forum discussion technical.
This is not the first time my post there was deleted for a questionable reason, so now I'm seriously considering if it is worth posting anything there in the future (also, much more people are reading Codeforces than their group). Still, it can be a good place to post if you want to reach the people behind Code Jam.