I’ve conducted many software interviews at Google. I’ve seen a few great candidates–and plenty of not-so-great ones. Whether you’re interviewing for an internship or a full-time software engineering position, these four habits will impress your interviewer.

In other words, this is what I’ve seen from the other side of the table.

1. Ask questions to clarify the problem

In the real world, problems are ambiguous. Some interview questions are deliberately murky to test how you deal with uncertainty. The solution? Ask questions to clarify the problem.

2. Listen to the interviewer

Interviewers typically don’t intend to roast you over a fire. If the interviewer suggests a change to your algorithm, they often are trying to guide you towards a correct solution.

3. Take care of edge cases

Edge cases matter. In one interview, the candidate didn’t write the base case of a recursive function. He knew it, and it was trivial, but he didn’t add it to the whiteboard. After I asked the candidate to put it up there, he rapidly progressed through the rest of the solution.

4. Step through your code

After writing a function, step through your code with an example to sanity check your logic. This helps catch bugs and shows the interviewer that your algorithm is correct. Interviewers are people, too, and if you’ve written the solution differently than the interviewer usually sees it, it’ll take them extra brainpower to determine if your code is correct.

Bonus: After the Interview

After the interview, you have the opportunity to ask the interviewer questions. This doesn’t have an effect on your scores, but I love to answer questions besides the standard “What do you work on?” and “What do you like about Google?” This is your time! Use it to get a feel if the company is right for you or not.

Also, I usually write interview reports on the same day as I conduct them. If you were to send me a thank-you email, I would already have submitted your scores.

So if you want people like me to recommend you to be hired, be amazing in the interview. Ask clarifying questions. Listen to your interviewer. Take care of edge cases. And step through your code. Do these four things, and you’ll be that much closer to landing your next software job.