If you’ve been a software engineers for a little while, you will always heard that new grads performed much better in job interviews than experienced engineers in average. It sounds weird, right? Experienced engineers have years experiences in software industry and have interviewed and been interviewed for many times before, they should always have better performance. However it is not the case.
From anonymous statistics collected by Gainlo, for general technical interviews more than half of new grads performed better than experienced professionals and some engineers with years experience may even failed in the simplest questions.
So let’s look into this interesting issue and this post will give experienced developer tips on how to prepare for an interview.
Strengths and weakness of experienced engineers
To better understand why new grads performed well, it’s important to be more aware of experienced engineers’ strengths and weakness.
Working experiences is no doubt the #1 advantage of experienced engineers. from our mock interviewers’ feedbacks, engineers with more than a year working experiences usually have better understanding of the whole industry and also know more techniques like AWS, NoSQL etc.. In addition, they tend to have better communication skills and describe their ideas much more concise and clear.
However, several weaknesses are quite obvious. Most interviewers mentioned that experienced engineers are usually slow to code the solution or even fail to complete. They often came up with a high level idea very quickly, but when they tried to nail down details, it often took more time than a new grad. Besides, although they know a lot of latest techniques, many of them can’t describe those techniques clearly or correctly. In other words, many experienced engineers know no more than few fancy terms.
So we’ll cover some very practical tips to help experienced engineers better prepare their interviews.
Tip 1: Take advantage of your network
Most experienced engineers have many friends and connections in this industry and when you are preparing interviews for a specific company, it’s very likely that you can connect with someone working there, which gives you a lot of advantages.
For instance, if you are aiming at software engineer position at Uber, what I suggest you to do first is to go over your Linkedin/Facebook/Twitter/G+ connections and try to reach out someone working at Uber. Sometimes you may ask your friends to refer you with a Uber engineer, but you should always try this approach in the beginning of your preparation.
After that, no matter it’s a phone call, email or coffee chat, I’d like you to accomplish the following things:
- Ask for referral if possible. Most people are willing to do this as many company have referral fee program and they have nothing to lose if you don’t pass the interview.
- Ask as many information about interview process as possible. If they have gone thru the interview process, you can get informations like interview style/rounds, interview focuses like general technical interview or project based interview, things to keep in mind etc.. If they happen to be an interviewer at that company, you may even get to know the hiring process if it’s not confidential.
- Materials that are helpful to them. It’s likely that these materials have overlaps with the interview.
Tip #2: Do enough investigation about the company
Many new grads came to interviews without even knowing what the company is doing, which might be fine for students, but it’s definitely not acceptable for experienced engineers. It won’t take you much time to prepare this, however it may make a big difference. Things you’d better to investigate including:
- What the company is mainly about
- What is its business model
- What are its competitors and their weakness and strengths
- What are its tech stack
- What is its company culture
It’s very important to prepare the question: why do you want to join XXX. Of course there’s no standard answer for this and everyone is quite different. But apparently answers like “I don’t know” or “XXX is a better company” is not that good.
Tip #3: Prepare well for data structures and algorithms
This is exactly what new grads excel at and it’s even more important for large companies like Google, Facebook, Linkedin etc.. I know that it might be years since the last time you took a look at a coding puzzle and those stuffs are never used in real world, however they are the foundation of computer science and one of the best and most efficient ways to evaluate a candidate.
First of all, it shouldn’t be a problem for you given you have years experiences and had gone thru this process at least once before. All you need is just picking up what you knew before and be more proficient. Experienced engineers generally will spend less time to prepare this well compared to new grads and the point is really about whether you pay attention to this or not. Some people are overconfident about their memories and they’ll learn this in the hard way in a real interview.
Second, with real industry experiences, it’s very likely for you to have better understandings of those coding questions. Actually it’s a great chance for you to refresh what you have learnt while at school and combine them with what you did in industry, which is what new grads won’t have.
Tip #4: Don’t be overconfident about your technical strengths
I never worry about the communication skills of an experienced engineer and in fact, it’s very easy to distinguish them from new grads in interviews as they tend to be much more professional and confident. However, some of them are more good at talking (especially high level ideas) than doing, you should really pay attention if you fall into this category.
For instance, you may be working on backend especially database stuffs for many years, which however doesn’t necessarily mean that you know everything about database and more likely you only know a small fraction. There are various reasons like you may working on a small components in your team and everything has been abstracted well so that you don’t need to know them deeply or database, NoSQL are really a big topic and it’s almost impossible to know much about it within years.
As a result, I would suggest:
- Tell people what you’ve been working on over the past X years instead of telling them you are an expert.
- Be honest about things you know and you don’t know because it’s very easy to tell if you are bragging.
- Spend enough time to better understand/learn your domain knowledge. If you are working on something highly abstracted, it’s very likely that you are not aware of many important details and concepts.
Instead of making a 100 bullet points tips, I’d like to suggest these four most important points to experienced engineers as they are very practical and shouldn’t be hard to work on.
Experienced engineers should at least have equal chance of being hired compared to new grads, and if limited preparation time is a problem, you should always find ways to solve it like night and weekend, or even consider taking a short vacation break.
Do you have other ways to help experienced engineers to ace their job interviews?
If you have more questions about interview, leave a comment or check Gainlo.