You’ve reflected on and identified where you can improve your experience as described in chapter 7. You’ve successfully debugged your CV, with help from chapter 6. Now, how can find an interesting job? How can use your CV, covering letter and any other communication to persuade employers to invite you to an interview? What techniques exist and how can you use your networks to help you? Where can you look? This chapter will help you find your future. 🔭

## 8.1 What you will learn

At the end of this chapter you will be able to:

1. Formulate job search strategies:
• by role, sector, skills, time, size, quantity, values, culture, network, salary and location
• Identify opportunities for finding work, online and face-to-face
3. Describe some of the problems with recruitment:
• for employers
• for potential employees (like you)
• Critically evaluate what employers have on offer (beyond the financial incentives)

## 8.2 Job search strategies

Before we look at where to look for jobs, we need to discuss what to look for. Let’s imagine there is a handy AI-powered function in python called find_jobs() which knows everything about:

• all the jobs available, regardless of where they are advertised, including hidden ones
• all of your skills, knowledge, values and ambitions
• every employer in the world, their services, products and values
• everyone in your social and professional networks, right from first degree connections through to sixth degree connections

Such a function doesn’t really exist yet, but let’s pretend that it does to illustrate some points about job searching. If you were to run the function with no arguments…

…you will be completely overwhelmed with the results. It can be bewildering knowing where to start your job search, because the possibilities are endless. Your search space is huge.

Thankfully, we can break it down, but there are many parameters and variables in your search that you need to think about. Here are some basic strategies to help you start to decompose the complex problem of job hunting into smaller, more manageable problems you can start to tackle. We’ve already mentioned some:

1. 👨‍🔬 by role, see section 8.2.1
2. 📊 by sector, see section 8.2.2
3. 💪 by skills, see section 8.2.3
4. 🏖️ by location, see section 8.2.4
5. 👨‍👩‍👧‍👦 by network, see section 8.2.5
6. 💰 by salary, see section 8.2.6
7. 🏋️ by size, see section 8.2.7
8. ❤️ by values, see section 8.2.8
9. 🕰 by timing, see section 8.2.9
10. ⚖️ by quantity, see section 8.2.10

Each strategy has is own strengths and weaknesses, so you’ll probably want to combine more than one and experiment with different strategies as your search progresses over time. No doubt, you’ll have some extra strategies of your own, this is not meant to be an exhaustive list, just a starting point:

### 8.2.1 By role

There are many different roles that studying computing gives you access to besides software engineering. So one strategy is to research those roles, choose one you like and then apply for that kind of role. Let’s say you are interested in software engineering. This is a strategy that will help you narrow down a huge number of jobs into something more manageable. For example:

The list of roles in section 9.2 will give you a flavour of some roles to think about, beyond software engineering.

### 8.2.2 By sector

Computing is found in every sector of business and society. This means won’t just find computing jobs in the technology sector, whatever that is. Although the lines between some sectors are becoming increasingly blurred, you can still narrow down the options by picking a sector you are interested in and pursuing that. For example:

Like many graduate employment guides, the Guardian 300 guide (see section 8.3.1) has good overview of different sectors by breaking down employers by sectors such as:

• Consulting
• Public sector
• Finance

Picking a sector can help you get started, by narrowing what might otherwise be a massive search space. The sector(s) you choose will also determine the kind of salary you can expect, see section 8.2.6.

### 8.2.3 By skills

Is there a specific skill you have that you enjoy using, or a technology you know that think promise? You could use this as a way to find jobs, for example:

Picking a specific technology can sometimes help you narrow down the options, for example by using these keywords in your search.

### 8.2.4 By location

Pick a location. London? Manchester? Paris? Geneva? New York? Silly Valley? Depending on the location, this will determine the options that are available:

… and so on. So locations can help you define (and potentially reduce) your problem space. For example, if you’re looking in Manchester, you can get started at git.io/manc. Picking a location can also help you identify networking opportunities for hidden, un-advertised vacancies and making speculative applications. You could find out about employers by attending free meetup.com or eventbrite.com events in your chosen location.

### 8.2.5 By network

The people in your network can help you find work. It’s not what you know, its who you know, or so the cliché goes. The bigger your network, the more opportunities you’ll know about. So a really basic strategy for finding jobs is using your networks. Remember, find_jobs does just know what you know, it also knows who is in your professional network and the employers they know about, so we could ask it to find opportunities in your professional and social networks:

Your close network probably won’t change that much, the friends and family you trust and rely on. Its important to recognise the importance of more casual acquaintances, or what sociologist Mark Granovetter calls “weak ties”.

Weak ties are people you don’t know as well, but are important for a range of reasons. Research has shown that building networks of weak ties is good for your mental health and can give you an edge in job hunting. Granovetter showed that many job opportunities came through weak ties, rather than strong ones. This is true not just of jobs early on in your career (like now) but also later too. So it is in your interests to continually foster weak connections and be open to serendipitous meetings where you bump into people, as in Figure 8.2. “Bumping into” here, could mean either physical or virtual.

### 8.2.6 By salary

You can also define your search space by salary:

Setting a minimum salary will include or exclude certain employers from your search. To do this realistically, you need to know how much you are worth, see section 8.4.5 and figure 8.4 for some places to start.

### 8.2.7 By size

Do you see yourself working for a large multi-national corporation or a bedroom startup? Or something in-between? There’s advantages and disadvantages to each, but like all our other parameters, picking an organisation size can help you get started. In some cases, size will also define the type or organisation, for example:

Likewise, if you know you want to work for a multi-national, that gives you a list of employers you can target. Picking a size, can help you identify employers you would like to work for. Table 8.1 summarises some of the when and where some employers typically advertise.

Table 8.1: The practicalities of applying for vacancies, internships, placements, graduate jobs and schemes in large multinational employers and small to medium sized enterprises (SMEs)
Large employers SMEs
When Vacancies open earlier in the academic year Vacancies tend to open later in the academic year
How Typically multistage applications, several rounds of interviews Typically shorter application and interview processes
Who Typically receive high volume of applications per vacancy Typically receive lower volume of applications per vacancy
Process Unlikely to consider speculative applications May consider speculative or informal applications

### 8.2.8 By values

Besides the necessary value of making a profit, which is what commercial employers need to do to survive, what are the values of the employers you are interested in? How do they match your own, the values_match below? Reasonably or not at all? How much of your soul do you need to sell? All of it, or just some of it? This a difficult question to compute, see section 9.5, but let’s imagine we can compute it:

An employers values are often reflected in the organisations culture. What is the employers culture like? What sort of structure would you fit into, see figure 8.5? Would you enjoy working there and would you felt like you belonged? How can you actually find this out? Do you need to sell your soul? If you’re struggling with these questions, you may need to do some more soul searching, see section 9.5 and chapter 2. Talk to employees too, this is why networking is important, see section 8.2.5.

Our find_jobs() function is useful, if only as a thought experiment, but there’s still the strategic questions of when you use the function and how often so lets look at those next.

### 8.2.9 By timing

For graduates and undergraduates, the time of year you are looking can determine what jobs you can look for. At the beginning of the academic year in September you might target large multinational organisations. If you’re not successful, you could switch to smaller employers later in the academic year. For example “It’s October, so I’m applying to large employers” or:

Armed with knowledge of when to apply you can start to target employers. Timing is important because in some cases it will sometimes determine the type of organisation you apply to.

### 8.2.10 By quantity

Should you optimise the quantity of your applications or the quality, see figure 8.6?

Figure 8.6 shows two extreme approaches to job hunting, in reality you’ll probably want to strike a balance between quality and quantity. Finding jobs by quantity can set a pace and rhythm to your job search:

* “I will do one application per week during term time”

or set a time limit for what you’re prepared to do:

* “I'll spend two hours per week finding and applying for jobs”

If you find yourself:

• Making a small number of applications, you may need to consider applying more widely and spending less time on each application
• Making a large number of applications, you may need to consider applying less and spending more time on each application

This raises the question, how big is a small or a large number of job applications, which isn’t easy to answer. Doing fifty applications over a couple of months may mean the quality of each application is too low.

## 8.3 Where can you for look for jobs?

Using our fictional find_jobs function we’ve described and discussed some basic strategies to get you started. Sadly no such function exists yet, so armed with a rough idea of what you’re looking for, where can you actually look?

The marketplace for job searching and job hunting advice is incredibly crowded. Employers spend huge amounts of money on recruitment and this is reflected in the enormous range of job websites, which are often accompanied by advice on job hunting. There are four kinds of places you can look for jobs:

2. 👀 General jobs boards, such as Google jobs (and the rest) see section 8.3.2
3. 🎨 Portfolio style, such as LinkedIn and Github which allow you to publish a public profile, see section 8.3.3
4. 👩‍👩‍👧‍👦 Your network, online and offline, see section 8.2.5
5. 🕵️ Recruiters, get a recruiter to help you, see section 8.3.4

The following resources are specifically tailored to undergraduate students and graduates looking for jobs in Europe and beyond:

### 8.3.2 For any job seekers

The following resources are aimed at a wider audience (not just undergraduates and graduates) looking for jobs anywhere in the world:

Google job search shown in figure 8.7 is a good starting point. It doesn’t index every job listings site, see Google’s job hunting service comes to UK , but its a pretty good place to start.

• Google job search indexes jobs advertised by many of the resources mentioned in this chapter. You can use google job search use to find internships, placements and graduate jobs anywhere in the world, as well as saving vacancies and setting up job alert notifications by email. If you haven’t used it already try the searches below. Unlike other sites, Google job search works by indexing embedded microdata structured using schema.org/JobPosting. Keywords like job and intern in an ordinary (vanilla) google search will trigger the job search product, as shown in the following examples:

• glassdoor.co.uk is like tripadvisor for jobs. Find out what it’s really like to work for given employers from current and former employees. A student oriented version can be found at glassdoor.com/Students, this means you can use it without writing a review of a previous employer (which is what non-student users have to do to access the content)

• HiPEAC jobs (High Performance and Embedded Architecture and Compilation) is good for jobs in hardware, supercomputing and related fields

• Indeed.co.uk, adzuna.co.uk, cwjobs.co.uk, fish4.co.uk, reed.co.uk, totaljobs.com, monster.co.uk, jobs.smartrecruiters.com, workinstartups.com, cv-library.co.uk, jobs.ac.uk are general jobs boards that also advertise jobs for students and graduates, alongside many other vacancies.

• Otta.com for people with 0-10 years experience. From engineering to sales, discover jobs & internships at London's most innovative companies.

### 8.3.3 Pushing a public profile

Jobs boards use the pull approach to job hunting, you search for and pull vacancies of interest. Alongside this, you can also try a push approach by publishing a professional public profile online.

Publishing a portfolio of your work online will allow employers and recruiters to come and find you, as well as you searching for them. Employers shouldn’t expect you to have an online portfolio and you might not want to have one, but it can help. If you choose to have a public profile, you should link to it in the header of your CV, see section 6.6.1.

• Github.com allows you to publish code in public repositories that everyone can see, see figure 8.9. If you’re comfortable doing it, publishing your software online can be a good way of demonstrating your technical skills and knowledge but be careful publishing your coursework online, see section 6.6.4. Nothing says “I can build software” quite like “here’s one I made earlier”.
• Stackoverlflow.com You’ve probably already cut-and-pasted solutions from the question and answer forum Stack Overflow. You can also create a profile on Stack Overflow too, see figure 8.10. As of March 2021 the site had over 14 million registered users, and had received over 21 million questions and 31 million answers.

So, if you’re happy to publish your work online, sites like LinkedIn, Github and Stackoverflow can help you find jobs using a push approach alongside more conventional pull approaches described in section 8.3.1 and 8.3.2. They can also be used to augument your CV, with the stuff that doesn’t fit onto one or two printed pages. Digital profiles can be also be useful if you’re looking for freelance, contract or part-time work.

Recruiters can help you find work and they operate in every industry sector. They are sometimes called “head-hunters”, and there are two basic kinds that can help you:

1. Recruiters employed directly by an employer, for example in the human resources (HR) department of a given organisation.
2. Recruiters who are self-employed or work for a recruitment agency. They typically earn money from the number of interview candidates and successful hires they provide for their clients. They are often deliberately coy about who their clients are.

Recruiters are usually not technical people, so don’t expect them to any knowledge of software engineering (for example) - that isn’t usually their skill set. Although recruiters can help you, it is worth being wary of recruiters as shown in figure 8.11, especially if they work for an agency rather than being directly employed by the organisation you are interested in.

Some recruiters are very good and can help you. For example, there are some recruitment agencies that specialise in helping employers recruit graduates, these may be useful to you. However some recruiters are not very good, and don’t provide a valued service for employers or potential employees like you. This is why you sometimes see no recruiters or no agencies on job adverts. So be wary of recruiters, and remember that some recruiters work primarily for their clients (employers) not you.

In most cases you shouldn’t have to pay recruiters up front but job scammers will sometimes pose as recruiters so beware. Talking of job scammers, there’s some things you need to be wary of when you are job hunting:

When you’re looking for job you’re acting as both a buyer and a seller.

2. BUYING: You’re buying into the culture and values of an employer (see section 9.5), who are trying to sell themselves to you.

As a buyer and seller, you should be wary of the following:

• 🤥 Job scammers: section 8.4.1
• 🤣 Over-specified jobs: section 8.4.2
• 😭 Unpaid internships: section 8.4.3
• 📈 Overselling: section 8.4.4
• 📉 Underselling: section 8.4.5
• 🤔 Compromises: section 8.4.6
• ⏰ Time sink: section 8.4.7
• 🤮 Rejection: section 8.4.8
• 🎢 The rollercoaster: section 8.4.9

### 8.4.1 Beware of the job scammers

Most job adverts are legitimate but you are vulnerable when you are job hunting. You may become more vulnerable over time if you are getting repeated rejections (remember: repeated rejection is quite normal). Unfortunately there are some shady characters out there looking to exploit your vulnerability through various kinds of employment fraud. You should be wary of anyone asking you for:

• Money up front - be very suspicious
• Excessive personal data such your birth date, passport number and bank details. These could be used for identity theft, fraud or other criminal activities
• Suspicious contact details and generic non-work free email addresses, e.g. gmail, outlook.com etc
• See more examples in figure 8.12 and at google.com/search?q=job+scams

Reputable employers (and jobs boards) will not try to scam you, but you should beware of job scammers if you find yourself looking for employment off the beaten track. Like Pinocchio, its quite easy to spot lies once you recognise some of their nosey signals. 🤥

### 8.4.2 Beware of over-specified jobs

Employers and recruiters routinely over-specify job descriptions. A good example of this is, when the Swift programming language was first publicly released in 2014 at the Apple Worldwide Developers Conference (WWDC) in California, job adverts instantly appeared asking for programmers with 5 years experience in Swift! How can anyone have five years experience in a programming language that’s only just been made public?! Aside from the people who developed the language, like Chris Lattner, the recruiters and employers must have had a long search trying to find their candidate. It must have taken them at least five years!

The moral of this Apple story above is, if you don’t meet all the criteria in a job specification, that shouldn’t stop you applying. Most job specifications are over-specified as wishful employers dream up their ideal candidate.12 Many employers will overstate their requirements in the hope they get their dream candidate. You might look at the job description and think, I’ve only got 70% of what they’re asking for, so I won’t bother applying. The reality is, if you’ve got 60% of what they are asking for, you should probably apply. It’s unlikely that anyone will meet 100% of the job requirements.

If you see things on job adverts you don’t understand or are not sure about, go and find out about them. There’s a good chance it will be similar to something you already know about, or you can self-educate yourself to fill any gaps. But beware of employers over-specifying jobs. 🤣

### 8.4.3 Beware of unpaid internships

In the UK, it is illegal to employ people without paying them a salary. However, there are exceptions which can allow employers to take on unpaid interns depending on how they classify their employment status. See for example:

In science, technology and engineering, unpaid internships are much less common than in other sectors as demand for skilled scientists, technologists, engineers and mathematicians (STEM) is generally high. Some employers, particularly startups, may offer company equity (such as shares) as an alternative to a salary - again you should be wary of this. Unless you’re very lucky, the chances are those shares will probably be worthless. Although many startups aspire to become Unicorns, very few do. Like many people, I don’t endorse unpaid internships, and I recommend you avoid them completely, see section 8.2.6. An unpaid internship might claim to be giving you:

• some “experience” or “exposure”
• equity-for-work
• something impressive for your CV
• opportunities to “build up your portfolio”
• improved access to paid employment at some vague point the future

Unfortunately, in the worst case, taking an unpaid internship leaves you vulnerable to exploitation by ruthless employers looking for cheap or free labour. 😭

There is one exception to this: expenses paid work-shadowing for a short period of time (two or three weeks) such as spring insights described in section 7.3. Otherwise, if you can’t find paid employment, doing voluntary work is a much safer bet and has mental health and social benefits too, see section 7.3.

### 8.4.4 Beware of overselling

When people try to sell you something, you will naturally be wary of overselling and fake news, see figure 8.13.

There’s two kinds of fake news that are common in the jobs marketplace:

1. Employers overselling themselves: Recruitment can be a bit of a beauty contest, with employers trying to show you their best side. Some employers may make promises they can’t deliver but a quick look on sites like glassdoor.com will help you evaluate employers. Even better, talk directly with actual employees of the organisation, both current and former. Is their employer really as good as they say they are?
2. Candidates exaggerating their achievements: It can be tempting to oversell yourself in the marketplace. An experienced reader or interviewer will be able to spot your fake news and find you out, see chapter 6 debugging your future

So beware of fake news and overselling. Don’t believe the hype. 📈

### 8.4.5 Beware of underselling

Likewise, you should make sure you don’t undersell yourself. Know your value (financial), know your values (see chapter are 2) and try to understand how that fits with a given employer. What are the employers stated values? On the financial side, it is easy to find out about salaries, for example see:

Salaries in the UK for interns (and graduates) range from minimum wage to £50k and over, with everything in between. So beware of under-selling yourself, know your value, see 8.2.6. Some employers see students as a form of cheap labour that can be exploited because you’re not “qualified” until you graduate. I’d think twice before working for such an employer, computing skills are in demand and there are plenty of other employers who will treat you with more respect. 📉

Knowing your value is crucial if you’re going to negotiate any job offers you receive, see section 10.4.

### 8.4.6 Beware of compromises

Engineering usually involves compromises and trade-offs, see figure 8.14. You will have to make some compromises in engineering your future. This might be in the design and implementation of your career, such as your salary, location, employer, values or something else.

To work out what compromises and trade-offs you are prepared to make, you may need to revisit the issues discussed in chapter 2. 🤔

### 8.4.7 Beware of the time sink

Finding employers that you are interested in and submitting high quality job applications takes lots of time. Many students under estimate the time needed to job hunt. It can be a very time consuming process for everyone, both employers and candidates alike, see figure 8.15.

Even after you have managed to:

1. Identify and articulate your skills and knowledge, see chapter 2
2. Understand what you’re interested in, see chapter 2
3. Update your CV, see chapter 6
4. Consider all your options, see chapter 9
5. Target employers or sectors of interest

.. the actual business of applying described in this chapter can be very bureaucratic. Any interviews you have will take time to prepare for (see chapter 10) and you’ve got loads of other calls on your time like studying and having a social life.

One way to tackle this problem is to schedule some time every week when you work on applications, see chapter 19. However, there’s no getting away from the fact that finding a job can consume a significant amount of your time. So beware of the time sink. ⏰

### 8.4.8 Beware of rejection

For most people, rejection is a normal part of applying for jobs. Rejection can take a heavy toll on your mental health described in chapter 3 and it is often a struggle. Some employers won’t even bother to reply to reject you. Welcome to the employer black hole described in section 6.2 and shown in figure 8.16.

If you’re getting too many rejections or all your applications are sucked into black holes, it might be because you need to :

• debug your CV and job applications some more (see chapter 6)
• develop a better job search strategy (see this chapter, chapter 8)
• pay attention to your mental health, rejections can make you anxious and depressed (see chapter 3)

So beware of rejection, try not to take it personally. Beware of rejection, it’s a normal part of job hunting. 🤮

### 8.4.9 Beware of the rollercoaster

There are highs and lows in job hunting, you will ride the job search rollercoaster shown in figure 8.17. There will be highs, you’ll be invited to interviews, but there will be also be lows too, such as the inevitable rejections we discussed in the previous section 8.4.8. It will be a rollercoaster, which ends on the high of a job offer you accept. Fasten your seatbelt, enjoy the ride and good luck with your applications and interviews! May the road rise with you!

So beware of the rollercoaster, it has ups and downs. Fasten your seatbelt. 🎢

## 8.5 Breakpoints

Let’s pause here. Insert a breakpoint in your code and slowly step through it so we can examine the current values of your variables and parameters.

* PAUSE ⏸️
• What are your current job search strategies?
• How could they be improved or tuned?
• How many jobs should you apply for?
• What are the strengths and weaknesses of using each of the parameters of find_jobs described above?
• Why is it important to build your network?
* RESUME ▶️