Programming Interview Advice
This a chapter of the book Get a Better Developer Job. It’s best to start at the beginning.
So you’re solving problems now and feeling confident enough to interview. Or you haven’t done anything but landed an interview, now you’re panicking and looking for advice. That happens. I can help.
Because the interview style and content vary so wildly between employers, first find out what it will be like. Will there be white board coding? Coding in an IDE? Pair programming? Work sample test? (AKA homework) And what are the topics? Will they test your domain knowledge? Do they care more about frameworks and language features, or data structures and algorithms? Being realistic, for a lot of jobs it should be the former, but it’s instead the latter.
Know what you say you know. If you apply to a job I’ve posted, I’ll ask about the skill you claim to have. Are they current? What you’re using for your current project is in the mental equivalent of RAM. What you used a couple years ago is on DVD-ROM, and everything else is stored on tape, off-site.1 You have a conundrum in that you want to list lots of skills to catch the eye of recruiters who only know how to match keywords, but then you have to answer for that in the interview. Be honest about what you know and how well you know it.
Assuming you’re a programmer, you’re expected to know one language well. You may be a polyglot, but there’s one you’d prefer to scribble on a white board. You should know core language features and libraries, and if you’re calling yourself “senior,” the best practices and common gotchas. To review:
- Pull out your old intro book and make sure you know the basics. If your language has a certification, take a look at a certification study guide. Most current certification exams (e.g., Java) are pretty thorough; it’s not like the old days.
- Read the most popular style guide. Better yet, the one from the company where you’re interviewing.
- Go to StackOverflow. Click on the tag for your language, then sort by votes.
- Learn something new? Teach it to someone else to make it stick. Blogging about what you learn is a great way to establish authority, too.
For most programmers, the next area to review are object-oriented principles and design best practices. These include design patterns, and my favorite book for that is Head First Design Patterns. Be prepared to discuss two common patterns in depth. These days, Singleton and MVC would be my choice, with bonus points for Dependency Injection if that’s a big part of your main framework.
What you study next depends on what kind of developer the company is looking for. I broadly categorize them into performance-focused engineers and app developers. Note: I cover this fully in the specialization chapter.
Companies like Google, Amazon, Microsoft, and Facebook are looking for performance engineers. Same with companies that do heavy vertical scaling (gaming, embedded, HFT, adtech, etc.). They will test you on core computer science topics, like data structures and algorithms. As you learned last chapter, there is an embarrassing amount of free and cheap material on these topics.
For app developers, review the basics of the frameworks and libraries you claim to know well (and, of course, what the company uses). Again, StackOverflow is a great resource for popular questions. Another trick is to Google “<framework> gotchas.”
If you’re front-end or full stack, make sure you understand core JS concepts like closures2 and jQuery. In particular for front-end devs, know best practices for web performance, like HTTP caching and minification/bundling. As you advance, you should understand the differences between the more popular frameworks like Angular, React, and Vue.js, including their design patterns.
For full stack/back end, review SQL! And ORM if you use it. Transaction semantics. Obviously, data is becoming more important every day, and even if the company doesn’t have a lot of it, it’s important to them and it’s growing. Security may come up as well, and considering how often companies get hacked, that’s a good sign.
In addition to that, there are behavioral questions. These typically start with, “Tell me about a time when you…” made a mistake, went above and beyond for a customer, had a disagreement with a coworker, etc. Personally, I find these hard to answer without preparation. If like me, you have a lot of management/lead experience, then once you have a situation in mind you can craft a good answer. But without preparation, what you think of will be whatever had the strongest emotional resonance. Often those are negative emotions and it may not be your best moment. For instance, when asked about a disagreement, you don’t want to bring up that time you shot a man in Reno just to watch him die.
There are tons of books on generic interview questions and answers. Check out Amazon, pick one with great reviews, and start reading (check your local library, too). The key is to come up with answers in a stress-free setting and write them down. Then practice reciting them. If you can, record it on video (You got a web cam or smart phone, right?). Or practice in front of a mirror. You can pick up any quirks, issues with eye contact, etc.
You want to do mock interviews. That’s where a friend or colleague interviews you and gives you feedback. This is invaluable.
What you don’t want to do is interview at a company whose job you don’t care about, just because you want the practice. Whenever I hear people doing this, they’re not preparing – they see the interview itself as preparation. Then they bomb it. Does it matter? Well, everyone you talked to in that interview will now write you off permanently. And they’ll be talking about it to colleagues. If a recruiting agency got you the job, how likely are they to submit you to another employer when the last one gave you such bad feedback?
The job of a recruiter is to find an employee for a job. A common misconception is that they find jobs for people. That hasn’t happened since the days of paid employment agencies. Now the companies pay and if any candidate jeopardizes that relationship, they’re gone.
I’m no fashion icon, but I do like having an edge. Or at least not losing one. How you dress affects people’s perceptions of you, even if only subconsciously. You can gain an advantage with little effort.
First, ask your company contact or recruiter what people wear to work, then err on the side of conservatism. Many times you learn what the rank and file wear day to day, and you want dress at the level of the hiring manager. Also, sometimes people say “casual” when they mean business casual. So even if it’s Florida Keys casual, dress in business casual, if just for the interview. It’s probably best to ask a company recruiter for advice rather than call up a manager and say, “Hey. So… What are you wearing right now?”
The next piece of advice is simple: your clothes should fit. Ill-fitting clothes make you look sloppy, and sloppy engineering is dangerous. Don’t let them infer one from the other. They might even wonder if you can’t afford new clothes. There is no shame in that. The problem is that companies think people with financial hardship are a potential threat (corporate espionage, theft, etc.). Sad but true.
The best fitting clothes I have were custom made for me in Bangkok by father-son team Jesse and Victor at Rajawongse. Jesse served Nancy Reagan and three sitting US presidents3, plus countless other heads of state and industry. The clothes look great, fit perfectly, use the highest quality Italian wool and cotton, and to my amazement cost about the same as Men’s Warehouse. I can’t recommend them enough, and saw Americans buying a couple weeks’ worth of clothes with the savings covering the cost of the trip. If you just got a job in finance where suits are required, use the signing bonus to visit BKK.4
But you don’t have to leave the country to look good and save money. You can go into any good department store and get measured, and if you already own appropriate clothes that size, great. Otherwise, pick something up. It doesn’t have to be expensive.
For men, there are two business casual “uniforms” that have stood the test of time:
- white dress shirt
- grey slacks
- black dress shoes and belt
- light blue dress shirt
- khaki pants
- brown dress shoes and belt
I prefer the former, as it’s impossible to screw up. Cotton blends are very wrinkle resistant. Fashion dictates that socks match the pants, not the shoes, but we may be splitting hairs. You do you.
In addition to this, you can wear a blazer. In both cases, navy blue is best because the jacket and pants should have contrasting, but complementary, colors. Definitely do not try to match the colors, as you come off like you’re wearing a mismatched suit.
Now, why would you wear a jacket in the first place? Because the sport coat’s function is form – its only purpose is to make you look good. Especially if you’re still working off that pandemic weight. Looking good affects how you’re perceived and how you’re treated, even if you’re just getting a cup of coffee on the way. That will increase your confidence, which itself improves your image, and GOTO 1. Confidence is invaluable during an interview.
That said, I have heard more than one manager publicly mocking those who wear a suit to an interview. Yes, I said manager. I don’t think that’s cool, but for whatever reason, some people have an irrational negative reaction to people who are dressed well. Again, check ahead. If their CEO famously wears a hoodie or a turtleneck, ditch the jacket.
For women, well, I took Women’s Studies in college, so I know I’m out of my depth. I’ll simply reiterate business casual clothing that fits properly.
- Sunglasses, unless you have a medical reason.
- Headphones, and for that matter, what they plug into. Texting or otherwise playing with your phone during an interview is pure folly.
- Sandals, flip flops, or clown shoes.5
- If the interview is near a working particle accelerator or MRI machine, remember to remove any ferrous piercing accessories. Especially the ones you can’t see while clothed.
I’m all for self-expression and agree clothing should not affect your chances for getting hired (assuming it provides appropriate coverage). Except it does, even when the interviewer believes it doesn’t.
Things you may find obvious, yet still forget with the stress of your job search.
For phone interviews, make sure you have a headset in case you need to type. Many phone interviews use screen sharing software to see you code. If you’re thinking of using your phone’s Bluetooth headset, test it first (one of mine didn’t work with my PC for some annoying reason).
For in person interviews, prepare a week in advance.
- Check the address, including building and room number.
- Get the name and phone number of your interviewer and point of contact.
- Map out your route ahead of time, determining how long it will take in traffic. Google maps will show average traffic on a given a day and time.
- Try on and lay out your clothes (ensures they are washed/dry cleaned, still fit, etc). Again, a week ahead of time so you have time to buy new clothes if need be. You don’t want to short yourself 90 minutes of sleep because you didn’t realize you needed to do laundry until the night before.
- Print a couple copies of your resume. Like, on paper. It’s shocking how often they become necessary.
Hack Your Confidence
Take a breath. It’s going to be OK. You’ve got this.
First, your confidence should get a boost on interview day because, damn, you look good! But even if you dress that way all the time, I’ve got an ace in the hole for you. Watch this video and do what she says. The great thing about psychological tricks is that they work on you, even when you know it.
Next chapter: One Last Thing
- Yes, tape is still used.
- If you can’t define this off the top of your head and explain the scoping rules, you’ll be in trouble.
- Nancy was their toughest customer, which is perhaps why they no longer do women’s clothing.
- Check with your accountant, but at this time, this is sadly not tax deductible.
- I once wrote sneakers, but if they’re clean and they match the outfit, go for it.