I recently went for a job interview at a company within the insurance space. This story details clashing recruiters, an interesting interview process and a bad case of the flu.
On the day I found out my contract position with the VOD platform startup in the US was ending because the project was being closed down, I went on a job applying spree. Not wanting to be idle for too long, I looked to Seek.com.au to see what was out there.
Fortunately there is an abundance of opportunities in the beginning of a new year.
So it wasn’t long before I found myself getting phone calls, having my mail inbox spammed and more LinkedIn InMail’s then you can possibly imagine. Unbeknown to me, I had applied for the same job twice. As it turns out this company had decided to work with multiple recruitment agencies as well as putting up their own job advertisement (further adding to the confusion). The kind of ads they opted to go for didn’t actually have the name of the company, just the position, a spec of the job and ability to contact.
Rather than name names, I will just call them recruiter #1 and recruiter #2. The first recruiter (recruiter #1) was a pushy recruiter from a globally recognised recruitment firm. He was pushy, arrogant and kept it strictly business. Recruiter #2 was part of a smaller and cooler recruitment agency that I was definitely more comfortable with.
I had already met with recruiter #2 before this job was even mentioned by them. I had not met with recruiter #1 at this stage (or any stage). When discussing with recruiter #2, they mentioned this role (unbeknown to both of us I had already applied for it), they said they knew the hiring manager over there and could score me an interview and they would be in contact.
I get a phone call from interviewer #2 the next day. They told me that another recruiter (recruiter #1) had already sent over my CV to this company and whether or not they had detailed the job to me, told me about any kind of interview or met with me. I told them that I wasn’t aware my CV was being sent over to the company, which recruiter #2 tells me is a big no-no in the recruitment industry.
So what happens is I send an email to recruiter #1 and tell him that I am already working with another recruiter and that I will not be working with him on this role. What follows is a flurry of missed phone calls, a couple of voicemails and even a text message. Obviously recruiter #1 wasn’t happy with the fact he won’t get his commission for the role (if I am successful).
I sign a form with recruiter #2 specifying that I want them to solely represent me for this particular job position. Eventually recruiter #1 gives up his passive aggressive attempt to make me reason and choose him instead (even though the other guys I was already talking with).
Finally I get an interview date and time. The recruiter told me about the position, I re-read the job listing again to make sure I address all of the criteria. It specifically mentioned they wanted a front-end developer who knows HTML, CSS and Javascript. The salary was decent and there was potential for career advancement as well.
The recruiter does tell me that the interviewer will be testing me (a front-end test) and that my answers will be on sheets of paper. I will be given a question/problem on a sheet of paper and most likely have to write down the answers.
With the drama of the double-recruiter battle behind me, I arrive 10 minutes early for the interview/test. Aware of the fact there would be a test, I did some basic revision as well as a basic self FizzBuzz test in Javascript and a few other basics.
The interviewer collects me, introduces himself and everything is fine. I go to shake his hand, but he tells me he won’t because he has just come down with the flu. He then leads me into a small meeting type room with a table, wall-mounted monitor and whiteboards.
So, here I am seated at a table right across from the interviewer. He keeps sneezing and coughing, he leaves the room briefly to grab some tissues. All the while I am sitting there smiling pretending that it doesn’t slightly bother me he came to work sick, was probably going to make me sick and didn’t postpone the interview (it was a Friday, I wouldn’t have minded waiting until Monday).
He returns and we talk for about 10 minutes or so. He told me how he has been with the company a little over a year and seemed especially proud of the fact he was promoted to team leader after only being with the company for a short amount of time.
He then goes through each position I had listed on my CV from the latest to last position. He quizzes me about each role I have listed, asks me why I left and what I did. He then asks me about the job position, what I know about it, what the recruiter told me and what I knew about the company.
I explain to him that the listing and recruiter told me it was a front-end development position and also mentioned the recruiter said that he has very high expectations of everyone (he meaning the interviewer). He laughed and then went on to detail the job and mentioned that they expect all front-end developers to know Java.
Uh, Java? I thought this was a front-end position. Since when does a front-end developer use Java? Maybe Javascript, sadly he wasn’t confused, the recruiter did say they used Java there, but it wasn’t a requirement for the job though.
I replied awkwardly, “Oh, the recruiter told me it was a front-end position and the job listing mentioned that as well, but neither said it would involve any Java”
He then explains they don’t have the resources to have a dedicated front-end development team yet and all front-end developers need to know Java (seems like he didn’t tell the recruiter that and whoever listed the ad on Seek either).
The test had not even begun and already my chances of getting the job had gone from 50% to about 0.5%. This was going to be an interesting experience I can ramble on about when I am 81 and tell stories to my grandchildren.
I didn’t specifically tell him that I don’t know Java, but I did make it known I wasn’t told about the requirement of Java. But prior to him telling me that, when I was detailing my experience and telling him about myself, I did tell him that my focus is on front-end development these days more-so than the back-end as I find it more technically rewarding.
The interviewer then displays a manilla folder comprised of various quiz questions and puts it on the table. Right before we begin he asks me if I know what a FizzBuzz test is. I replied honestly that I did and that I was expecting a FizzBuzz question anyway. He then responds, “Cool, I will take that one out of the pile then”
He then pulls out the first test question: write a function that accepts an array of integers and only returns the unique values that appear once. He then hands me some sheets of blank paper and then says I can start. Wait,what? He’s not leaving? I am generally very good under pressure, but having this guy sitting right across from me in-front of me while I answer his questions feels very alien to me (I have never had a test or interview like this before).
It doesn’t help he keeps on sneezing, blowing his nose and coughing. He also keeps sighing (not aimed at me most likely, but still off-putting). I freeze up on the first question. I don’t usually solve problems in the real world with someone sitting right there staring at me think, especially not in a situation where a job offer is concerned.
I try and block him out, but I keep seeing him staring at what I write. This is an easy question, but I struggle. I continue to write code on paper, I keep making typos, I keep thinking ahead and not being able to erase what I have already written, I have to keep getting new sheets of paper. I use 4 sheets of paper for one question, then I tell him that I think I am finished the question.
He then takes the sheet of paper with my solution, gets out a red pen like a teacher marking a students paper and starts running through my code right in front of me. He keeps asking me things he can’t read properly (my writing is terrible). A minute or two passes and then he says, “Nope, that’s wrong, want to try again?”
I get a sinking feeling in my stomach, but I try my best to hide it. He gives me a couple more sheets of paper and I try again. Thinking perhaps this should be it, I hand it to him and he marks it. He responds, “That’s not right either. Lets move onto the next question”
Now my chances are about 0.1% – I am letting this guy get to me and on a simple question too. His presence, his continued coughing and sneezing, the fact he is watching me as I write down my answers, it is all building up and I am doubtful this will end in anything but a terrible flu.
The next question comes out of the folder. Trying to regain my composure a little and stay visibly positive, “Swap the values of two variables without using a third variable” – this is actually something I know how to do. I have actually done this before, yet I lock up again. The paper specifically lists that I am allowed to use ES6 answers for the question, this should be enough of a mental hint, but I am well and truly clouded. A shell of the developer I used to be.
I toil around trying to solve the problem with maths. But all of the solutions I come up with, he tells me are wrong. I keep trying and then he eventually shows me his solution. The solution involved a lot of maths, about 5 lines of math to swap the values of two variables. On my train ride back from the interview, that question still fresh on my mind, I have an epiphany: destructuring. I could have just answered: [a, b] = [b, a] and that would have been a valid ES6 answer.
We then go onto another set of questions I get the answers right to without much trouble. Then he presents me with a sheet of console.log statements. The question is simple enough, simply write beside each line whether true or false is returned.
They start off simple and then start to get obscure. One of the console.log lines has a tilde (~) in front of an empty set of quotes like so: console.log(~''==true)
– I guessed the answer to this, got it right, but then he asked me to explain why it returned false. I replied honestly, “I have no idea, I assume that the empty string is false because it is empty and I have no idea what the tilde does” – as it turns out, not many developers actually know that the tilde is nor even ever need to use it. Basically in this instance, the tilde converts the empty string to a numeric value but because it is empty, it turns into “–1”
Then there was another obscure console.log line: console.log(!!(1 ^ 1) == true) – I knew “^” was a Bitwise operator, but I didn’t know the exact name of it or what it actually did. Turns out it is called a Bitwise XOR Operator and too be quite honest even after reading this link, I cannot see what value it offers a front-end developer in a position where they would be building marketing sites and working on the existing site that abuses jQuery quite badly.
I am feeling like this is not the kind of position that was being advertised on Seek or what the recruiter told me it was (probably not their fault). Let the test continue.
We get into some HTML and CSS questions now. These are a little more clearer and probably more inline with the position itself. He asks me about box-sizing, asks some specificity questions regarding CSS styling, a question regarding z-index and which element will be on-top out of a two elements with different values, he asks me to explain what cascading means in cascading style sheets.
Then the interview goes into a weird direction yet again. The next question is, “What browsers support HTML5?” to which he also adds, “include CSS3 into that as well” – I thought my answer was quite clever given the vagueness of the question. I said, “to an extent every browser supports HTML5, if you’re talking about its syntax, you can use polyfills to make older versions of IE recognise new HTML5 elements” then I went on to list which versions of IE support various CSS3 features like 2D and 3D transforms, Flexbox, HTML5 video and audio. He seemed satisfied.
Then he shows me a low quality black and white print out of a button. The brief is: this is a button from a designer and they want you to implement it. Tell me verbally how you would go about building this button using CSS and HTML. For the most part I did pretty well, the quality of the print out was pretty bad, so certain details were hard to make out (like a very faint white outline) and text shadow on the text. I name dropped :before and :after pseudo elements, box-shadow, text-shadow, box-sizing and a few other things I would use (highlighting how impractical some of that might be for older browser support).
The test/interview was nearing to a close and then he asks me: want to have another go at the first question again. Remember the very question I got stuck on trying to get unique values from an array and displaying them? I agreed and then he gave me some paper. Perhaps fresh off of the questions I did get right, I came up with a quick solution (using .filter and a custom method). He marked it and said it was right. I felt relieved, but knew I probably didn’t get the job.
Needless to say, I did not meet the high expectations of the interviewer and heard nothing back. But after the ordeal, I probably would have turned down a job offer (if I got one) anyway. It was honestly a waste of my time and the interviewers time. Had he listed things like Java experience being required and knowledge of obscure Javascript comparison operators in the first place, I would never have applied in the first place.
You don’t hire great developers by expecting them to have a deep-rooted knowledge of a language. Great developers come in all forms, academically and non-academically. To be quite honest, a lot of the problems I solve on a daily basis are due to a great understanding of the tools I use (like the Chrome Developer Tools, IDE’s, knowing what to Google and StackOverflow). It is rare I solve a problem because of some memorised method or obscure component of Javascript.
I am a firm believer that if you want to hire a great developer (a front-end one at least), sit them down and ask them to build something. Supply a PSD, a computer, code editor and ask them to build something. Even detailing requirements such as needing to be responsive, work in IE8, etc. You will get a better idea of the capabilities of a developer by getting them to perform a real world task than asking them to answer puzzle based questions.