I’ve been hired several times in London as an iOS Engineer. I’ve been through a lot of interview processes. I really hate it. I do not like it. I had a real trauma about it. So, my doctor recommended me to talk about it. Just kidding.
Autumn in London
English is your first development language.
Can you speak English without problem? Can you understand the different accents? Then, you wouldn’t have the first problems I faced. When I was searching for my first job in London back in 2012 my English was really immature (right now it is nor even a teenager). Speaking with recruiters I was repeating one time and another: “Excuse me?” and “Can you repeat please?” Many times I was answering “Yes” to absolutely every question. I remember my wife asking me
This was my level. I understood probably only 10–20% of the conversation.
That was the toughest time. Many times recruiters just hang up the call in the middle of my answers. Really harsh situation. When I was almost giving up and deciding to go to work for Tesco I finally had the perfect interview. I found a CTO (Paul West) who loved my CV and the best Product Manager (Florian Kriechbaumer) I ever worked with. So never give up!
Searching a job without recruiters.
You can be hired without a recruiter in the middle. However, it is going to be more difficult and slowly. I’ll recommend you three places I used. The first one is LinkedIn Jobs. Some companies publish their job offers there. But, to be honest, many times what looks like a legit company job offer, at the end it is just another job offer through a recruiter. However, it worth a try.
The second one is Stackoverflow Jobs. I found my third job in London through there. The quantity of companies there is not big. But, there are no recruiters at all. You can be in contact directly with the companies. You have to do one less step, so good luck there.
I found my fourth job through Hired. The idea behind the platform is simple. You ask to join as employee. Companies ask to join the platform as employers. If you are accepted, then companies start directly asking you for interviews. One cons of the system is that you are only able to be in the platform for four weeks. The contracting system is London is very slow. So four weeks are really not too much. The best part of Hired is that if you get contracted by a company you‘ll receive a check of £500. Not bad, right?
Embedded Recruiters
I saw this more and more when I was looking for my last job. Some recruiters, with a legit company email will tell you that they are the HR of the company. It is a reasonable lie. Honestly I had good experience with a couple of them. It is just a commercial tactic. At the end they usually do that in small companies that do not have a real HR on place. They will do the HR job, so, at the end, you will do one interview less. Recruiter and HR both in one go.
Recruiters pain
The worst part of having a recruiter is that you will be treated many times as a piece of meat to be sold. The fee of a recruiter can be 10–20% of your first year salary. So make your numbers. For them you are possible cash. While the process is going well, you will receive emails and calls to help you. Many times, if the company refuses to follow up the process, you will not even have an email from them.
This can sound sexist, but I had better experience with female recruiters than with male. Not all the male recruiters are bad people, some of them are really good professionals. However, many of them are just idiots. Although the percent of woman in the recruitment business is smaller (at least in the mobile sub-market). I can remember easily the name of the first and last female recruiters I spoke with: Fiona Wilson and Nicola Rosewarne. They are amazing professionals and good people, trust them. I cannot remember male recruiter’s surnames. Sorry guys.
Not even a call
I already told you that if the company decides in the middle of the process that you are not their candidate, sometimes, the recruiter will not even tell you.
But, there are even a worst practice. You get in contact with a recruiter, he will tell you that he is working with some companies. SuperCoolCo.com, BestApp and LastSocialNetwork. You read the job specs, they are cool so you give a “move on” to the recruiter. And then is when the ugly and unknown part starts.
Maybe he never sent a person there. Maybe he even never spoke with the company before. He just knows that this company is searching for an iOS Engineer, and you allowed him to represent you. He will then call the company offering you and try to agree on a fee. If they did not agree on a fee your CV will get Lost In Translation. Normally the recruiter will never tell you that.
So, you think someone is representing you with SuperCoolCo.com. But, in fact, no one is doing it. So, if you heard nothing from a recruiter in some days, search for the careers page of the company and directly apply there.
Southwark Park, London.
Your CV.
This is the first thing everyone will see about you. So, better if it is great! To be honest it will become better and better over time.
Your public CV
A recruitment company send me an email about a job a while ago. I agreed to talk with them. During the Skype call the recruiter explained me how they found me. This recruitment company have a deal with Git (not with GitHub). We all need an email to set up Git. So this company runs an algorithm through Git Database to check what we are doing. If we match what they are searching they use our email to send us a first contact. So, of course, every public repository, is part of your public CV.
Take care of GitHub. Do stuff there. Publish small demos. Publish Frameworks. Wrappers over other Frameworks. Tutorials. Tests. PR on others code. Even a PR on Swift open soured project?
I use to answer Stackoverflow questions with an example in GitHub. It is a win win. I can get more upvotes in Stackoverflow because my answer is better, plus I’ve got an alive GitHub.
Cocoapods it’s another place to post code. You have a class that you always import in your projects because it is simple super helpful? Then, create a pod! Share your class with others. Same win win. You will need to put the code in GitHub, plus in Cocoapods. People will use it, you can even have feedback.
An updated LinkedIn it’s another good public CV. It requires time to collect recommendations and skill up-votes. So do it!
What about a blog? Do you have an up-to-date blog? OMG do it! Publish something! The final win, win, because you will probably post it with a link to a GitHub example!
The Process
If a recruiter has your telephone number he will call you at any moment he has an offer who fits you. I’m never picking up the phone if I do not have a scheduled call in my calendar. For some time I had my phone published in LinkedIn. Bigger mistake ever. I was receiving over 20 calls a week.
Because my email is public in many places, I can receive the same number of emails from recruiters proposing jobs. If I’m in a phase of searching a new job, I answer the ones that are more interesting or more professional.
Then I usually ask for a full job spec and finally we schedule a phone call. During the call you will need to explain your CV. Either because they cannot read it or because they’ve got special powers and can detect your personality through your voice. So be ready to say the same things about you one time and another.
Steps
The process can have one, two or probably more of this steps. Also the order can be totally different for each company.
HR — In-house recruiter. Mostly the same thing as with the recruiter. Here, they will try to sell you The Company. For my first roles I did not understand this selling the company moment. I wanted a job, a salary, an opportunity. I was going to accept anything. Overtime now I understand the question. Sometimes the idea, the process or type of company is not what I’m looking for.
Technical Interview, iOS — ObjectiveC — Swift Questions. The most typical one: Difference between bounds and frame. I’m really bad in this type of interviews. I hate to memorize hundred of idiot questions, specially when you can find the answer in two minutes in Stackoverflow.
Technical Interview, Degree questions: Some companies love to know if you remember the basics. OOP basics, HTTP, quick sort or anything you forgot the day after you finished your CS degree.
Technical Interview, Frameworks. I love this ones. Raw questions about the most common Frameworks. How you will persists data or how you will handle multi-threading are typical ones. Try to know which technologies is using the company you are going to be interviewed. If they use a camera a lot, try to check AVFoundation. Are they using HealthKit? Spend some time reading about it.
Coding Challenge: The most common Coding challenge will require you to download some data, persist this data and show it in a UITableView. They will probably ask you to present a Detail View Controller when the user clicks on the cell.
Many people do not really know what to check in a coding challenge. They will mostly check if you use their same coding style. If they use Storyboards, they will be happy that you do so. Same with CoreData or anything you can imagine.
The same Coding Challenge reviewed by different people can result in a total exit or in a total failure.
Coding Challenge, some thoughts :
If you are struggling to create a proper multi-threading code try to focus on this.
However, if you are confident doing it, try to go further. Focus your Coding Challenge in how testable it is. My experience says that Unit Tests and Dependency Injection are the next step you need to be successful. Be sure that you can really follow the unit testing rules. Write functions that only do one thing. Create independent Managers and Services. Write tests. Rewrite an easy coding challenge. Try to cover everything with tests. Invest your time there!
If you are confident with unit tests, then start investigating around how to architect your app. Go dipper with MVC. Read a lot around it. After that, start reading and refactoring your coding challenges with other patterns: MVVM, MVP and VIPER. You do not need to be an expert on that, but at least, start having ideas around it.
Online Coding Test, Hackerrank and Codility: I love to do this type of challenges. Sometimes I do that for fan. However, they are totally pointless in terms of an interview process. It is just a way for companies to reduce the number of people applying to a job position. Hackerrank it’s an awful platform. I decided after my last one that I’ll never agree to do a test with them again. Codility, in the other hand, works amazingly well.
White board interview: Usually they will ask you to write some algorithm. I did one where I was asked to write in pseudo code of one sort algorithm. The interviewer helped me a lot and I did it pretty well. Review Complexity of algorithms before a white board interview.
Logic questions: Typical questions that you will do family of friends. You cannot prepare yourself for that. I like this type of challenges and I also think a good developer need these skills to be a good one.
Final interview: Sometimes the final interview is only to speak about your salary or to meet the team. Sometimes they will review your coding challenge. Other times it can be a combination of a lot of other type of interviews. If you are going to a final interview try to ask the recruiter or the HR what is the pourpose of the interview. Be ready to anything!
Finally considerations
TDD. In every job spec you will find that knowing TDD is something that will help you get the job. If you ask the company if they are using TDD, they will tell you that not yet, but it is something they want to do. TDD is another nice cool trendy word.
Salary. Expect to ask for at least 5k more each time. Changing roles is the best way to push-up your salary.
Try to go to a place where you can learn. Be sure that someone in your new team can teach you things. If you are the one who knows more you will waste your time. You will get stuck.
The first job is the most difficult one. Same for renting a house or anything in the UK. They want to be able to ask for references. If you can give references… then no problem.
Build your speech. Learn after each interview. Use them to grow up.
Good luck out there.