The Rest of the Story

We have been in our new home for 54 days. We have found so much enjoyment on this property! For sure it has been a huge adjustment and the learning curve has been STEEEEEEEPPPPPP. We are knee deep in…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




How to Land Your First Job as a Software Engineer

Getting a job as a software engineer is never easy, but, for a few key reasons, it’s especially difficult the first time around. First, you’re not likely to have a professional network or existing software engineer connections who can make introductions on your behalf. Secondly, you’ll need to acclimatize to the standard application and interview processes for software engineering roles. If this is your first career, that’s probably also true of general application and interview processes. And finally, whether this is your first engineering job or your tenth, the process is just designed to be difficult. Because holding mission-critical applications in your hands is a serious responsibility, employers take the task of finding the best engineers seriously. As a result, the hiring process is optimized to minimize false positives and, in turn, to reduce the likelihood of hiring the wrong candidate. That is why it’s notoriously difficult to land jobs at great tech companies. Luckily, there are thousands (maybe even millions?) of engineers who have been through this process before you.

I have first-hand experience with these challenges, having recently graduated from a coding bootcamp into the peak of the coronavirus pandemic. Despite many companies being on hiring freezes, I landed a job and am now working full-time as a software engineer. Unfortunately, there was no magic bullet or secret sauce. There are, however, concrete actions you can take to improve your chances of success. If I could do it, you can too.

What follows is some advice based on my own experience, focusing mainly on what you can do to get an interview rather than how to pass your interviews. Getting through to an interview from the application stage is often the hardest part for new engineers, and, while there exists plenty of good advice on how to prepare for and pass interviews and tech tests, how to get that first interview is less well understood. Hopefully, you can learn from my experiences, and, with a bit of luck and a bunch of hard work, you’ll be well on your way to landing your first software engineering job.

A common theme you’ll see repeated throughout the advice that follows is that you should do whatever you can to avoid being a single, flavourless, data point. To illustrate, within minutes of a job opening becoming available on your favourite job board, hundreds of people will have applied. Hiring managers and recruiters are then tasked with assessing this heap of applicants, trying to pick signal from noise. It’s not hard to see how even the strongest applicants can have trouble standing out from the crowd.

The truth is that single data points — papers in a pile, blips in an applicant tracking system — don’t get hired, humans do. Humans with rich experiences and interests (and flaws!). So, it’s imperative that you do what you can to avoid the standard ‘apply now’ button and that you find another way to get in front of hiring decision-makers.

There are two ways to get an interview at most companies. First, the ‘apply now’ button, to be avoided where possible (or supplemented with other measures, discussed later). The other route, the ‘inside track’, is unlocked when someone at the company gives you a referral to whoever is making the hiring decisions — usually a senior engineer, people/HR team member, or the CTO. These people often have the authority and leverage to help you circumvent some of the traditional hiring processes, fast-forwarding you beyond the paper-in-a-pile point and increasing your chances of success.

When you attend an event, you should speak to people, ask questions, and start making connections. If you lean introverted, and that’s not your cup of tea, then you can jot down names and emails of people you find interesting and then email or message them later to strike up a conversation in a less public forum.

Beyond growing your network, attending events is a great way to learn a thing or two beyond the scope of your current role or experience. This is especially important as a junior because it can help round out your lack of experience. As an example, I made a positive impression in multiple interviews by talking about concepts which I hadn’t learned at the bootcamp I attended, but which I discovered at events. Attending events is also a good way to showcase that you like to learn, a trait which every hiring manager will be looking for.

If you attended a computer science program or bootcamp, then, luckily for you, you already have a group of peers who will form the beginnings of your professional network. Yes, you are all equally fresh-faced and looking for your first engineering jobs at the same time, so your peers won’t likely be making introductions right away. However, within a few months, they will start getting jobs. As they do, if they are performing well, their employers may ask them if they know anyone else who would be keen to join, and you never know when that person will be you.

Your alumni network also forms an invaluable support group. You can and should use it to get help with technical questions for your projects, conduct practice interviews, and compare notes about which job-hunting techniques are or aren't working. As you progress and grow in your careers, these connections can provide information about what it’s like to work for different companies and in different places, top tips for success at those companies, salary benchmarking info (depending on how forthcoming your friends are), and they can even make the introductions which help you land your next role.

The alumni network is one of the strongest value-adds of attending a bootcamp and I’m sure that’s true of computer science programs as well, although maybe to a lesser extent given their typical size.

LinkedIn is an amazing tool when you are looking for your first engineering role. Its job board is less polluted with spam than most, the profile provides a place to dynamically showcase all your experience, and, most importantly, it has powerful and free networking features.

Growing your network on LinkedIn is easy, but it's about more than just adding everyone you can think of as a connection. The bar for the strength of the relationship required to ask for a referral is low, but it’s not so low that you can be just connected — you need to have had a (positive) conversation. However, that’s not to say that the conversation can’t either start or take place in full over LinkedIn. So, who to connect with, and how to start the conversation?

Head to the job board and find a few openings you’re interested in applying to. In particular, you should look out for companies with current or former engineers/product-people with whom you have something in common. You could’ve graduated from the same program at university or the same bootcamp, or perhaps you both have a strong desire to change the world through Haskell. Whatever it is, if they’ve hired people like you before, then they are likely to again. Also, this common ground can serve as a conversation starter. You then have two options — connecting before you apply to the job or after. In cases where the job description isn’t explanatory enough for you to write a well thought out cover letter, you should reach out before. Send a connection request to a few of the company’s tech leads, senior engineers, or even the CTO, with a message attached. Here’s an example:

A few key things to note:
- Brevity. Expressive but short messages are the likeliest to elicit a response and simultaneously ensure you remain respectful of peoples time.
- Include, if not lead with, the commonality or shared interest. People are more likely to respond to members of their in-group.
- This and That, whatever they are for you, are critical. People receive tons of messages on LinkedIn, so be sure to stand out by making it clear that you care and have done some research.
- End with an open-ended question which will start the conversation off.

If they get back to you, have a back and forth and ask some more questions, the answers to which will help you flesh out your application. Many people won’t get back to you, but don’t be discouraged. This is why you should send a few messages for each company you’re interested in. As an aside, don’t worry about sending similar messages to multiple people at the same company. No one has ever turned to their colleague and said I just received this message on LinkedIn, did you receive the same one?

If you feel the job description gives enough information to allow you to write a thorough application without having a conversation with an employee, then I’d recommend you reach out after you’ve already applied. Here’s an example:

The same points as above still hold. The question about what it’s like to work there or if they have any advice are just two examples. You could also ask what the company’s current focus is or for more information about their tech stack. What’s important is that it’s something open-ended so that you can have a back and forth.

Once you’ve opened up the conversation, you also have a chance to weave in your interests which make you a good fit for the role. You could share a relevant project and ask for feedback, talk about a relevant technical challenge you’re having and ask if they have any ideas, etc. Once you’ve had a conversation, if they seem to be taking a liking to what you are all about, you can close by asking them to make a referral.

Whether you have already formally applied or not, this could look like:

Thanks for taking the time to chat. I wonder if you could introduce me to the hiring manager for the X role?

Note that one common response is “Oh we have a .com/careers page, you can apply directly there.” If you get that response, you can try a gentle nudge, as sometimes people forget they can do this.

Could I send you my CV and a one-paragraph email to forward to the right person?

With repeated attempts and some luck, you’ll find yourself on the ‘inside track’. You’ll have had a chance to stand out from the crowd and you may even be able to miss out some of the standard interview rounds because an employee has already vouched for you.

As you progress throughout your career, it would be wise to continue attending to your network, both online and offline. You can do so by attending events, blogging, and perhaps even by running your own meetups or speaking at conferences. As you become more senior, it becomes even more common for openings to be filled through the network via headhunting and referrals rather than through direct applications. In any case, meeting new people and sharing ideas is one of the most positive and interesting aspects of working in tech.

Remember, data points don't get hired, humans do. What sets you apart is your passions, interests, and experiences, and you should ensure that they come across in full colour throughout the application process. The best way to do that is to tell a story. The hiring manager should not have to do any work to determine whether you are the right choice. You’ll stand the best chance when your application elegantly and comprehensively covers why you are the right candidate for both the company and the role.

Many commonly asked interview questions start with ‘why’. You’ll probably be asked some version of “Why software engineering?” And you will definitely be asked, “Why do you want to work here?”

Pinning down your interests and motivations will not only help you nail those questions, but it will also help you find companies that align with your values and interests. Your ‘why’ doesn’t need to be complicated. As an example, here’s mine: I despise repetitive work. This core belief inspired me to learn how to code to automate the mundane parts of my old marketing job, guided my personal coding projects during my job hunt, and helped me land my current job, where I get to write software which reduces how much time my colleagues spend on repetitive tasks.

It doesn’t matter what your story is, it just needs to be unwaveringly true and whole. If it isn’t, it will come across as half-baked, or worse, affected and insincere. So, take some time to sit down with your thoughts and ask yourself why you want to be a software engineer. If it’s not immediately clear, that’s fine. It may take you a while to flesh out your different ideas and to hone it in. When you do, you’ll know, because you’ll be excited about it — it will explain why you’ve put in all the work to get to where you are now. When you’ve got it, jot down examples of when you demonstrated it or which of your core values or beliefs are tied to it.

And then live it. Express it directly and indirectly through your personal projects, in your writing, in what events you go to and what jobs you apply to. This will help you know when the company or role you’re reading about is the one for you. When you do find a company which is well aligned, it will ensure that your passions and interests bleed from the pages of your application. The hiring manager, just by experiencing your full story, will know that you are the right person.

One consequence of growing your network is that it increases your surface area for fortunate serendipitous events. Someone you met at a conference needs some freelance work done, a friend of a friend is hiring engineers and recalls you and your skillset, etc. The more you put yourself out there, the more your projects express your interests, the easier it will be for someone to know that you’re the right person for an opportunity.

Another thing you can do to expand your surface area is to maintain an online presence. Make sure that your GitHub is clean, that your projects have neat and expressive READMEs, and that you have all of it linked on your CV and your LinkedIn. Use your coding skills to build a portfolio website which showcases your experience and then share the link to it proudly and publicly. If you enjoy writing, maintain a blog. With all of these different pieces of work doing the talking for you, you make it easier for the hiring decision-maker to get all the information they need.

When one of those fortuitous serendipitous events comes around, and they will, you’ll already have nailed down your story (right?) and you’ll have public projects to show off and speak to your experience. The final step is going through the motions of the hiring process to get an offer. Again, make things as easy as possible for the people making the decisions. Simple things can make a world of difference in such a competitive landscape. Reply to emails and messages promptly and clearly, do your best to be flexible and accommodating with regard to interview timing, and always go above and beyond in whatever is asked of you. Think about what would most people do for the question/task/assignment and then do 30% more. Make ‘should we hire them?’ fantastically easy to answer.

The hunt for your first software engineering job is a daunting but incredibly exciting time. I hope you’ve come away with some actions you can take to skew the odds in your favour. Here’s a recap:

With a little luck and a great deal of work, you’ll land your first software engineering job. One which will lay the foundation for a long and rewarding career ahead. Good luck!

Add a comment

Related posts:

Esquentando

Pela quinta rodada do grupo A3, América e Globo se enfrentaram, no Barretão, e a temperatura elevada durante a partida foi o maior adversário do Alvirrubro, que passou com facilidade pelos donos da…