Editor’s note: Pedram Keyani has been an engineer at Facebook since 2007. He is a manager on the Site Integrity team, the inventor of Keg Presence and a Hackathon enthusiast.

Looking for internships and jobs after college can be exhilarating, especially for people with engineering and other technical expertise. In an otherwise tough job market, demand for software engineers is higher than ever right now. You may find that companies are actually competing to pay you for the knowledge you worked so hard to acquire in school.

But as pumped as I was when I started out, I also felt a lot of stress: the uncertainty of facing an interviewer; the big differences between companies; the difficulty of deciding which company would be best for me.

Companies, like people, have distinctive personalities. Just as you won’t get along with every person you meet, you aren’t going to get along with every company that offers you a job. And vice versa. To figure out your best fit, you’ll need to ask some meaningful questions to help you figure out what you value beyond the salary. What is the pace of work? What kind of bosses would you like to have? Will that fast-growing start-up be around a year from now? Will that big, established company be boring?

I would love to say that if you are a talented engineer, Facebook is the obvious place for you. But it wouldn’t be true, because the fit between a person and a company is more complicated than that. It’s not just about matching up technical skills and money. It’s also about whether a company’s culture and mindset resonates with you. In other words, you should be interviewing the company at the same time they are interviewing you.

But since you have to get an internship offer before worrying about which company to pick, let’s go over the nuts and bolts of that process.

What They Didn’t Teach You in School

When you solve problems for school, you’re usually writing on paper or using your keyboard. But if you’re given a problem to solve in an internship or job interview, you will be doing something more: you’ll be projecting the kind of person you are. Your words will indicate what you know, and your demeanor will indicate how you think and what kind of disposition you have. Are you calm and patient, or restless and energetic? Confident, cocky or humble? Can you communicate with those around you? There isn’t a “right” or “wrong” type, but the interviewer will be taking it all in.

To prepare yourself, I have three words for you – practice, practice, practice. Interviewing well is a skill they don’t teach you in school, but it’s crucial. Fortunately, you can gain the basic skills you need in a Saturday afternoon.

Start by picking a few fun programming problems, printing them out and taking them to a whiteboard. To simulate the stress you might feel in an interview, time yourself as you write the solutions and talk them out. Don’t worry if you get tripped up — interviewers are more interested in how you wrestle with the problem, and whether you keep working at it, than whether you come up with a perfect answer. Doing this a few times should make the format feel more comfortable so when you get to the interview, you’ll look less stressed because you will be less stressed. That’s important, and it will give your interviewer a better sense of who you are.

Sampling the Buffet

Assuming you passed your interviews, you may have several different internship options. This is when the fun begins. My advice is that you should never intern at the same place twice, even if it’s a huge company and you can try a different group. Why? Because internships are like appetizers — you get to try out different bite-sized morsels and see which ones you like best before diving in to the main course. Before starting my first real engineering job, I had internships at four great companies, from Sun Microsystems to Google, and each gave me a very different taste. Sure, you may like the company you were at last summer, but you might love the next company. Use internships to go to big companies, small companies, companies near home and companies in different states or even countries. Why not? What do you have to lose?

The Main Course

If you do well in your internship, you may very well get a job offer at the end of the summer. If so, great! But if not, don’t worry. You now have strong work experience and will know what to expect in the interview room.

But since even the most thorough practice can’t fully prepare you for interviewing at your dream job, my advice is to line up interviews for companies from least desirable to most desirable. By the time you are at that last interview, you’ll be a pro.

In that interview, it may help to act as if you already have the offer. You shouldn’t be arrogant, but it may be helpful to pretend that you have to decide by the end of the day if this is where you want to work. This is when it gets interesting, because now you’ll be interviewing the company instead of the other way around. It can be tough to get the answers you need, so ask questions that can reveal concrete details about how the company works. Here are some questions that worked for me. See which ones are important to you:

How quickly does the company move on ideas (what is the typical time between releases)?

What would it take for an engineer to test out an idea on the live site/product?

Are groups very distinct or do they work in a more fluid manner?

How often do people move around between teams?

What is the rough ratio of managers to direct reports?

Do they have some sort of formal or informal mentoring program?

How much are you going to learn there?

Do they offer opportunities to grow and try new things?

The Negotiation

Let’s assume that you got the offer (hopefully multiple offers). Before I get started with specifics, let’s deal with the elephant in the room: money. Most of us don’t like talking about money or acting as if it’s important. That’s fine, but you should be prepared for that conversation because the only time you can negotiate your compensation is before you start. Once you have signed on, your pay is entirely based on your performance and you won’t have much opportunity to re-negotiate (other than by being promoted).

Your offer will likely consist of a salary component and an equity component, and both parts are fair to negotiate. Each company will have its own range for new hires based on factors like the candidate’s school, degree, and interview strength. It’s hard to advise exactly how to

negotiate, but don’t be afraid. If you think you want more salary, ask for it and see what they come back with. You can negotiate until the recruiter says, “this is our final offer” or “this is the best we can do.” At that point, you have to decide whether to take the offer or politely decline.

Equity is a bit more nuanced. You can’t simply look at the number of shares a company is offering, or even their current value. The big question is how much you think the company will grow in the future. This is the classic risk/ reward calculation, and it’s a judgment you have to make for yourself. Big, established companies usually offer less equity than small startups because their futures are more secure. A startup has to offer you more stock because it may be gone in a few months. You face two questions. First, how bright do you think the company’s outlook is? Second, what’s your appetite for risk versus reward?

During this process, you will be talking to a recruiter who serves as the company’s ambassador to you. Even if he or she casually asks how much salary or equity you want, know that this isn’t a casual question, and it’s not wise to throw out a number in that kind of conversation. You haven’t had a full-time job, so you can’t be expected to have a reasonable sense of what’s fair. It’s better to tell the recruiter that you haven’t thought about exact numbers but are excited to see what your offers look like. The recruiters aren’t trying to cheat you, but you are both part of a negotiation and each side has its own interests.

Your First 100 Days

A new job can be rough because you are starting from scratch and have to prove yourself. Don’t worry, this phase will pass. With every task and project, you will learn something new and start to take on bigger tasks. It’s important to remember that the people around you are there to support you and help you get up to speed (if you’ve picked correctly). You are going to make mistakes and it’s going to suck, but you will learn from the mistakes and keep going.

When things get tough — and they will — don’t beat yourself up with thoughts like, “I’m not smart enough” and “everyone around me knows more.” The truth is that everybody was new at some point, and everybody has strengths and weaknesses. If you are having a hard time, ask your manager or mentor to tell you about their first jobs or internships and the issues they dealt with. A little perspective goes a long way. Instead of agonizing over your stumbles, focus on doing what you enjoy and give it your very best shot. Trust me, the rest will follow.

[image via Flickr/felixtsao]