Ask Gayle: How do you negotiate offers for the big companies?

Gayle, I recently got an offer from a major software company, but it's not quite what I was hoping for. How can I negotiate my offer?

~ PV

First of all, you're off to a great start by just trying to negotiate. Most people don't even do that.

Much of the standard negotiation advice applies here:

  • Having competing offers will give you leverage
  • Know what you can get an other companies (goes back to the competing offers thing)
  • Being able to quantify your value to the company - what can you do for them?
  • Think big picture. Maybe you can't get a salary bump, but perhaps you can get a better signing bonus. Or maybe you can get relocation in cash, instead of the company directly paying for it. Or, perhaps you can get an agreement for an earlier review or opportunity for promotion.

One thing to note with big companies like Microsoft is that they often have "levels" for employees, with a small salary range for anyone at that level. You have some wiggle room within that range, but larger bumps may require jumping up to the next level. You'll need to understand what you need to demonstrate to reach that level, and use examples from your past to demonstrate that you have these qualities.

Joining Google (or any great tech company)? Don't believe management's lies - 3 tips to really succeed.

Piaw Na, an ex-Googler, wrote an excellent post titled Tips for Noogler Engineers.  Piaw correctly points out that what's great for Google isn't necessarily what's great for you or your career.  For instance:

"Interviewing. It absolutely does not help your career one bit, even though it's absolutely critical for Google in the long term. It's not rewarded, considered during the promotion process, and it burns a lot of time. Put it off as long as possible. And don't even bother with hiring committees. That's even more of a time sink. ... 20% time. Depending on your manager, it could absolutely hurt your career. triple check to make sure your manager does not take a negative view on this. I liked my 20% time, but I was well aware of the trade-off for my career I was making."

I completely agree.  I enjoyed interviewing (well, until I did too much of it), and I loved my 20% project, but he's right - it doesn't help your career.  If you want to do this, you need to accept that this will be an unrewarded "vacation."  (And, even more frustrating, once you start interviewing it can be difficult to stop.  I spent 4 hours on interviewing every week, plus another 1 - 2 on hiring committee.  Google needed female engineering interviews, so I always got assigned two interviews.)

So what can you do to succeed?

  1. Get a really good manager or tech lead: One thing that's nice about Google is that you can easily switch projects.  Before switching projects, ask around about the career history of your TL/manager's underlings.  Have they been successful?
  2. Pick high profile projects: Again, what's good for a company isn't necessarily what's going to be rewarded.  The meaty maintenance issues are important, but they won't be rewarded.  You want to pick the project that people know and understand.  You want as many people as possible to recognize your impact.
  3. Tackle the meaty problems: You not only want to be on the coolest projects, but you also want to tackle the biggest problems.  Seek out the problems that are widely understandable and have tangible, or ideally measurable, impacts.

Following these three tips will not only offer you a more successful career within the company, but they will also help you build a stronger resume when you leave the company.

Read More: Great Resumes for Software Engineers (and others)

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!