Job Search for a Programmer in London
Disclaimer
Everything written below is based on my personal experience and does not claim to be true. Where possible, I give links to sources, read, check. If there is no link to the source, then this is just my personal opinion, you can disagree with it, just do not try to change mine.
We moved to London (Great Britain) from Khabarovsk (Russia) at the end of 2014. My husband is a senior php developer with serious experience working with linux and generally a great clever girl. My professional baggage includes all kinds of nonsense like FoxPro, but in my last job I was developing for the integration bus and JavaEE.
Step 1. Visa
Obviously, in order to come to the UK a visa is required, in the context of work, perhaps the most realistic version of Tier2 General.
It is arranged this way:
1. An employer in the UK draws up some papers that allow him to import labor from abroad;
2. receives a quota for a future employee;
3. looking for a suitable candidate;
4. draws up a certificate of sponsorship for him;
5. The candidate with this document goes to the visa center and receives a Tier2 visa.
Registration of certificate of sponsorship and obtaining a visa usually fits into the calendar month, but if items 2 and 3 are interchanged, then longer.
A Tier2 visa is issued for a period of one to three years (with the possibility of extension to 5) and allows a person to work specifically for this company, i.e. moving in and changing an employer will be very problematic, although options exist. But there is a positive side: the spouse of the Tier2 holder receives a Tier2 dependent visa, which also gives the right to work in the UK (with the exception of doctors) and is no longer tied to the employer.
Everything written above is based on the experience of my husband. Further, I will share my experience, taking into account the Tier2 dependent visa and job search, while already in London, but I will also note universal points for searching from Russia.
Links: a list of companies that make visas, information about visas .
Step 2. Preparation of the resume
It’s better to write a resume in English before looking for a job, it took me unexpectedly a lot of time. The excellent phrases in Russian when translated into English looked quite clumsy, some terms are used differently, and in order to figure out how to write my education, I had to google it.
For your own peace of mind, you can read articles with tips on writing a resume in English, but I can’t say that the rules are very different from those adopted in Russia. My resume on hh.ru was pretty much the same. The only difference is that it’s worth writing the “profile” block, it’s also a “personal statement”, it’s about about, in which you need to write about your qualities and goals in the form of 3-4 connected sentences. This, at a minimum, will come in handy later in a telephone interview. I also did not indicate gender, age in the resume, and did not attach a photograph, although I think that this is just a tribute to traditions and formalities, all the same, agents are probably looking for everyone on facebook and linkedin.
The next required step is to fill out a profile in linkedin (do not forget to choose the English profile language). There are really many recruiters and vacancies in linkedin, plus most of the job search sites allow you to import information from there.
Step 3. Job Search
I used jobserve.com , monster.co.uk and linkedin.com to search for jobs . Jobserve looks creepy, but in my experience it turned out to be the most useful, it allows you to fill out a profile on the site, attach several different resumes in the form of doc, pdf documents, and there really are a lot of vacancies.
When looking for work in linkedin, he often throws it to reed.co.uk, so it’s also worth filling out a profile there. Unfortunately, different versions of the resume cannot be attached to reed.co.uk.
It also makes sense to compose a cover letter. Imagine that you send your resume as an attachment by e-mail, cover letter is what should be in the letter itself. I usually limited myself to the standard template that all job search sites give. Perhaps more complex options have a greater effect, but I doubt it.
Typically, a vacancy indicates whether the candidate should be eligible to work in the UK, or if the company is ready to make a visa. The latter, obviously, are fewer, but they are found.
Hence the experience associated with finding work on the spot with a work permit.
I wrote down all the vacancies that I responded to in a single file, this is useful:
1. Most of the vacancies are placed through agencies, so it’s enough to send your resume to each agency once, they will save it to their base and will call any suitable position. So I wrote down from which agency there was a vacancy to cover as much as possible.
2. Almost all vacancies have a contact person. Accordingly, if they liked the candidacy, they call back and say “Hi, I am Btrtfgh OIIgegkj from Kjhiuhjhqrb Jhldljii agency. I understand you applied for a role of java developer ... " So, because all of a sudden 99% of my responses were to java developer vacancies, and it’s almost impossible to make out the name of the company, the only hope is to identify what kind of vacancy is being discussed and to orient yourself, to answer the question “what kind of salary do you want” is to write down the name of the contact person. Thinking about Tom, Sam or Emma by ear is much easier than Brickendon Consulting Limited or Handle Bearing Limited.
Another very interesting thing: as a rule, after responding to a vacancy, they called me back just 15 minutes later, a maximum of one hour, so the task of finding the right vacancy is greatly simplified.
3. Quite often, a new vacancy on a site is just a fresh copy of an already familiar vacancy that has been archived, and this fact is not reflected on the site. So to write down the main details of the vacancy (position, place, salary) so as not to waste time and energy on such repetitions, it is also useful.
All vacancies can be divided into two types:
- permanent; for such vacancies, the salary is indicated in the form of the annual amount before taxes (you can see how much will be obtained per month and after taxes can be paid here thesalarycalculator.co.uk);
- contractual (contract); hiring under the contract is usually carried out for a specific period and for a specific project. Contracts are: for 3 months or for a year. Here, as a rule, the rate for the working day is indicated, the taxation for employees under the contract is different, I did not go into details, because I was looking for a permanent job. This option is by the way popular and in the “trade in carcasses of programmers,” the company gives a person a visa, draws up documents and supplies contracts.
Step 4. First call
If the resume fits the described vacancy, the recruiter from the agency calls the candidate, talks about the company that is looking for employees, and asks a couple of three standard questions:
- availability and type of visa;
- when ready to go to work;
- salary expectations, in this place they often ask for the amount at the previous place of work, which is very funny, at the time of moving my annual salary in Khabarovsk fell between 4 and 6 thousand pounds, and here I examined vacancies with a level of 30-40 thousand pounds (this is a middle, 30 may be a junior, java senior may be 60). In general, we smile sweetly and say that it is too difficult to compare.
- what kind of role you are interested in, it is advisable to recall what kind of vacancy is in question and answer that this is exactly the job of your dreams. However, I periodically answered honestly, “I just arrived in the UK and want to find a job as soon as possible, I’m happy with everything that falls into the familiar technology stack” and it also worked :)
Next, the recruiter promises to send the resume to the client and call back, usually that’s it.
These calls are very useful:
- you get used to talking on the phone in English. By the way, this is one of the most difficult things, the quality of communication often leaves much to be desired, and if in Russian the brain habitually completes the information picture, then in English it does not work right away. Plus, here you can find a huge number of different accents and pronunciations for this, too, you just need to get used to and learn to distinguish. [politically incorrect block] There is nothing worse than a Hindu accent! [end of a politically incorrect block]
- polish the answers to standard questions. It turns out that some completely natural phrases in Russian are not easy to compose in English on the go, yet no courses can prepare a person for a conversation about technologies, a project and a role in a team.
Step 5. Technical Interview
If the resume is nevertheless interested in a company that is looking for an employee, a technical interview will follow. The recruiter calls back to clarify that you are still interested in the job, coordinate the time and send a letter describing the vacancy, the company and useful tips on what to expect from the interview.
A technical interview can take place in a variety of forms, I came across such options in different combinations:
- A telephone interview
Not a very common option, if you are looking for work already on the spot, they usually immediately invite you to a full-time interview . If, after all, the telephone is first, then the interview usually lasts 30-40 minutes and looks like a classic conversation about past experience, used technologies, team organization, and there may be theoretical questions in the spirit of “what is the difference between left join and inner join”.
The main difficulties are about the same as in the case of the first call, often on the other side the interviewers use the speakerphone, so you just have to listen carefully and do not be shy to ask questions.
- Classic test task The
candidate receives the task description by mail, after the allotted time sends his decision in the form of an archive / link to the repository. When receiving such a task, it is usually useful to search for it on the Internet, the probability of finding a solution on github is very, very high. The possible benefit lies in both the chance to spy on an elegant solution and the conclusion “well, I can definitely do better than that.”
It is clear that when performing the test task, you need to look at the job description and use the technologies indicated there to a reasonable extent.
If, after such a test task, you are invited to the next interview, be prepared to answer specific questions by your code, why it was done so, and not otherwise, what can be improved, etc. It often happens that the test task was done some time ago, or mixed up in the head with other tasks, be sure to look at the code before the interview so that the thought “did I write this?!?” Did not interfere with answering questions.
- On-site test task
Almost always, along with a face-to-face interview, a candidate expects some kind of testing. There can be an infinite number of test options. Next, I describe what I personally met.
SHL tests are a type of psychometric test from SHL.. I had to undergo “Speech and Numerical Ability Tests”: “Speech tests are aimed at assessing your ability to understand information in writing and evaluating statements related to such information. Numerical ability tests are aimed at assessing your ability to understand tables with statistical and numerical data, as well as your ability to deduction ”((c) www.shldirect.com/en/practice-tests ).
In other words, the first type of test consists of several questions in the format of a small text (1-2 paragraphs) and several statements for which you need to choose the option “true / false / not specified”. Difficulty grows from question to question, and the time to complete the test is quite limited. Those who passed IELTS are undoubtedly familiar with such tasks and are likely to be able to show a fairly high result.
The second variety is a mathematical problem based on tables, charts or graphs, basically you have to consider the proportions and percentages. To correctly understand the condition of the problem in English, additional efforts may be required, plus in real life it is not often necessary to make calculations based on diagrams, so it makes sense to solve several training problems.
- A test for theoretical and practical knowledge of a particular language.
Such a test can be either in the form of some online test, where you need to choose the right answer to a theoretical question and write the code in a special form for a practical question, or in the form of questions on a piece of paper, which need to write an answer and / or sample code. The online test seemed to me the most stressful and least objective way. I took a test from hackerrank.comtheoretical questions were quite simple and essentially demonstrated that I read a JAVA book and am able to use linux, but practical tasks required writing a fairly complex algorithm in a short time in a completely unusual environment. It is not often necessary to write code without prompting syntax on the keyboard, where special characters are located in completely unexpected places (to write the condition “or” - “||” I opened the character table and copied the desired character). The correctness of the task is determined by passing the tests laid down in the system, after the interview I tried to solve several problems on the site itself and was faced with the fact that it’s not enough to write the correct algorithm for the test, you also need to correctly format the output, which depends on the locale, on which code is executed. In general, all this does not contribute to a calm and high-quality writing of the algorithm, and I strongly doubt that it shows the real possibilities of the candidate. Such tests will be best done by people who have participated in programming olympiads in the recent past, if it’s not about you, you can train in advance in similar systems.
In another place, it was necessary to complete a test task on paper, a framework of classes was given for implementing a singly linked list, some methods needed to be supplemented, others completely implemented. This task was much simpler than what is found on hackerrank.com, and was more likely designed to drop out juniors that were completely unsuitable for business (at the same time, the task was performed by two girls who had just graduated from a university, judging by their appearance the task seemed to them not so easy).
- Practical test in place
Candidates are asked to complete the test task directly in place. The main difficulty lies in the unusual working environment, but this option is still easier than online testing, because it is possible to test your code with your own tests, and not something mysterious on the other side of testing.
- Test for “identifying programming abilities” in a pseudo-language (A Programming Aptitude (Pseudoocode) test)
I also had to do this kind of test on paper. At the start of the test, a simple language with several basic commands was given (set the value of the variable to 0, assign the value of one variable to another, increase the value of the variable, the cycle performs all the actions inside itself N times). The task is to implement the simplest arithmetic functions during the test (addition of two numbers, subtraction, multiplication, division, comparison, etc.), and in each next task, you can use the functions from the previous ones. The pseudo-language is vaguely reminiscent of assembler, but even having no idea how it works, solving tasks is not a big deal for a person who knows that multiplication is an addition repeated N times.
- Practical task on a board with a marker (white boarding task)
During the face-to-face interview, the candidate is asked to implement the algorithm on the board, as a rule, the algorithm itself is not at all complicated, because should fit in a limited space and take literally 10-15 minutes. In addition to actually checking basic knowledge of the language and algorithms, such a task demonstrates communication skills well, as a rule, it is necessary to clarify the task, make some assumptions or limitations.
- In-person interviews
A standard conversation about experience and technologies, technical issues are usually more than by phone. As a rule, it is easier than telephone, because person is clearly visible and audible. If there is a difficulty in explaining something, you can always depict a diagram on a sheet or clarify the spelling of a term. This interview lasts about an hour.
When you receive an invitation to a face-to-face interview, you must always make a route in advance and look at the panorama of the streets. Most likely you will have to get on the metro / overhead / train, traffic jams in this case are not terrible, but various problems do happen (you can check the current status of the necessary lines and the schedule of planned work at tfl.gov.uk ). If the route with transfers, lay extra time, Google draws an extremely optimistic time for this, I can fit into it only in familiar places. In particularly difficult cases, it is worth taking a trip along a route or part thereof in advance.
On the issue of appearance, I got the feeling that it is better to be dressed too formally than not enough. Recruiters do not always warn whether a company has a dress code, so trousers and a strict shirt would be a good option.
Step 6. Final interview
More often than not, a conversation with a manager is of a higher rank than a team leader who conducted a technical interview and / or a human resources officer. Ask standard questions about motivation, life goals, plans for the near future. It will be useful to make draft answers to such questions in English, read tips on this subject on the sites of local agencies (for example, here or here ).
The final interview can be held on the same day as the technical one, or after some time. In the first option, an in-person interview, taking into account tests and talking with several people, can take several hours. My personal record of an interview, which lasted four hours continuously, usually still about two.
Step 7. Job offer
The most pleasant moment in the whole process is getting a job offer. As a rule, the recruiter calls back and reports good news. Be sure to ask to send a letter with all the details and conditions of the proposal before giving an answer (adequate agents do this without unnecessary reminders, but they are also not quite adequate). At this point, it is usually specified when to give an answer, the usual period of 2-3 days. I once managed to beg for a whole week, explaining that I really, really liked the offer, but I had already agreed to another final interview and would still like to try to get through it.
Conclusion
Now in the UK labor market there are a lot of job opportunities for programmers. It took me just a couple of weeks to go all the way from writing a resume to getting the first proposal. And a couple of weeks to get an offer that I really liked and get to work.
Most of the agents with whom I talked had a good understanding of the technical details of the vacancy, were polite and punctual in English, called back at the appointed time, sent all the necessary information and gave useful advice. In general, they made a much more pleasant impression than their counterparts from Russia.