INFO LOWONGAN KERJA TERBARU KLIK DISINI

Software Engineer Finishing The Google Interview


I just wrapped up the simpulan stages of the Google interview, and to spoil the suspense, I got hired and will move out there in a month! It has been a long and tedious process for me, but I signed the offer yesterday so it's official; it’s finally over and I can reflect on the whole experience. When I submitted my resume back in January I hardly expected them even to respond, let alone hire me and move me 2,000 miles to the Bay Area. I was actually hoping to get a job at SpaceX or Tesla, because I really want to work in one of Elon Musk's companies one day, but I could not be happier with the way my West Coast job search turned out.

After the On-Site - The Hiring Committee

In my last post I talked about the on-site interview. I found out in the week following that I advanced to the next step which was the hiring committee. That was definitely a good sign, but it was still anything but certain at that point. To make it beyond the on-site it means I did well enough in the interviews that they didn't outright reject me, but the next step required a hiring committee of senior engineers to scrutinize me. The hiring committee looks at everything: your resume, all the notes from every interviewer, the questions you were asked and also letters of recommendation (if you have one – I did and you should to!) The only thing they don’t look at is you personally; you will never meet the people deciding your fate on the hiring committee, or any subsequent committee. Your interview results should be clear-cut and the committee needs to reach a consensus on you, or else you don’t advance. It is possible to do extremely well in the interview and still not advance, because maybe the questions you got didn't paint a complete picture of your skills, then you might have to come back for follow-up interviews.

My hiring committee decision was apparently not clear-cut. I heard my decision a day after they said I would, because I was a “special case” and they needed a second opinion. Fortunately the second opinion was a good one, because I was approved in the end, but it’s got me scratching my head as to why I’m a special case… My best guess is because according to my resume I have very little (<3 years) actual software development experience. However, if you look more closely you would see that I spent much more time than that writing open-source and other hobby applications in my free time. In any case I did extremely well in the interview and solved some really complex problems efficiently and elegantly, so if they had doubts that certainly persuaded them.

Placing Me with a Team

After hiring committee approval begins the placement phase. During this phase you try to find a match with a team at Google. It's not necessarily a match with your prior experience, because they care very little if you already know how to do the job from the get-go. It's more looking for a match of interests, because they want you to be interested in what you're doing. It's okay if you find out later that you're not passionate about the work, because they have a great mechanism for moving engineers around every 18 months, so if you don't like your job you can get a new one after a little while.

The way placement began was I told my recruiter what areas I was most interested in (autonomous vehicle, datacenter/backends, embedded development, no front-ends, etc…) and she tried to find project managers in those areas who needed my skills. It took them a week to find some potential matches for me, during which time I was a nervous wreck - what if I made it this far and couldn’t match with a team?? My recruiter said she would call me on Monday with matches, but when Monday came she said there were none yet so I should wait until Friday. She told me not to worry, that this is just how the process goes sometimes but there will surely be a match. I was relieved when she finally found a few matches, and we scheduled brief phone conversations with the managers who would be hiring me.

The placement meetings are nothing to be worried about; they are not interviews, and the recruiter made that clear to me going into it. Nevertheless I was still worried because what if these hiring managers decide my experience is not a good fit, would this process drag on and on? I had all three meetings scheduled in the same day, and I was immediately relieved after the first one. It turns out I was way more worked up than I needed to be, because I got the impression immediately that the project manager was already interested in my skills and background, and I didn't have to prove anything to him. He already had access to all my interview notes and my resume, so he already knew what I’m capable of and the only thing I had to do was to seem interested in his project, which was genuinely easy because the projects were all so interesting!

The first project was with the platforms group, which is a huge entity inside Google that handles the entire back-end that makes all their services work. That means clouds, data centers, services and infrastructure, among other things. The job was writing libraries/API’s to facilitate low-level hardware testing, which would be used by other Google software developers. All developers inside Google write tests for their own code, and so this team provides the API’s they use to test low-level hardware features and performance. That sounded fascinating to me, especially because I love making libraries and API’s and have so much experience in the hardware/software testing field that it would have been a very natural fit. Even though I knew I wanted the job, I also knew that I might feel the same after every placement meeting, so I made sure to keep detailed notes about the position and assign it a simpulan rating between 1 and 10 that I used to try to make an objective decision in the end. I gave this one a 7 out of 10, meaning I really liked it but there is room so another position could still win me over.

The second project was also with the platforms group, but a different team. This was an even more low-level position, and involved less software development but had more intrigue. What interested me in this position was that it was “top secret” and they couldn't even tell me what exactly the team is working on. What they did tell me was that it was testing custom data center hardware for performance and correctness. You see, when Google needs a specific piece of hardware to improve their server infrastructure, they have enough engineering prowess that they can just build it themselves and keep it totally secret so nobody even knows it exists. So the team here was responsible for understanding all the complexities of the custom hardware solutions (whatever they are, they wouldn't tell me…) and writing automated tests to do performance benchmarking and analysis. Again this sounded really cool to me in no small part because it was top secret, and seemed to fit even better with my career so far, in which I have been a Hardware-In-the-Loop tester longer than anything. I gave this one a 9 out of 10, because I liked it better than the first option but I knew there could be a better one, since I am mostly interested in doing software development proper, not further pigeonholing myself as a hardware/software tester (even if it is for a top-secret team at Google).

The third project won me over. It also fell under the platforms umbrella, but was a specific group called NetSoft (this is an internal name; you won’t find anything about it on the internet). As the name implies they write software for networks. But these aren't regular, run-of-the-mill networks, they are large, distributed and in some cases software-defined networks. The NetSoft team writes software that manages these networks and also gives health/status reports so you can see in real time how your data center is doing and make changes to it. I’m sure they do a lot more too, but that was all I could remember. What really sold me on this position over the others is that it is a “real” software development position that involves C++ application development in a Linux/Unix environment, which is a role I have been trying to get for a long time because I love Linux and C++ so much. It seems like most companies nowadays are doing things in C# and everything is for Windows, which I generally dislike, so it was a major plus for me to be able to work in my favorite environment. Also it’s a great fit because I am very into networking as a hobby. At one point I taught myself how to set up routing tables in Linux, and now I have my own Linux router and VPN server at home, which I use every day to get around my company’s web filters and scanners (I mean…I use it to secure my internet traffic in public places…) So I’m already very comfortable setting up and configuring Linux routers, which would make it that much easier for me to spin up in this new role at Google.

After the simpulan placement meeting I took several minutes to review my notes and then relayed my preferences to my recruiter. The long story short is that I wanted to join NetSoft and I found out after a couple days that I got my wish! It turns out it’s not hard to convince the project manager that you’re a good fit, because it seemed like they already thought I was a good fit going into the meeting; it was up to me to deliver on that expectation. I just listened carefully, asked thoughtful questions and talked about what I like to work on and how it relates to the position. They already knew I was a skilled coder (they said that to me directly) and would be technically capable of everything involved in the position, and they did not quiz me on anything. I got questions like, “Are you familiar with SNMP?” and I answered simply “Yes” without having to substantiate it. It really wasn't an interview, just a conversation about wants and interests.

VP Reviews

Even after hiring committee approval and you have a team lined up, you're still not all the way there. At this point you've got to be like, OMG another step of approval? Yes, every offer at Google is reviewed and approved by a VP and then again by a Senior VP. At one point not too long ago that person was Larry Page himself, but now it's Urs Hoelzle. So my recruiter worked with the "compensation team" to generate an offer letter and it went in front of both VP's the following week. I was asked what I would like to make and I gave them a high range, but my recruiter prepared me that it's not going to be that much and I should lower my expectations. By the end of the week I found out I was approved by both VP's and got an offer!

The Offer

Receiving the offer gave me complex emotions. Firstly I was elated that I finally made it, because I knew how much I wanted it and how hard it is to get to that point. But I was frankly underwhelmed with the base pay they were offering. In terms of cost-of-living adjustments in the bay area, I am going to have significantly less buying power when I get there than what I have here in Michigan. They didn't even try to match my current salary (adjusted for COL), instead giving me a low-ball offer that's only slightly better than what a fresher would make. I am an expert negotiator, and as such I know when I've got no leg to stand on at the table so I didn't even bother with a counter offer. It's like I said, I've got almost no "real" professional software development experience except for a couple years split between two jobs, and I don't have an advanced degree that can command a greater salary. I trust the incentive structure at Google and I believe them when they say to focus on the bonus and perks, because that has always been my attitude ever since my days in direct sales where I was paid 100% on commission. They place a large emphasis on performance and results, which I am great at producing, so I am confident I will be able to prove myself and earn a higher salary in the years to come. Also, if for some reason my salary stagnates and I'm not getting nominated for promotions by my manager despite doing good work, they said they have a process of nominating yourself for promotions, which will be decided by something like an arbitration committee which doesn't include your manager. So they have quite a democratic process when it comes to raises and bonuses, which makes me less worried about taking a hit to my current standard of living.

I read through the offer immediately upon reception, and signed it just as quickly afterwards. I got to put in my two weeks' notice that same day which was a great feeling, because not only am I leaving a job that's not right for me I am joining the #1 best company to work for, at least according to current research, and I'm moving out to Silicon Valley (basically for free) where the opportunities for a software engineer are the greatest in the world. Next week I'll begin the relocation phase, which should be very easy because I'm single with no kids and I rent - so I'm extremely portable. This is the perfect time in my life to take on something like this, and I'm not going to waste the opportunity!

INFO LOWONGAN KERJA TERBARU KLIK DISINI

Iklan Atas Artikel


Iklan Tengah Artikel 1

Iklan Tengah Artikel 2


Iklan Bawah Artikel