Pluspunten
Overall compensation, although it is getting worse and worse every year.
Minpunten
Being programmer means being creative. Well, not at Google. You will have artificially created restraints in almost every aspect of your work. Here is an example: readability. In order to being able to commit some code at Google you would need to have a "readability" in a language you're writing this piece of a code. It doesn't matter if you have 10 years of experience in that language. It doesn't matter if you have certificate from the company that developed this language. And in order to get readability you would need to write a lot of code in that language. Catch-22. Also, you would have to wait for a pretty long time in the readability queue in order to just start with process. You fill like you lost all the experience you had before with this language. Somebody who has readability and has less experience in this language than you will have power over you. You would have to persuade this other person that your code is OK. Hypocrisy. They still have courses at Google where they teach you that it is important to have a rest, it is important to manage your energy, it is important to work when you are excited and energized and not work when you're not. This is why they have all those massage chairs. It used to be the company that valued all this. It all changed. I saw my manager writing in 2am and then writing in 6am again. Manager sets an example for it's subordinates and this example is terrible. I also remember my manager writing email about his current state that he is sick. At the same email he tells that "he will do his best to do some work". At the same time this same manager tells everybody else that "if you're sick - go home and take a rest and don't work". I lost respect for my manager long time ago. They want you to deliver results as soon as possible and yet they don't give you the ability to do it. Instead of JUST DOING IT you would have to write design docs with the future possible architecture (which will always be different because we can't predict software development) and persuade people who have more power than you. Those people will do their best to make sure you don't just start working on your code. You would have to pass several rounds of this absurd. They told me it is very important to predict how much time it would take to finish the project. I asked them what is the technique to predict unpredictable and got no answer in return. They told me it is very important to make sure you did your project as close to your predictions as possible. I asked them what stops people from deliberately giving very large estimates, completing a project sooner and just do nothing for the rest of the time. I got no answer in return. I completely lost respect this company. This is absurd. The management don't think about what they are doing and why. They don't think about their own behavior and they own words.