The job interview process for developer positions is a notorious mix of behavior and skills tests – arcane questions, situations to induce stress, and the infamous whiteboard coding challenges. Then, there are the first weeks of your new life – imposter syndrome, working out a new culture, and learning new codebase. Also, when is it too early for a beer from the company kegerator? Here are some tips to help navigate that journey.
Let’s start with the brass tack of salary. One word: Negotiate. Lead the negotiation by NEVER giving a number first. Even with your first position, you should negotiate. If they insist on a number, you can counter with one of these statements:
“I am sure you have a salary range budgeted for this position. If you’d share that amount I can let you know if my expenses and needs fall in that range.”
“I would love to give you a number, but until I have a full understanding of the position and team I can’t give you an accurate number.”
The first job is always the hardest to land, so it feels, and you may be thinking you will be happy just getting hired anywhere. However, if your new company is a poor match that first-job high will quickly plummet. Know what job you are applying for and brush up on the skills that will be needed for the position. You can ask about this information and should get an answer. In fact, if a company cannot tell you what is really needed (not what’s in the job description) you may want to reconsider the opportunity. You should be interviewing the company as much as they are interviewing you. In order to gain a better understanding of the team dynamics and corporate culture, here are a few interview questions you can leverage during the interview process:
How is the software development life cycle (SDLC) managed?
How do front-end and back-end development teams work together so as not to block each other?
What workflow methodologies do the teams incorporated (Agile, Waterfall, etc.)?
How many teams are there?
What is the average length of employment at the company?
Is there a mentoring program for young developers?
Are mentors available on a regular basis?
Is pair programming encouraged?
If there is a remote option, how does the company support team building for those not in the home office?
Are there Skype meet-ups or on-site activities?
Be prepared to talk about code. Companies want to hire people who are excited about coding and technology. You may not be thrilled about the product, but if you are getting into
development because “you are passionate about solving problems” – which almost every young developer declares – then be excited about talking about code and technologies.
You will likely be asked about projects you have worked on so be ready to talk about a favorite project. What technologies you used and why you made those choices? Be able to identify a pain point and a success of the project.
What is your favorite technology and why? Have an opinion – passion is opinionated.
There will likely be a whiteboard challenge. Everyone hates these (save the edge case, somewhere), but they are an inevitable part of the interview process. The challenges not only demonstrate your knowledge, but – more importantly – are a way to see how you think and solve problems. The whiteboard demonstrates how you handle stress and how you will take criticism from team members. Whiteboards make people nervous so take your time. It is okay to say, “This makes me nervous! I’m going to take a minute to think this over before I start.” Take a breath and jump in to talking through the challenge. It sucks and you will survive.
You are inexperienced. The company is aware of your inexperience and you are painfully aware of your inexperience. However, they asked you to come in and talk about an open position so you are a viable option for the position. Regardless, you will likely be asked about said lack of experience with a question such as, “So, you don’t have much experience. Can you talk about that?” Be confident. Have projects to talk about and be able to identify that you have experience learning quickly and achieving goals. Use your experience as a benefit: You are eager, capable, and willing to learn. Use what you have learned about the company and identify key points that you would like to learn more about. Be able to identify how you can benefit the group.
Congratulations! You have created a rapport with a company and they have identified you as their next best employee. Now it is time to gain experience and prove you are an asset.
You will not be expected to know about the details of the company. You may be thrown into some codebase, possibly given a small project – update some HTML or a CSS element – but it is unlikely you will be asked to deploy code or do anything that could crash a system.
You may be challenged, but you may also be bored until a balance is struck between the team’s expectations of you and your actual abilities. Always be willing to ask to do more. Ask if there is something buggy you can work on. Is there some data that might need to be cleaned up? By jumping in an proving yourself you will grow exponentially and be given more responsibility.
Once you are challenged, you will hit a place where you can’t find the answer. Take that opportunity to ask good questions. Good questions involve trying to find the answer before you actually ask the question. No one wants to be interrupted mid-thought with a question that hasn’t been researched. So research your problem. Once you have done some research, and are still feeling clueless, ping someone on your team and ask if they can help you out when they have a minute. Be prepared to identify the error, show what you’ve identified as the troublesome code, and explain how you have already tried to solve the problem.
There have been books written about the topic of interviews and the job finding process, but the most important thing to do is apply early and broadly, send thoughtful cover letters, and interview your ass off. You will find a position that fits you. When you find it, work hard, be willing to jump in and do the dirty work, and the next interview process will not be as intimidating. Oh, and that kegerator … let someone else go first and never take the last one.