Ask Gayle

More than a number: How much does Google care about GPA?

Gayle, I'm currently a junior at Cal Poly, and my GPA isn't great. I estimate when I graduate it'll be between a 2.7 and 3.1. Will that put me out of the running for Google and Microsoft? Do those companies really have a minimum GPA requirement? Is there anything I can do to offset my low GPA to increase my chances of getting hired?

~ Alex

Not only is there not GPA requirement, but you don't even necessarily need to have gone to college. I worked with a number of people at Google who had dropped out of college. Does that mean GPA doesn't matter? Not quite.

Both Google and Microsoft will try to use any available metrics to predict whether or not you'd be a successful employee. Once you've interviewed, your interview performance matters much, much more than anything on your resume. In fact, I never even remember GPA being discussed after someone's interview.

In the resume selection process, GPA can certainly have an impact, but it's not the only factor. Ultimately, companies are looking for a "track record of achievement," or signs that you're smart and that you can code. That can be one or more of these factors:

  • Attending a good school
  • Internships / jobs at other "good" companies
  • A strong GPA (above 3.0)
  • Big / cool projects (course projects, open source work, things you've done 'for fun')
  • Other technical work: TAing, etc

If you don't have a great GPA, that's okay. Many people get interviewed with low GPAs, but they compensate with other projects and work. In fact, that's exactly what I did (my GPA varied between a 3.0 and a 3.3).

One final thing: if you're trying to compensate for a lower GPA with other projects, the quality of your resume tends to make a bigger difference. After all, if the numbers are telling a great story, it's that much more important that you learn how to.

Read our resume tips on the links below, or check out CareerCup's professional resume review service.

What's the "Right" Programming Language for an Interview?

Hi Gayle, Does it matter what language you use in an interview with Google/Facebook/Amazon? Most of my recent experience has been with C# and thats the language I'm most comfortable with. I do have prior experience with C and C++ although in an interview would prefer to use C#. I'm not sure if that would be seen as a negative.

~ Nick

Like most things in interviews, it depends on your interviewer. Theoretically, as long as your resume lists C / C++, your interviewer could ask you to code in those.  And they might, if they happen to have a favorite question that involved C or C++.

However, in general, that doesn't happen. Most candidates code in Java, and most interviewers are fine with that. C# is pretty close to Java - so close that your interviewers may not notice or care about your coding C#.

Still, I'd recommend that you brush up a bit on the few syntactical differences between C# and Java, so that you can code in Java for your interviews.  Just explain to your interviewers the situation - most wouldn't care.

What do you all think? Does the language matter?

Ask Gayle: I left my job because I didn't like my coworkers. What do I tell future employers?

Hi Gayle, I have a question. Basically I was moved to a group that was really bad in terms of people, nature of work and my career began to stagnate. I had a vacation planned and wanted to take up a new job immediately after that. So I quit, immediately left for a vacation and back and right away applying for new positions. Before I quit, I was one of the very few people in the company who got a bonus and a letter of appreciation from the CEO.

When looking for a new job, I am confused what to tell my prospective employees. Is it fine to tell them that I quit as I did not like my new group? I am not sure if this would reflect negatively on my personality. Or is it better I tell them that I was planning a career change, so quit and took a vacation and looking for a new job now?

Could you please advise me on the best approach to take?

Thanks, Gary

Depending on how you word it, it can unfortunately reflect negatively on your personality.  Teams want to work with more positive, upbeat people - not someone who complains all the time.  Additionally, if you're complaining about your last job, a new team will fear that you'll complain about their company too.  And no one wants to take that risk.

It's better to spin it in a more positive way: what were you looking for that your old company couldn't offer (and that conveniently this new company can offer)?  I don't know the specifics of your team and why you didn't like it, but consider an answer more like this:

  • Interviewer: Why did you leave your last job?
  • Gary: I really wanted to take on a role that's more focused on the client and on feature design.  I really enjoyed at the opportunities I got to interact with clients at my last job, and I even got a bonus and a letter of appreciation from the CEO for this.  Unfortunately, they didn't have a role that would match my new focus, so I wanted to move to a faster paced firm that could offer me more of these opportunities.

A response like this shows a positive attitude while simultaneously mentioning what you're interested, and what your relevant experience is.

Ask Gayle: I am a low-level programmer. Can I get a job at Google?

Hi Gayle, I am desperate about getting a software engineer job in only Google. My dilemma is that I have worked only in RTOS (e.g. WinCE) System Software Domain in all of my 6+ yrs of overall work experience in big semiconductor companies e.g. Qualcomm, Marvell, and I have no experience in web companies.   Do you think there might be any chance for me to get a job in Google?

Thanks Avi

Google does occasionally look specifically for low-level programmers.  Scour the job openings and see if you can find something that fits your background.  However, most job openings at Google are just general "software engineering" positions, which leads to two questions:

1. Can you get an interview?

2. If you get an interview, can you get an offer?

As far as the first one, quite possibly.  You have some big name companies on your resume, and that gives you a lot of credibility.  The only drawback is that you may not have much object oriented experience.  You could try your luck applying as-is (it'll help if you can find an employee to refer you), or you could do something to boost this experience.  Is there an open source project (preferably one with Java) that interests you - one that would give you the much needed object oriented design experience?

With respect to the second question, it's really about how much you prepare for your interviews.  Read up on design patterns - the formal names aren't important, but it might be useful for you to see different ways of designing things.  Practice interview questions using object oriented design, and preferably Java.  Be aggressive about writing very clean code and designing classes and structs to hold the necessary data.

Google is desperate to hire great people, so with a bit of preparation, you can get a job there.  Good luck!

Ask Gayle: What can a student now do to prep for a programming position?

Hi Gayle, I am an international student from India and I just finished my BS in EE with minor in computer science and will be moving to CMU for my MS in computer science this coming fall.

Being an EE student, I am not so proficient at programming. Since I will be starting my MS this fall , I would like to obtain good internships during my MS which I can convert to a relevant full time positions.

My problem is that I am not sure what minimum background and knowledge is needed before I go to these interviews or be selected for them. Secondly, I am not sure which language am I expected to be really good at?  Do I have to know C inside out?  What else should my resume have to ensure that I land up an interview?



I would focus on three things:

1. Learn data structures and algorithms

Your coursework should hopefully be sufficient for this, but I'm not super familiar with your program.  Sometimes schools offer two MS programs - one for CS-undergrads, and one for non-CS undergrads.  If this is the case for you, and you're in the MS program for people without a lot of coding experience, make sure that your algorithms course is truly rigorous.  This should mean covering most of the CLRS algorithm textbook.

2. Learn object oriented programming (with Java or C++)

Formal design patterns aren't especially important for interviews, but it can be useful to see a lot of different ways of representing data.  The important thing, really, is to get out of the mindset of "throw down any code that works."  Your coursework might not cover design patterns, so here are two books: Head First Design Patterns and Design Patterns: Elements of Reusable Object-Oriented Software.

Practice these in either Java or C++.  C is generally less important.

3. Complete at least 3 "meaty" projects

Seek out the courses where you'll be doing some large programming projects.  You can also work with professors on their research, but make sure that (1) you'll be doing coding and (2) you'll really "own" a chunk of it.  You'll not only learn a lot from doing coding projects, but this will also give you material that you'll put on your resume.

As you go through school, keep in mind these resume tips for software engineers.  It's never too early to prep for your interviews!

Ask Gayle: My interviewer misled me. Can I argue?

Dear Gayle, I interviewed with a major tech company and I was asked a tough question. I started to think of a brute force solution and the interviewer said that brute force is fine.  I began to write the code and before I was even finished, the interviewer began to bombard me with questions.  His questions then led me to a better solution.  I also noticed later that I had some bugs and other mistakes in my code, but these seemed fairly minor.

I feel that he misled me in telling me that my initial solution was fine, and I ended up getting a reject as a result.  Do I have any chance to put up an argument?

~ Frustrated, WA

There's a lot going on in this question, so let me break this down.

Did your interviewer mislead you in telling you that brute force is fine (when it really wasn't)?

It is possible you got a bad interviewer who didn't direct you properly.  Bad interviewers do exist, even at the best companies.  I suspect that your interviewer was probably looking for whether or not you would notice and look for a more optimal solution, or if you would be satisfied with a "good enough" solution.  Depending on how far along you were in your interview, the interviewer may also have been thinking "ok, we don't have much time, and I want to make sure I see this candidate's code.  Let me encourage him to just get on with it."

Did this cause you to be rejected?

Again, very hard to say that this really caused the reject.  First, typically about 3/4rds of candidates are rejected at each stage, so it's almost like you have to do things really, really right to not get rejected.  Second, it's unlikely to be any one issue that caused a reject.  As you noted, you had some bugs and other mistakes.  I'd guess that your interviewer's thought was more like "hmm, I liked this guy, but his solution wasn't very good, and he had some bugs in his code, and a few other mistakes."

Can you put an argument?

No.  In high school, did you ever try to argue a case to your principal that a teacher did something wrong? Did they ever side with you? Unless your teacher's actions were egregious, your principal almost certainly sided with your teacher.  This is much the same way. Whatever you say to your recruiter, he/she will almost certainly side with your interviewer.  You're more likely to spoil your decent reputation at the company, and it's just not worth it.

That said, there are times when you should not stay silent about an interviewer's behavior.  If they say anything or do anything offensive, speak up!  Or, if your recruiter asks for your feedback, then you are welcome to share it.

I'm sorry things didn't work out for you, but you're not alone.  Interviews are hard and, unfortunately, very random.  Most of my coworkers at Google admitted that they didn't think they'd pass the interviews the second time around.  Luckily, companies understand this and let you apply again in six months to a year.

Best of luck!

Ask Gayle: What do delays mean?

Gayle: I interviewed with a company two weeks ago, and they haven't notified me of a decision.  I even tried emailing the recruiter - no response.  Does this mean I'm rejected?

~ Sanjiv, New York

In one word: no.  After you interview with a company, they will always tell you if you're rejected or not.

Delays can happen for many reasons, good, bad and neutral:

  • They are going to give you an offer, but would like to have all their paperwork together.
  • They prefer another candidate, but are waiting for her to make a decision.  You are their second choice.
  • The team is being "reorg'd" and the current headcount is unclear.
  • Your recruiter went on vacation.
  • The recruiting team is being reorg.
  • You have a bad / lazy recruiter.
  • One of the many people you interviewed with is slow about entering feedback.

Hang tight - they'll tell you, eventually.  In the meantime, feel free to politely email or phone your recruiter every several days to check in.

Good luck!