I went to dozens of tech interviews over the years. The experience is always different but I could not help to notice a pattern that quickly made me realize that solving coding challenges are not as important as I thought.
Often times when a developer is preparing for an interview, there is this strong pressure on fine-tuning problem-solving skills. This can be a great way to prepare depending on the type of role you applied to.
There are a lot of mixed feelings on how the tech interviews should be conducted but I always enjoy interviews because they always teach me things about the industry and more importantly, things about me I was not even aware of.
Entry-level positions
If you applied for a developer job there is no doubt you can code but coding is different than solving problems. Interviews for these types of positions normally focus mainly on two things:
- Your attitude towards learning and exploring new things;
- Your ability to code and find solutions;
“Newbies” should be learning-driven. It is very important that you show that you are always trying to learn new things and are not afraid of new challenges. You do that by showcasing your personal projects, solved challenges, and certificates, all hopefully acquired within the last 12 months which shows your reluctant drive to improve your coding skills.
For this level, it is important for you to ace your coding interview challenge. Based on about 50 interviews I went to in my career, I would say that perhaps entry-level coding challenges are more complex than senior-level challenges. They are designed to filter out the poorly skilled ones by tapping into problem-solving skills most don’t have.
Work experience does not matter much here but having some can help. Your work and education should speak up for you. The more things you build the better are your chances.
Mid-level positions
At a mid-level, there are new challenges in interviews. With some work history and experience, there are more expectations put on you. For this level, interviews focus on a few things:
- Your problem-solving and communication skills;
- Your personality, attitude, team player characteristics, and ability to take ownership of things.
Here, the interviewers expect you to communicate well, especially when solving the coding challenge. That's why they bring you to a whiteboard coding section because they are interested in the way you think when solving problems, not much in your code.
Because of that, the coding challenges are easier so you have time to solve and fill the gaps talking over your solution. The key secret here is how you think and communicate your solution and process with the interviewer. You may fail to find a solution and still get the job.
The most important part of the interview is your personality check. They ask you questions on scenarios in the past to see how you react and based on that, assess what kind of team player you are.
It is very important that the team likes you and often times the interviews are conducted by team members. You must match the team's energy and they must be able to picture what it is like to work with you. The goal is to find a good fit for the team since you already have the experience. Technical skills can be taught on the job but attitude cannot.
Senior-level positions
At this level, with long work history, everybody knows that you can code. They know you have been part of multiple teams and built multiple projects, hopefully even leading different projects. There is not much to test on the coding side and the interview is based solely on three things:
- Your ability to lead, drive and take ownership;
- Your software design and architecture skills with a focus on the customer, product, and business;
- Your personality along with leadership and communication skills;
It is very important for a senior to possess the attitude to start and lead projects. You are there to help the business and others and succeed. You should be a person that takes initiative rather than waits to be told what to do. You should take ownership and solve for the things that matter most which are the people you serve and work with, the product, and the business.
You should be able to architect and design any given solution. This is where experience and creativity are important. The ability to create something from nothing is essential. That's your critical thinking and drive proof.
At this level, you should be getting ready to transition to any higher position so your ability to understand the product impact on the customers and business is crucial. You should know what it takes for a team to succeed, how to lead a project, assess risks and different solutions, communicate goals and visions, put together proposals, manage research and documentation, understand the importance of tests, and solve any problem.
As a senior, you may not code much but are constantly helping others find optimal solutions either at the coding, team, or business level. You are essentially the support and an important point of reference of inspiration and guidance for your team and business.
Conclusion
It's essential to know what to focus on before interviews.
When you are starting out, it is important for you to expose yourself to as many problems as possible so you learn about as many solutions there are out there. As you advance, you no longer need to memorize solutions since you already acquired that problem-solving mentality and have defined a strategy that helps you reach an optimal solution all the time.
You go from wanting to have an impact on the code to people to the business.
Good luck!
How to Solve any Programming Problem A guide on how to think like a programmermedium.com

YouTube Channel: Before Semicolon Website: beforesemicolon.com

By Elson Correia