To land a software job you need to be prepared for each stage of the interview process. It begins with catching the attention of an employer, involves coding, and ends when both you and the company agree on an employment offer.
In this article I am going to go through each stage and cover what I have learnt over the years, which I still apply to this day when seeking new jobs.
Step 1 — Getting your Foot in the Door 🚪
So you have just graduated, or are feeling really confident in your self-taught skills, and you are ready to fire your resume across the Indeed, LinkedIn, and Glassdoor landscape. That is what I did at least, applied to about twenty to thirty roles I felt I could fill and proceeded to not get a single response.
I was crushed. All I wanted was to begin my career in software and nobody would even let me interview. So I spoke with a friend that already worked in industry and she asked two very impactful questions. First, to see my resume and second, if I had been writing cover letters.
In my final semester at school we had had a small course on resume building so I was feeling pretty confident that it was top notch. She showed me hers however, and I was blown away. Whereas I had this drab, monotone, black and white piece of paper who’s most enticing feature was probably the line separating my work experience from my education. She, on the other hand, had this awesome, stylistic, professional resume with colour, skill bubbles and even a couple graphics.
I immediately decided that I wanted a resume like hers so I threw that boring old resume into the trash and spent a few hours over the weekend in photoshop creating something I would love to receive if I were an interviewer. You can see what an in depth article on my resume right here.
With my resume looking all spiffy I turned my focus to the other task at hand, cover letters. I began applying again, but this time only to positions I really wanted to work with. It was quite a bit slower as each application involved a personalized cover letter. Within a week I has submitted about five applications and every single one of those companies got back to me for an interview.
I have an article going over an example cover letter right here.
In fact, one of those companies was Cisco, which ended up being my first job, and I was told by my manager that one of the main reasons he called me back was because of my resume.
Step 2 — Acing the Informal Interview 🤙
So your fancy pants new resume and cover letters caught they eyes of some software companies and they want to talk to you? Fantastic! This interview is probably going to be really relaxed, potentially with a recruiter. So while they will be interested in your experience, you shouldn’t worry about any heavily technical questions, but definitely practice talking about projects you have worked on during school, during internships, or just personal projects.
Despite it being relaxed, this interview is important, and one thing I cannot stress enough is that a large part of the hiring process is the company finding someone they would actually want to work with. You need to be friendly and personable. it doesn’t matter if you believe your coding skills are top shelf. If you seem like you wouldn’t mesh well with their teams they won’t hire you.
In my last interview I told my interviewer I started a bread baking club at my previous job, she told me she always wanted to learn to bake bread and I jokingly told her that if she hired me I would start another bread baking club. While remaining professional I kept the conversation really friendly and I got called back for another round of interviews within 24 hours. Imagine your friend is asking you about your work experiences, now aim for a slightly more professional response.
After the first informal interview you might have another informal interview with a software engineer or manager. This will be similar to the first interview but the questions will be a lot more technical. Make sure you can answer any questions about the content of your resume or cover letter and practice explaining some of the finer details of projects you are proud of.
Two final tips: First, research the company before this interview. It is very common to be asked why you want to work for them and you don’t want to be sitting there trying to make something up. Second, prepare a couple of questions for the interviewer. It also shows initiative and genuine interest in the company. My go to are usually: “What is your favourite aspect of working for company x?” and “Does the company support individual learning and development and if so can you give me examples of how”
Step 3 — Preparing to Code 📚
You just charmed the pants off of the first interviewer and they want to proceed to the next step of the interview process. You are going to get either a coding task, or have to do some problem solving.
While hunting for jobs you should be putting a fair bit of time into coding interview prep, my go-to prep material is made up of the site leetcode to practice algorithm solving, and the book ‘Cracking the Coding Interview.’
I will also use YouTube tutorials to brush up on any topics I need for the role, and if you would like you can read an article I wrote on Big O Notation here, which is a popular software interview topic you will be expected to know.
Those resources will provide nearly everything, and anything role specific you can just search for online. Preparing for the coding interview is a game of practicing, practicing, and practicing more, and is not just about covering the exact problem you might face, but also strengthening your problem solving skills so you can think on your feet.
A coding interview is just like an exam, the more time you put into to preparation the better you fare.
Step 4 — Showing them what you got 💻
This will be an in-person or over video call coding session. You will be given a problem to solve,
If you get a coding task, it will be a little bit different and might involve coding a small scale project over a few days. If this is the case, communicate well with your correspondent as you progress and give it all you got. Sometimes you will have a coding task followed by a coding interview so algorithm practice is always necessary.
If it is a standard coding interview it will be a small block of time where you code up algorithms to solve problems. This is where the strong understanding of data structures, as well as good experience with problem solving will shine.
Same as with the coding task, communication is very important. Talk to your interviewer throughout explaining your thought process. They want to know why you are making the choices you are making and if, hypothetically, you are unable to solve the problem, it looks a lot better if they knew what your ideas were. Maybe you were really close but if you don’t communicate they won’t be able to point you for it.
Plenty more details on preparing for this part of the interview can be found in ‘Cracking the Coding Interview’
Lastly, it is okay to ask questions or for clarification. It shows initiative and that you are serious about requirements.
Step 5 — Time for a Conversation about Salary 💸
You dazzled them with your resume and cover letter, charmed them during the informal interview, and impressed them with your coding skills and they want to hire you. So they send you an offer. What now? Do you accept or do you negotiate the salary?
Salary negotiation, did you even know that was a thing? I always figured the company told you what they would pay you and you thanked them profusely for allowing you to work for them. Not in this industry! Software is one of those fields where salary is unclear. Each company seemingly pays differently based on a multitude of reasons, meaning you can negotiate your worth.
Money won’t buy happiness. For me, however, a larger salary means better food and more comfortable living, two things which make me quite happy. Something I was never taught in school however, was how to negotiate salary, let alone that it was a thing.
Rather than explain the details here I will provide you with a long but amazing article I read when I was learning about salary negotiation. I promise you it is worth the read. Even if it were to take you an hour to get through it, which it probably won’t, we are talking about how to negotiate salaries for the entirety of your career. It may very well end up being the most well invested hour of your lifetime.
Lastly, remember! A company isn’t doing you some great favour by offering you a job. Your skills are highly valuable and are what got you to point of receiving an offer. A company should be lucky to have you.
P.S. You might not be comfortable negotiating for your first job but it is extremely handy to learn what it is all about and when to negotiate.
Step 6 — Celebrate! 🎉
Tell your friends, your family, and your cat. Treat yourself to a meal, and be proud of your accomplishment. Landing a software job can be tough, especially your first one.
Good luck in your software career, I genuinely find that it is a great industry to be in. One that will keep you learning for the rest of your life and will reward the effort you put into it.