Applying For a Software Engineering Job
After being an interviewer and an applicant, I want to share my experience and give you ideas on preparing for interviews. I will go through each step you will face when interviewing for a company.
Disclaimer: My advice is tailored to software engineering positions and based on my own experience.
Resume & Cover letter
Before you even come to interviews, one small step needs to be done: writing a good Resume and Cover Letter. Most applicants get filtered out at this stage, so it needs to be good.
I am not good when it comes to writing Resumes, and I’d reach out for help as well. If you have friends who work in HR, ask them to review your CV, and if you know someone at the company who can refer you, try to reach out to them to not fall through this filtering process.
However, there are some mistakes I’ve seen while interviewing candidates at companies I’ve worked for:
Describe what you’ve worked on and, if possible, target what the company is looking for. For example, when the job ad is for a Ruby on Rails position, focus on these experiences.
Don’t add every language or technology you’ve ever tried out or programmed in.
You can mention these things in your interview, but putting a wide range of technologies and languages maybe could lead to the opinion that you’ve never dived into these technologies deep enough.
Cover & Movitation Letter
The Motivation or Cover Letter was always an essential part of scanning through candidates. Yes, skills are crucial, but motivation is something that you can not learn. Think exactly why you want to be part of the company you’re applying for. Make it personal. Maybe even creative!
If the company values people doing side projects or open-source work - show them! But the important part is that you don’t write down whatever the company has as a value. They will find out in the interviews when asking you for your experience anyway if it’s not true.
Screening and Behavioral Interviews
I’d recommend preparing by searching for typical behavioral interview questions. Then, for each question, find a story in your past that would fit and write the story down.
Then ask a friend to perform a staged interview with you and give honest feedback. If you do not interview in your mother language, I recommend you train with someone who speaks the language well or is a native speaker.
You might want to “hack” behavioral interviews by finding out what each question tries to reveal about you. But my recommendation is to follow your gut instead. This preparation is a chance for you to reflect and find out what type of employee you are.
In the end, you can likely throw away all of the stories you’ve written down because you know how you typically react in certain situations.
Live Coding Interviews
Practice, practice, practice! If you need to solve algorithms, there are countless sites with all possible coding challenges. If you are applying to a company that does not do whiteboard interviews, then you can think of possible tasks they will give you.
Train with a friend to be comfortable talking while coding, and someone else is looking over your shoulder. You will be nervous even when just your best friend watches you coding. You will maybe not perform at your highest level when, but experiencing this tense situation beforehand is super valuable.
A few things that you should consider when doing a live coding interview:
- Do not make assumptions about the stated problem without communicating them
- If you make assumptions, ask beforehand if it’s okay and explain why you make these assumptions
- Make trade-offs when you don’t have enough time but explain how you’d do it when there would be enough time
- Go into the details. Don’t forget anything in the description. Better ask twice.
- Have a process to tackle tasks. A process will help you under stress
Also, keep in mind that it’s often not about the solution but about your thought process. Therefore: try to communicate as much as possible. A great example is this staged Google interview:
You also interview the company
You want to be in a work environment where you can be successful. It needs to be a mutual fit, and I’d encourage you to ask questions – even those you “should not” ask. For example, if the company states they value diversity but the team is not diverse, you should ask why this is the case. If they value diversity, they will give you a reasonable answer, and if not – they might not be the right company.
If you do your research well, you can have a pretty good understanding of the company, its competitors, the product, or recent releases. You maybe think, “But I am just a software engineer.”. In my opinion, we’re problem solvers. You can only solve problems well if you know the context.
Find out as much as possible about the business. Prepare for that interview by reading blog posts or gathering the information you can find on the internet about this company.
Job Ad Qualifications
I’ve seen people suggesting that you are overqualified when you meet all qualifications of a job ad. I don’t think this is true. Some job ads are explicitly written with lower expectations to get a bigger pool of applicants.
Even when you match all qualifications or are overqualified, there is a chance that you will not be hired or not even get a response when applying. This leads to my last point.
Receiving a rejection
Especially when you want a particular job, receiving a rejection is not easy. However, even when you perform well in interviews, there is a random factor that you can not control. It is either a personal preference or an even better candidate who applied for the same position.
The most important thing is: don’t take it personally. It has nothing to do with you or your skills. It’s often out of your control.