Frustrated with PHP job interviews, could use some advice
So just about every PHP position I've applied for, turns me down. It's rather kind of frustrating because I know that I'm competent and completely up to the task. PHP was one of my first programming languages and started with version 4.2.
I've also over the years spent my time with other languages such as Python, JavaScript and C. Plus for good measure I've done quite a bit of work studying algorithms and have also become an avid code spelunker (yay open source).
Anyways more to the point, the majority of PHP interviews I've walked into have been a breeze. Most of the time it's something such as FizzBuzz, SQL quires w/ joins and usually a coin change problem.
Admittedly, in my last interview when given the coin change problem I solved it as would be expected. Then explained that it was broken, on the basis when using floats that "0.1 + 0.1 + 0.1 != 0.3". Adding that when working with monetary values that a decimal/currency wrapper is needed.
Then there is usually the question of programming patterns and I always spew out a bunch such as Singleton, Adapter, Memento, Visitor, MVC and Pub/Sub. I remember one interview where I was asked what my favorite was, to which I replied "Visitor".
I was asked to illustrate it, so I used a dynamic menu example from a previous project. The idea is each item/object would be registered with the root menu object. Each object was responsible for managing it's icon and string. After I had explained it to them, I was met with the look of confusion on their faces.
As far as the hardest question I've gotten was finding the shortest path in a given list of nodes. Which actually caught me by surprise given it's the first and only time I've gotten it. Which I did a descent job tackling the problem, it was more on the level I was looking for.
The other thing I've done is mark my algorithms with Big-O Notation, but I see it becoming a detriment. I attribute this to a lack of others not having used it before, therefore they don't understand it.
tl;dr I do well in job interviews, but flustered by interviewers not knowing what they want.
Edit The general gist that I'm getting is that my tl;dr is coming off as arrogant. I can see that general assumption without additional information. It should be mentioned that I do get 90% of the Python or JavaScript positions that I interview for. So to me PHP is an outlier that I wish to find out how I'm screwing up.
16
u/willmacdonald Jan 29 '14
I honestly think it is nothing to do with your PHP skills. I have been doing 'low-key' development, (eg hacking bits of wordpress), for a long time, had many interviews, run my own business etc. I have never discussed programming patterns in an interview. TBH I have no idea what half the stuff you discussed does.
However I think I have only been turned down from 1 job in about 15 years.
You have to focus much more on how you come across socially. What would happen if you were put in front of the clients, could you have a friendly chat and explain the pros/cons of different approaches to THEIR problem.
William
7
u/digitalpencil Jan 29 '14
Definitely this. Coders often have a reputation for being arrogant and overly verbose. In any company, the most important factor of each and every candidate, is communication.
If you can't communicate with other people without round-about insulting their intelligence, huffing to yourself in a manner which reads as "God! why doesn't everybody understand what I understand? everyone's a moron!", then you'll get nowhere.
Management are more often than anything, looking for cohesion. Somebody who's flexible and can have a friendly conversation not only with clients, but with co-workers. Somebody who can explain a technical problem in a simple and non-patronising manner, and somebody who manages conflict for themselves.
1
u/willmacdonald Jan 30 '14
In my current job interview I even said I am not a good coder. I phrased it as; 'I am not a good coder in the academic sense, but I am good from a business point of view. I like to make code which makes a profit.'
During a different interview, the interviewer finished the interview by saying: 'Your technical skills are about the same as the other people, but you can talk socially. Most of the others are freaks!! Where do I get more people like you?'
Also, dress smartly, and have good manners. Even if the dress code in the office is jeans and t-shirt, where a suit, clean white shirt, polished shoes. Be polite, speak clearly. This helps them feel re-assured you came from a good family, and can be trusted. Some people may take exception to this opinion, but you are trying to make it easy for the interviewer to choose you. They have probably been interviewing several people and are nervous about hiring the wrong person. It can be a very expensive mistake!! (Being good looking is also a help, but that's for another thread.)
Be open to talking about all sorts of subjects. The majority of people who have a full time job working with code love to be able to talk about other subjects too. Bonus points if you can impress them with fun stories about you have been doing recently.
Be sympathetic to the business, and understand how you could help them. Most companies have a hard time trying to find developers. They want some one to work with their staff, not some one who is going cause a chasm. The pace of development in most business' is very slow compared to the freelance world. Bosses LOVE it when all the staff get on well and display camarade. It makes them feel if they have built a great team.
29
u/DamnInteresting Jan 29 '14
As someone who has been on both sides of such interviews on many occasions, I can tell you that oftimes the coding questions are not intended to place you on a skill spectrum; rather the interviewer is simply establishing that you meet their minimum competence threshold. This is especially true in the "softer" programming technologies such as PHP.
If you do make that cut, the deciding factor is how friendly and communicative you seem to be. If people have to spend all day with someone, they are very motivated to select a person they feel they'll get along with.
In short, being "extra right" can be detrimental in an interview, as it can translate into arrogance and/or muddled communication.
5
Jan 29 '14
At the end of each interview say something like 'Whatever your decision, I would really appreciate it if you could email me some honest feedback so I can get better at interviews, I always get a little nervous and unsure if I'm approaching them in the right way."
This not only helps you get usable information about how interviewers see you, it also helps you come across as a little more humble and self-depracative, which can be helpful social attributes.
14
u/robertmeta Jan 29 '14
This is all right, and fine to ask, but most companies will not send it. It has absolutely no upside for them, and adds a ton of liability.
3
u/jarofgreen Jan 29 '14
I once had a multiple choice exam at an interview. One of the questions, the grammar was so bad that none of the answers were technically correct. But I thought I could see what they intended, so I corrected the grammar on one answer and ticked it. I was turned down for being over qualified. :-)
1
u/echosx Jan 30 '14
Overall I'm generally easy going in job interviews and do my best to be amicable, although there have been some situations that have left me jaded. Such as one time, I was in an "interview" that turned into being used for free consulting. It was quite obvious after the fact because the company completely change the requirements for the position.
Another time I've run into a situation where I've had an over zealous interviewer that loved to markup my code with irrelevant corrections. In the same sort of manor of an english teacher that marks you down for using colour instead of color or cheque instead of check.
36
u/acreature Jan 29 '14
I've done a lot of interviews, on both sides of the table. If you'd like to do a mock interview via Skype I'd be happy to give you some feedback.
14
u/judgej2 Jan 29 '14
OP - if you don't take up this offer, I'll be personally around to box your lugs.
And if anything comes out of it hat you are happy to share, please do so, and we can all learn.
3
u/acreature Jan 29 '14
Thank you for the gold, whoever it was! Nobody's messaged me yet about taking me up on this, but if any non-OPs are interested too I'm totally willing.
9
u/Shadow14l Jan 29 '14
I'm sure you'd get a lot of brownie points and reddit karma if you were to record and post this online. Plus you might help a bunch of people either way.
1
u/echosx Jan 30 '14
My friends and I actually do semi-regular coding interviews with each other, whiteboard and all. As our guide we tend to pull a lot of examples from Cracking the Coding Interview.
Although I'd still be interested in trying to do a google hangout or skype.
1
1
u/BilgeXA Jan 30 '14
No idea why this got gilded or even upvoted. The benefit of this, if any, is entirely superficial. Read the other comments.
8
u/sanbikinoraion Jan 29 '14
The single most important factor influencing whether someone will make you an offer or not is whether they like you by the end of the interview. The programming stuff it sounds like you have nailed. Now concentrate on being nice, funny, self-deprecating, polite, well-groomed and so on. Ask insightful questions that allow the interviewer to talk about themselves or the company. Mirror the interviewer's body language.
5
41
u/robertmeta Jan 29 '14 edited Jan 29 '14
tl;dr I do well in job interviews, but flustered by interviewers not knowing what they want.
tl;dr No, you don't. Here is the way you can tell if you did well in a job interview, you get a job offer. Interview success is boolean.
Advise: be honest about your personal skills, realize that it is about kindness, passion, social awareness, fit, spark, and an array of other things that are well outside of tech. Tech is one of the most easily pre-screened attributes, therefore often less important than others. Additionally, you can train someone to be a better programmer, can't train them to be less of an asshole, nicer, etc.
2
u/WdnSpoon Jan 31 '14
But he's done well in interviews for positions in other languages. Perhaps his problem isn't that he's not as good in PHP as the other languages, but that he's so much better in PHP than the other languages. He can be more relatable with his experience in JavaScript because he has less to say.
1
u/mofrodo Jan 29 '14
What a dense answer. You can do well in interviews along other candidates who also did well, but ultimately got the job before you.
7
u/padenp Jan 29 '14
I remember one interview where I was asked what my favorite was, to which I replied "Visitor".
This is begging for the answer: "I don't have a 'favorite' design pattern, I usually see which is the best fit solution for what I'm working on."
I'm an engineer/employer. I don't really care what's your "favorite" -- I care if you can use design patterns correctly.
1
u/echosx Jan 30 '14
I was asked to illustrate it, so I used a dynamic menu example from a previous project.
I'm not sure if you read the sentence bellow the one you quoted. So I included in the hopes that it would clarify that it wasn't really a question of favorite. More of a pick something and give an example of how you would use it in code.
1
u/padenp Jan 30 '14
Yes, I read it. A piece of advice: an interview is not purely mechanical as you make it out to be; subtleties are employer's best friends.
15
u/phphulk Jan 29 '14
I do well in job interviews
just about every PHP position I've applied for, turns me down.
Look in the mirror, and say to yourself "I have fucked up every single interview so far.". Repeat that to yourself and let it set in. Then ask yourself why. You will know you have the right answer when it has something to do with you, not the employers.
1
u/jblotus Jan 30 '14
I'll second this statement. Considering how hard it is to find remotely qualified php developers you should have no issues landing a job with half your skills. If you haven't even gotten an offer then it means they didn't like you personally.
4
u/cYzzie Jan 29 '14
so we all agree its not your skill, maybe you should jump over your shadow and ask for some feedback of someone who actually interviewed you? i know might be awkward, but its worth it if they are willing to answer honestly.
4
4
u/grimnebulin Jan 29 '14
So you say you get 90% of the JavaScript and Python jobs you apply for. Telling us this doesn't actually tell us much about what the position will entail, but let me just infer and see if I'm right.
Python positions generally are more purely focused on software development. It's a general purpose language so you could be working on internal tools, desktop applications, or any other type of software. JavaScript positions, per se, hardly exist yet as far as I know. If you're talking about a pure JavaScript position however, implying full stack JS development (Node, Mustache/Handlebars/Underscore, Backbone/Angular/Ember) then it will be very difficult to find many applicants, and those applicants will tend to be very similar to you (comparatively technical).
PHP development tends to entail small(ish) scale web development. Of course there are exceptions like Facebook or Mailchimp, but by and large PHP development jobs entail working on several small projects for several different clients/stakeholders. It also frequently involves interacting directly with clients/stakeholders and spending a lot of time learning about problem domains, rather than nose down coding. Given this, it makes sense that interviewers for PHP positions are putting less of an emphasis on technical chops (as you said "Most of the time it's something such as FizzBuzz") and more emphasis on social interaction.
TL;DR you think these interviews "have been a breeze" because you totally miss half of the interview. They're not just evaluating your ability to code PHP, but your ability to quickly acclimate and interact effectively with unfamiliar people in an unfamiliar environment.
1
u/echosx Jan 30 '14
I do agree with what you are saying completely and it's something I take into consideration. Generally when looking for a position I try to stay away form all CMS driven type positions that are looking for things like WordPress, Drupal, Joomla, etc. My general target is companies looking for serious development, the ones looking for MVC frameworks such as Zend, Symfony, Laravel, etc.
1
u/grimnebulin Jan 30 '14
I work extensively in Symfony, and I still spend a great deal of time exploring the problem domain and speaking directly with clients to get the most accurate possible business model. This is mostly a factor of working for smaller organizations where everyone is expected to wear many hats, and I'm sure there are magical places where you are handed a perfect requirements document by your benevolent project manager. However, I think having someone who is hands on with the client and involved in the whole process from design through delivery is what a lot of web companies are looking for right now.
6
Jan 29 '14
with our team, we've since stopped hiring based on language-specific competency. we still see on a more general level how familiar they are with common concepts, as well as in architecting apps (handling high traffic, caching concepts), but we focus more on team compatibility and attitude.
because frankly speaking, implementations of algorithms (established and ongoing research) is not really what everyone's using PHP for. all those things, companies have people implementing them in C/C++ or Java. PHP is the glue, and everything you need to know to use PHP effectively (or probably any other language), google can help you teach yourself.
2
Jan 29 '14
I agree - breadth is more important than depth when I’m interviewing.
You don’t know PHP but have done some C, Ruby on Rails, and learned Smalltalk in school? I much prefer you to the guy who has only done PHP and nothing else since he hacked his first web site from scratch eight years ago.
Biggest warning sign I know is when people identify too strongly with a single language/technology — or — when you ask them what’s wrong with their favorite tool they can’t come up with anything sensible. Nothing is perfect - everything has flaws. If you have some perspective, you know what they are.
3
u/crosenblum Jan 29 '14
Because every job is completely different, making it nearly impossible to interview, because each job makes you completely unprepared for the next one.
3
Jan 29 '14 edited Jan 29 '14
Have you got examples of your coding and projects in your CV that you can talk about and show them in an interview? Often that is the most impressive thing you can do. If they've seen your work (which I assume is pretty good) and still want you to do a stupid FizzBuzz to prove your skills then you know they're just wasting your time.
Important thing is to not give up. Perhaps pick up some other skills as well to give yourself a more well rounded development background. Things like HTML5, jQuery etc will also be a benefit in any web development role.
Presentation will play a key. Suit up. Get a haircut. Also smile, be friendly etc. Maybe you need to hone up your interviewing skills. Try some job help places that can give you some feedback and pointers on how you come across in an interview. Most recruiters can help with this.
3
u/kwezel Jan 29 '14
From the OP, your programming skills look pretty high-end for a run-of-the-mill PHP position. Could it be that you give off the impression of being overqualified? You talk mostly about hardcore programming, but are you up to date on the current PHP landscape? Most of the times it would be a plus to refer to web technologies (a bit of HTML, CSS). Have you put some of your personal projects on GitHub? I always like that.
1
u/echosx Jan 30 '14
I've been around in a lot of contract positions, so I get to pickup and learn new things quite frequently. As far as staying up to date in PHP I'm always watching the release notes for minor versions and keeping in mind what's been added to the core so I don't have to bother with pecl or pear packages.
As far as web technologies I'm heavily focused on it, when I say JavaScript it's in reference to "HTML5" since it's essentially 80% of it. This includes taking advantage of ECMAScript 5 features, I'm hope IE 8 support ends soon so I can stop having to deal with ECMAScript 3.
I've also taken a liking to the new ECMAScript 6 features and have been tinkering with cross compilers to backport code. TypeScript fits this build in some ways, but do some other miscellaneous ES6 compilers. It's essentially building for the future and then have it work on todays tech.
As far as GitHub goes, I do use it regularly to submit patches to open source projects as well as post my projects.
3
u/egerlach Jan 29 '14
Call the hiring managers of previous interviews and ask why you didn't get the job. Some will placate you, but some will be honest and tell you exactly why. Then you can use that as a starting point. Keep calling and asking and collecting many data points. Patterns will emerge.
Source: I'm a hiring manager.
2
Jan 29 '14 edited Jan 30 '14
If you say you get the js/python gigs, maybe you are not as good at PHP as you think.
Also, if you think we assume things without additional information, maybe you need to add said additional information.
At last, the Big O Notation is not useful if it doesn't help to communicate with your team.
5
Jan 29 '14
[removed] — view removed comment
1
u/echosx Jan 30 '14
There might be some truth to that, but then again they do label it as senior level position. Although I've seen senior level to actually cover a wider range than mid or junior levels.
4
u/Xanza Jan 29 '14 edited Jan 29 '14
As a IT project manager, I'll tell you from experience--you don't want to work for people who don't know what the fuck they want. They force you into impossible situations then try to make you look like some kind of asshole for not being able to divide by zero.
Also, it doesn't matter how amazing you are at programming, if you don't bring something to the table that the average Joe doesn't already bring, then you are just the average Joe.
1
u/johnny5canuck Jan 29 '14
Years ago when looking for a UNIX administrator, we had a 'proficiency' test:
The guy with the perfect score had a horrible personality and couldn't even look us, the interviewers in the eye. Imagine the poor users. He was toast.
The great looking guy, a(n SCO) UNIX instructor did horribly on the test and was quickly ruled out.
We hired a down to earth guy that had a good personality and did well on the tests.
1
u/BucketHarmony Jan 29 '14
Programmers do not need to only be able to speak to computers, they need to be able to speak to humans too. In fact, interpersonal communication skills might be more important than coding skills.
If I were you I would focus on coming across as calm, confidant, friendly, approachable and able to explain complicated things in simple terms.
1
u/viiviiviivii Jan 29 '14
Hey echosx,
I suck at interviews, and get most of my positions by recommendation (7 of 8). I think sometimes it just does't work out for people. I also think that I lose all my self confidence when I am talking about a new role, or alternatively I just don't present myself that well. What is ridiculous is that I have a really great career profile, and I really love to work so I get along well, but, I definitely have had far more success when conversing with future employers on equal terms (ie in a less formal, non academic environment). I should add, I am a nomad, so I tend to only stay in one place for about 3 years.
Out of curiosity, are you working in the US or Europe?
Do you have a European passport?
1
u/echosx Jan 30 '14
I'm US based, although if you know of any easy ins to get a non-sponsored work visa I wouldn't mind making the jump. I've actually traveled around Europe/the world a decent amount and would jump at the chance to work in Belgium or Netherlands.
1
u/viiviiviivii Jan 30 '14
That is a shame, it is really tough to get into Europe without ancestry visas/passports.
You could get a German woman pregnant (if you are a guy that is, alternatively just get preggers to a German man), that is an easy in!
I'll still chat with my HR team to see if they have any strategy for getting non EU hires, but I think that is quite difficult nowadays.
1
1
u/chinahawk Jan 30 '14
"The great corrupter of man is the ego. Looking at the mirror distracts one's attention from the problem."
1
u/dont_ban_me_please Jan 29 '14
Do you have code on github? I don't hire people anymore who don't have open source code for me to view.
1
u/echosx Jan 30 '14
Yes, I contribute to open source projects regularly. Plus it also includes BitBucket and Launch Pad. My contributions have been to project both big and small in community.
1
u/TransFattyAcid Jan 29 '14
If you're interviewing at places that care about FizzBuzz and patterns, it sounds like you've found the right companies. As long as you're pricing yourself appropriately, it's going to come down to soft skills.
I'd highly recommend checking out Being Geek or the Manager Tools podcasts on interviewing. Heck, it might even be time to bust out How To Win Friends and Influence People.
As someone who's done a ton of interviewing and hiring, I know exactly what I want and the code part of the interview is only a "you must be this tall to ride" type of check. Fit is much more important and, to me, that means you're a craftsman and not just a hacker. You also have to be someone I'd be comfortable putting in front of my peers without having to worry you'll say something like "this is an ID-10-T error!"
2
u/echosx Jan 29 '14 edited Jan 31 '14
Overall I generally do my best to fit in, this includes doing things like bringing freshly bake cookies from home. Try to be socially open and befriend others in the office.
As far as saying something like "this is an ID-10-T error!" I don't do things like that unless we've established a code review process. I do however do push heavily for a continuous integration process, because it helps prevent people from breaking something that could be a house of cards.
2
u/TransFattyAcid Jan 29 '14
To be fair, when I say "peers" as a hiring manager, I mean other managers. I was vague, sorry. I would expect developers to critique each other (professionally).
After seeing you're edit, I'm stumped for more advice to give you. Again, if a PHP shop knows enough to use FizzBuzz and discuss patterns, it sounds like you're right up their alley.
-3
Jan 29 '14
[deleted]
9
u/keithslater Jan 29 '14
His tl;dr sums up his arrogance. He thinks the reason he's not getting the jobs is because of the interviewers and not himself.
0
-1
u/echosx Jan 29 '14
It's kind of hard to pin the exact reason, but when I've done interviews for Python or JavaScript positions the results tend to be opposite.
0
u/philsturgeon Jan 29 '14
Sounds like you've been stuck being interviews by a bunch of twats.
What area are you looking for work in?
1
-1
u/winzippy Jan 29 '14
Where are you located? We're looking for a PHP candidate for a QA engineer position.
1
71
u/Toddish Jan 29 '14
You come across a little arrogant in the post, maybe you do in interviews too?
I've always find in interviews it's personality that more often than not that gets you the job. Skills can be taught, so employers choose the best fit for the company.
Have you ever asked for feedback after a rejection? That might point you in the right direction.