The job hunting process was a short but stressful few weeks for me. There were some things that were more effective than I expected and there were also things I wish I had known when I started. To save you the hasssle of having to go through what I did, I’ve compiled a list of the 6 key things I did to secure my first job.
1. Make a portfolio of a few standout projects
I’ve reviewed the resumes of other bootcamp grads where they only listed one or two partially completed projects. They don’t have to be perfect (my glitchy Phaser.js game isn’t), but they should show the progress you’ve made as a software engineer.
For example, if you list React as a language you know, you should have at least one React app in your portfolio. If you don’t have work experience as a developer, a portfolio of at least three projects is critical.
These also shouldn’t be tutorials; get creative! The more passionate you are about the project, the more effort you’ll put into it. This passion will likely also extend to how you’ll sound when you describe it to your interviewer. (Bonus points if you make your own portfolio website too!).
You should also be ready to discuss your project’s strengths and weaknesses with the interviewer. Several of my interviewers pulled up my Github and asked me to walk through my code with them. I definitely fumbled the first time I had to do this since it had been weeks since I had looked at the code! Preparation is key.
Afterwards, I made sure I could navigate around my projects on Github and elaborate at length one tough challenge I solved in each project.
On the topic of Git, all my interviewers were impressed that I had experience using Git for version control and collaboration. I recommend familiarising yourself with Git + Github. If you’ve never used Git for team collaboration, I would definitely recommend making your first PR to an open-source project. Good Git habits also go a long way. One of my interviewers just stepped through my commit history to see how I “think,” and I was very glad it was a project with good commit messages.
2. Prepare for the technical interview
There are lots of problems with the way tech interviews are done, but the fact is that for many companies white-boarding is here to stay. There are tons of great resources out there to practice this (Pramp, InterviewCake, and of course Cracking the Coding Interview to name a few).
I have to confess that I struggle with this a LOT — my mind tends to go blank under pressure. But the most important thing is that you practice thinking out loud. Complete awkward silence during an interview is the last thing you want, and the more you think out loud, the more the interviewer will know how far you’ve gotten (and be more able to help you, if they’re so inclined!).
I also just bought a whiteboard and dry erase marker so that I got used to working without a code editor (trust me, it’s jarring going from coding with the aid of a linter to a blank wall!).
There are few topics with which any front-end or full-stack web developer should be comfortable. These include the event loop in JS, promises and async/await, the CSS box-model, CSS specificity weights, and ways to speed up the loading times of a web page. I’ve been asked questions about all of these more than once.
3. Define what kind of company or role you want
In the beginning of my job search, I made the mistake of casting a very broad net, with a “beggars-can’t-be-choosers” mindset. But no matter where you land, you’re going to be devoting the majority of your time to work. What’s the point if you can barely muster any excitement about going to the office, or worse, dread it?
Making a list of priorities for your new job will help you a TON in staying in charge of the job-hunt, instead of letting the job-hunt run you. My top priorities were:
- Opportunities to solve challenging problems that interest me
- Good work/life balance
- Opportunities to work with a modern tech stack
These priorities led me to focus on jobs at companies where there was a healthy work culture (no working nights and weekends). I also wanted to used modern frameworks. They also had to have a vision and mission that I could get behind.
Also, remember that interviews are not just a time for the company to evaluate you. Often you’ll be able to find warning signs if the company is toxic or not a good fit. I encountered one company that issued a long coding challenge before even talking with candidates. Another company was working on a fascinating product, but my interviewers bristled when I brought up work/life balance. I could go on and on about all the warning signs I experienced.
Always, always ask questions during interviews. It shows that you are serious and interested, but can also help you detect these red flags.
4. Stay organised and track everything
So you have some killer projects under your belt, fully prepared for the technical interview, and have a target company in mind. Now it’s time to start applying for jobs. But holy moly, keeping track of dozens of applications can be a nightmare! I used to keep applications in folders on my computer, but it got unwieldy and cumbersome.
I ended up using Airtable instead to track all my applications. I used it to track the job listings, cover letters, any email or written communications, salary ranges, contacts, meeting logs, and more.
Here is a link to the template I used. (For all non-spreadsheet nerds out there, Airtable is like the love child of an Excel spreadsheet and a relational database.) One thing I love about Airtable is the ability to link between records in different tables. This allowed me to keep a thorough list of company contacts and individuals on the “People” page, and companies on another.
But why bother staying this organised?? Besides satisfying my love of spreadsheets, it makes it a lot easier to pinpoint strengths and weaknesses in your job search strategy.
For example, here is a breakdown of the state of my job applications after I had gotten the job:
Out of the 40 applications I sent, I received no response from ~50%, and job offers from 20%. Not bad considering the shot-gun approach I had for sending out applications. But, still not as high as I would have liked.
But if we take a look at the jobs that I had an opportunity to interview for:
Things look a lot better. I have a 50% offer rate. For a quarter of the jobs I interviewed for, I was still between rounds of interviews when I accepted my job offer. So they also might have turned into offers if I continued interviewing with them. I was only rejected by one company after interviewing (and that was likely because I laughed when I found out their average workweek was 60+ hours — a rather awkward interview!).
Thanks to my meticulous spreadsheet, I realised that as soon as I talked to an actual person at the company, my odds of getting an offer went way up. My interview game was mostly on-point, but my ability to get that interview was not so great. If my job search had lasted a few more months, I would have definitely switched up my strategy. I would have spent less time writing a ton of cover letters and applications, and more time networking and cultivating referrals.
Which brings us to my next point…
5. Write a meaningful resume and cover letter
Instead of writing lots of low-quality applications, spend more time writing highly-tailored applications. After all, a resume or cover letter with typos or grammatical errors will get rejected immediately. Resumes that are more than one page long usually get rejected immediately.
And while generic cover letters might not get rejected immediately, in a sea of job applications, they really don’t do anything. Take a few minutes to visit the company website, and come up with a genuine reason why you’d like to work for them. If you can’t, maybe you should take that as a sign that it is not the right company for you.
Either way, try to tailor your responses as much as possible and avoid copying and pasting any templates you find online.
I could write a whole article on resumes alone. But in general, you should highlight the most relevant technical aspects of your previous jobs. For example, I used to work in nonprofit development and fundraising — nothing about the job title screams “web developer”. However, I made sure to highlight my work on migrating data and managing fundraising software. In addition, I placed my top three most relevant portfolio projects at the top of my resume. Thus, my technical ability was demonstrated BEFORE my work history.
Personally, networking is not my strong suit. I’m an introvert by nature and find it hard to mingle in large group settings. In spite of this, I dragged myself to local meetups, and sometimes I even had fun chatting with other techies.
To be honest, the vast majority of the meetups didn’t result in any job leads. But the handful that did really paid off. In fact, the job that I eventually secured was one that I learned about through someone I met at one of these meetups!
As such, I highly recommend putting yourself out there and attend as many meetups, lectures, and Slack groups for tech professionals as you possibly can. Even connecting with people/companies online via a social network such as LinkedIn is helpful. The best jobs are often never even posted, so it’s important to build up and expand on your professional network even as a newcomer to the industry.
And remember — this is a mutually beneficial exchange! Many companies offer referral bonuses to employees, so it is often in their interest to lend a helping hand too.
Avoid settling for less, and negotiate, negotiate, negotiate
At nearly every position I interviewed for, at some point, I was asked what my target salary was. This was frustrating, as common knowledge dictates that the first one to fold is in a weaker position for negotiations. At the same time, you don’t want to waste your time interviewing for a role that falls far below your desired salary range.
After fumbling with this question a few times, I finally went to conduct some salary research. I looked up salary estimates for developers with my level of experience in my city on websites like Payscale, as well as a salary survey from my local tech meetup. At larger companies, you can also look up salaries on Glassdoor, so you can be surer that what you are asking for more or less aligns with theirs.
So whenever I was asked what my salary requirements were, I said: “My target salary range is $X to $X. However, money is not the most important thing. I’m really looking for a company where I can continue to grow and contribute to the team.” This was basically my way of stating my target salary in the politest way I knew how. I stated a range to express my flexibility but made sure that the bottom of the range was something that I would be happy with.
Then, should you receive an offer, never be afraid to negotiate. It never ever hurts to ask! You can also negotiate on other things besides salary. These can include vacation days, delaying your start date, and sign-on bonuses, which can be more flexible than base-pay.
Thank you to all of you who made it this far! I hope that you found this helpful in your job search. My last piece of advice is this: don’t worry about just getting a job. There is a ton of demand out there for software engineers, even outside of the major tech hubs. If you’ve studied and prepared, you WILL be able to get a job.
Focus on getting the right job — a role that involves working in technologies that you love, at a company that treats its employees well. It might not always be possible to get both at your first tech job, but once you get your foot in the door, pursuing the next opportunity will get a lot easier. It only gets better from here.
Be kind to yourself, and take care. Good luck!
This article originally appeared on freeCodeCamp.
HackerTrail is a curated marketplace exclusively for IT talent ranging from developers to infrastructure specialists to data scientists. Using clever technology and gamification, HackerTrail connects the right candidate to the right job opportunities with top companies across Southeast Asia.
Get your first engineering job by checking out which companies are hiring for recent grads on www.hackertrail.com.