"Do you have any advice on finding a job as a developer?"
Many people have asked me that question, but I can't give a proper answer because I never got a developer job before. What I did was:
- Wriggled my way into a Wordpress dev role in an admin-based internship
- Run my own company
So I'm horribly inadequate at answering a question about finding a job.
But Chris Lienert is an expert at it. Chris has experience hiring and building teams of excellent developers. (A fun aside: He used to co-run CSS Singapore, which is a monthly CSS Meetup in Singapore).
I managed to grab Chris (before he left Singapore for good) and asked him to talk about the job application process. You'll hear golden advice in this interview from Chris, like:
- Chris' opinions about the hiring process.
- How to improve your chances of getting an interview
- What to do if you don't get a job
- How you should write your CV
- What to do during the actual interview
- What questions to ask during the interview
- How to answer any tricky questions you get
Note: We jumped around a lot in this 1.5h chat because Chris has so much to say about this topic. I highly recommend you listen to the audio version if you can.
To make it easier for you to digest, I also summarized what we talked about into three stages:
- Preparing your CV/Resume
- Before you apply for a job
- The interview process
It's hard to write a CV. On one hand, you want to pad it with enough information to make you attractive. On the other hand, you want to keep it short enough for recruiters to not hate you.
(Note: I use the word "recruiter" to describe anyone who participates in the hiring process).
We'll first talk about three keys to writing a CV before we talk about the structure of the CV. The three keys are:
- The Crayon Test
- Differentiate yourself
Recruiters are busy. They have to go through hundreds of applications for each job opening.
This means recruiters will scan through your CV quickly. They'll put away your CV immediately if there are any spelling errors. They will also put away your CV if you miss out any important information (like your email or phone number),
Chris calls this The Crayon Test.
What you should do is make sure your CV is clear and understandable. It should not have any spelling mistakes. It should contain the necessary information a recruiter needs to contact you.
Make sure you have the right keywords for the position you want to apply for. For example, if the job ad is for a "React Developer", make sure you have "React" somewhere on your Resume.
You need to do this because people (and machines) scan your CVs for keywords. If you don't have the necessary keyword(s) in your CV, you'll get passed over for someone else EVEN before you get an interview.
Back to the "React Developer" example. If you don't have enough confidence in React, you still need to find a way to put React in your CV. Good ways to include keywords (if you don't have the skill) is to put them under Job Experience or Community. More on this in the CV structure below.
What makes you different from thousands of other applicants out there?
If you're a fresh graduate, the answer is nothing.
You need to make it NOT nothing.
There are a variety of ways to talk about your passion and experience in this industry (even if you haven't got a job yet). Some ways include:
- Contributing the open source
- Notable Codepen projects
- Articles you've written
- Things you built before (on your own, not by following tutorials!).
- Your projects on Github
Most of these can go into the "Community" section of your CV. More on this later.
Your CV should be short. Keep it to 1-2 pages if you're starting out.
As you gain more experience and want to switch to more senior roles, your CV can go beyond 2 pages. (Chris' CV is four pages longs. It needs to be that long to show he has the qualifications for a job at his level).
The structure we're proposing here is drawn from Chris' experience. You may find conflicting information elsewhere on the internet. Take what you need.
Your CV should contain the following things:
- Contact Details
Contact Details: This section should contain information about yourself. You need to have these three items to pass the Crayon Test:
- Your name
- Your email address
- Your phone number
Summary: Summary is a one-liner of what you're looking for. You want to be clear here. For example, "I'm looking to be a frontend developer in a great team" is a good one-liner.
Skills: This is where you showcase 5-10 skills you're good at. No need to put version numbers because they're irrelevant. Example:
- Making simple web animations
There's no need to list your years of experience on a skill. It doesn't matter. If you work hard, you can become great in 12 months.
Don't lie about your skills. Only put the ones you're confident in because you may get questions on each of them.
Experience: This is where you write about your job experience. For each job experience, you should have:
- The company name
- A one-liner explaining what they do
- When and the duration you worked on this job
- 3 bullet points of what you learned from this job that's relevant for the position you're applying for.
It's a good pattern to have at least 18 months to 2 years per job experience.
If you have a time-gap between jobs, you want to state what you did during the gap. Freelancing, backpacking, etc. Stating this gives insight into how you developed yourself since school.
If your experience is not relevant to the job (like if you're a waiter/waitress), then simply say that and move on.
Please DO NOT LIST the things you DON'T want to do. It might get you the job, but you'll be miserable in it.
Education: This is where you list your education experience. Create some bullet points if you have experience that's relevant to the position you apply for. Otherwise, just list your certification and move on.
Community: This is where you can stand out if you don't have prior job experience. Here, you want to talk about what you do for/in the web community. You can include things like:
- Attending conferences
- Attending meetups
- Talks you gave
- Articles you wrote (that's not on your own blog)
- Videos you made
One way to game the keywords (if you need to) is to include the keyword in the title of your talk/article/video.
References: References are people who vouch for you. They can be hard to get in the early days of your career. Omit if you don't have any.
Some companies require a cover letter. Keep it short if you need to write one. You don't need an essay for our industry.
Your cover letter should contain these three paragraphs (in your own words):
- Paragraph 1: "Hi, I'm X. I saw your job. It looks good and I want to apply".
- Paragraph 2: Why you fit the role
- Paragraph 3: You can reach me at [this number ].
What can you do?
We'll talk about four important things you need to understand. Some may create a paradigm shift for you. They are:
- Why some job ads suck
- Imposter Syndrome and minorities
- The "Full Stack" developer
- Keep applying
The person who hires for the person and the person who crafts the job ad may be different people. This is especially true in large companies.
If the person who crafts the job ad knows nothing about the industry, they may require "10 years of React experience" even though React has been out only for 6. This is why you see jokes about bad job requirements all over the place.
To put your bias aside, people do try to improve their job ads. Chris, for example, does this.
In the interview, Chris shared about an experience where he rewrote a job ad. And he gave the HR strict instructions to post the job as it is. But when Chris looked at the actual advertisement, he didn't recognize the ad. It was butchered badly.
The key takeaway here is: Don't be too concerned about what's written on the job ad. It might have been inflated with unreasonable demands.
If you feel like a minority, you've labeled yourself as a minority. It doesn't matter if you're a white male, or a black woman, or an Asian, or anything else. Chris, for example, is a white male that feels like a minority because he doesn't fit with anyone else.
The thing about minorities is most minorities have Imposter Syndrome.
- They wonder if they're qualified for the job.
- They wonder why people should pick them over so many qualified candidates out there.
As a result, most minorities only apply to when they feel they're qualified for the job. This means apply to jobs if they can meet 80% of the job requirement. (On the other hand, majority candidates apply for a job if they meet 30% of the job requirements).
This is insane.
Minorities are usually better candidates because they have to fight through lots of barriers. They have better skills, better attitude, they work harder, and they know more about they're doing.
What this means is: If you're a minority candidate, please apply to more jobs. Apply to jobs even if you don't meet 80% (or 100%!) of the requirements.
Don't worry about meeting the requirements. Apply if you are confident you'll be able to do the job (and you're able to learn on the job).
Job ads are often inflated. Remember that.
Many jobs require a "Full Stack" developer experience. This puts pressure on developers to learn the "Full" stack (and it makes them feel inadequate in the process).
But how full is a "Full Stack"? Do you need to know databases? Do you need to know how to write server code? Design? Draw? UX? There's no concrete definition for a Full-stack developer.
Most companies don't actually want to look for a full-stack developer. They think they want to look for a full-stack developer based on what they know.
They'll only interview you if your CV matches what they think is "Full Stack". They might be wrong. And they might not even know what they need.
What this means is: Don't worry about getting a full-stack experience. Read the job description, apply, and ask questions during the interview (more on this later).
It can be dispiriting to apply for jobs. You'll get rejected (many times without even knowing). It sucks.
It doesn't matter where you are in your carrier. If you're looking for jobs, the same thing will happen. You'll still get rejected.
Chris is a top qualified candidate in what he does. He shared with me that during his job search process, he applied for 16 jobs, but only heard back from 3.
Even Chris can't get interviews at places. (I thought Chris wouldn't have a problem with finding jobs). But this just shows how messy the hiring process can be.
It's hard to get over a rejection. You're emotionally invested in the process, so it becomes especially hard.
But you got to keep applying. You have to continue to review your CV and Cover letter.
Don't give up. You'll get a job eventually if you keep it up.
Interviews are nerve-wreaking. We'll talk about five things in this section:
- Feeling nervous
- Whiteboard interviews
- Answering tricky questions
- Questions to ask
- Be honest
You are going to be nervous. You're going to be frightened out of your mind. It's normal because you're getting tested.
You will stumble as you answer questions. You will get something wrong during the interview (only to remember the actual answer later on).
It's okay to be nervous and mess up because everyone will be nervous and mess up.
Hopefully, this makes you feel better. The more relaxed you can be, the better. But don't stress yourself to be relaxed.
Whiteboard interviews suck because people test you on the wrong things. You won't be writing code on the whiteboard in your job, so it makes no sense to create a whiteboard interview.
Chris argues that interviewers should mirror the person's job as much as possible during the interview. If you're hiring a developer, you'd want to put a laptop in front of her.
If you want to observe what she does, you can mirror the laptop onto a screen so you can observe from afar. This way, the she can focus on coding.
We didn't answer how to tackle a whiteboard interview during the chat, but you might want to take what Chris said in mind. Maybe you can request for the interviewer to put you in a comfortable space to perform? It's not always possible, but it might make you stand out in the right way!.
You will face at least three tricky questions during most interviews. They are:
- What's your strengths and weaknesses?
- Where do you see yourself in 3-5 years?
- Why did you leave your previous job?
You'd want to prepare answers for these questions (and any others you can find). Chris has some thoughts on how you should answer.
What's your strengths and weaknesses?
There are no good answers for this question. What you want to do is avoid any bad answers that can skew what the interviewer thinks of you.
The key is to be honest while being tactful. You can't be boastful because they'll take note.
When you answer the question about your weakness, you want to say what you're doing about it and explain why you're good for the job.
Here's an example Chris gave:
"I was a team leader for 10 years. In the first five years, I didn't understand what being a team leader was about. I focused on myself. It took me a while to realize that the benefit I provide as a leader is what we produce as a team and not what I produce as an individual.
My weakness then was I was too focused on the individual and not very a good leader. And I did something about it."
My weakness now is: I'm not technically as strong as I used to be, because I spend more time making sure everyone is doing their job properly and happily than focusing on my technical side.
(This weakness makes a great manager. Yeah?).
Where do you see yourself in 3-5 years time?
This question gives an insight into what you're looking for. If you say something along the lines of moving up the career ladder, it hints that you're not interested in the job itself.
If you're looking to be a frontend developer, a good example is to say you see yourself coding for the company. Keep it direct and straightforward.
Example from Chris:
"My focus then is a job where I can code. My focus now is to make the company I'm working for succeed. I'm going to code really well and lead the team really well.
Why did you leave your previous job?
If you left your job because it's a toxic environment, you want to be specific about what made it toxic.
We didn't tackle this question any further in the chat I had with Chris, so I don't have concrete answers for you if you got bored and simply wanted to switch.
You need to sell yourself during an interview so you stand out. You can do this by answering questions the interviewer has not asked.
Tell them the things you list on your CV. Tell them about contributing to open source, attending meetups, conferences, blogging, and anything you can think of that helps you stand out.
It is the nature of our industry to think creatively. If you managed to solve a problem in a useful way before, talk about it. It'll put you in a good light. The more you've done this, the more you're of a right employee.
As much as the interview is interviewing you, you're also interviewing the interviewer. Remember this.
Chris says he'd ask two questions:
- What will I be doing if you sit me down at my desk and put a computer in front of me?
- What are the skeletons in your closest?
What will I be doing if you sit me down at my desk and put a computer in front of me?
This question tells about the work you'll do day-to-day with the company. If they say something concrete about the work that you align with, good!
But be aware that expectations don't always line up to reality. If this happens, Start applying for another job.
What are the skeletons in your closest?
This question means: What are the dirty things I should know about your company? To me, this question flips the "What's your weakness" question back to the company.
You'd want to hear what they want to hide. You want to test their honesty as well. If they say everything is perfect, they're lying.
Everyone will try to sell you the job if they're interested in you. They'll tell you about shiny frameworks and greenfield projects. But when you show up, they might ask you to work on legacy systems.
Always be honest. It's not going to work if you bluff.
The worst part about lying is you might get the job. And then you're screwed because you're expected to perform.
So much about finding a job is not cutting yourself out of the process.
They're only looking for one person for the job. The odds are, you're not going to get the job. So how do you NOT get eliminated? How do you move on to the next stage and meet the next boss?
You'll feel awful if you get rejected, and you're going to get rejected a lot. You'll also get interviewers who are awful and you come out of it feeling awful. But if you don't apply, you'll never get anywhere.
You nothing much to distinguish yourself from other candidates at the start. It boils down to your luck. You have to play your odds. If possible, get someone in the industry to check your CV for you. It helps.
Please thank Chris Lienert for spending his time to walk me through the interview process if this has helped you. You can reach him through Twitter.