Hacker News new | past | comments | ask | show | jobs | submit login
On asking job candidates to code (philcalcado.com)
361 points by lnmx on March 15, 2016 | hide | past | favorite | 508 comments



I'm going through the interview process this week at two different companies. One of the companies I found through an ad on Stack Overflow whereby they publish two programming "exercises/puzzles" with the opportunity to earn $100 for a correct answer to each puzzle ($200 total for two correct answers). While I spent more than eight hours on both puzzles, I found them to be thought provoking and I learned stuff in the process so I don't feel like I wasted any time and I got a check in the mail for $200. My code was reviewed by their dev staff so they had immediate feedback on my programming ability and high confidence to bring me in for an on-site interview. I like this process and consider it worthwhile.


What these companies have successfully done is weed out all the great devs who value their time very much. Those who are desperate for a job will spend the 8hrs it takes on these silly tests and make it thru the process. Good developers who can take their choice of jobs will just ignore these companies who think they are being clever to require a test, and just move to some other company what is not showing signs that they will be a pain in the ass to work for. IMO, the more difficult the interview process, the more of a pain in the ass the company is going to be once you're hired. If an interviewer is not capable of determining my knowledge level by a normal interview that tells me right away something up, and I probably don't want to work with them because they aren't too smart themselves.


So you basically dismissed all of Google, Microsoft, Facebook, Amazon - all of them. Because, guess what, they all want you coding, sometimes on a computer, sometimes on a white board.

And no, they can't determine how awesome you are based on a normal interview process. Nobody can.

I've interviewed people with "20+ years of industry experience" who will swear up and down they can hack the Linux kernel but then can't reverse a string in place or write a function that determines if a word is a palindrome or not.

Having someone write some code, any code is meant to weed out those muppets. Just show me you can actually write a loop. With an 'if' statement somewhere. Please. That's all I ask. You have 15 years+ experience with SQL server? How about a simple JOIN statement? Please?

Now, companies like Google take that too far and I'm 99% positive that the day-to-day job for more than 19/20 people who work there does not involve suffix trees or reverse-printing a linked list through recursion or implementing a stack with two queues, but those are meant to shrink the pool of potential hires from the thousands to the dozens. Nobody wants to sit through a normal interview with thousands of people, better to stump most of them with idiotic, useless quiz questions and interview only a few dozen in person. I get it.

I think interviewing for software jobs is horrible everywhere, period. We just have no way to determine if someone is good or not - you can put anything on your resume and it's hard to verify and compare/contrast with other candidates.

I believe the solution is to hire someone temporarily for a few months on reduced salary/benefits (which would still be considered an amazing deal for 85% of the work force in the US) and see how they work out - can they actually produce? If so - full time, if not - bye.


"What these companies have successfully done is weed out all the great devs who value their time very much."

That's a feature. They get the good, undervalued talent early.

"If an interviewer is not capable of determining my knowledge level by a normal interview that tells me right away something up, and I probably don't want to work with them because they aren't too smart themselves."

News flash, all companies are horrible at determining knowledge level by a "normal" interview. The only ones that have a hope are those that use some sort of test or have existing work to review.


"If an interviewer is not capable of determining my knowledge level by a normal interview" -> So it turns out that mostly, no, you really can't, even though you think you can.


Good developers who can take their choice of jobs

*who are just as likely to leave for another company as soon as something better comes along?


You are implying that willingness to take a silly coding test will translate to greater company loyalty?


Ah, yes, loyalty to a company. Because a modern-day public company would never stab its employees in the back or lay them off if Wall Street was unhappy, right?


What these companies have successfully done is weed out all the great devs who value their time very much

I'm not sure I understand this. A dev who valued their time very much would already be working at a job they liked enough not to be looking. As job satisfaction declines, time opens up to work on whatever you want to call this, a technical feeler, perhaps. A dev who values their time wouldn't get snowed under by a ton of these because they wouldn't be applying willy-nilly, only to those places they want to work.


Not for those of us who have experienced the pain of terrible management and burnout caused by this. The last search I did I was also working 50 hours a week under very poor project management. I had to rule out any prospects that involved meeting with recruiters or these screens. I got a job I liked.


Not actually all that hard to understand: yes, lots of talented devs who hate wasting time have a job they like. However, N is a big number here, so your assertion on that fails.

Also, your assertion that "as job satisfaction declines, time opens up" also does not follow. Plenty of very talented people are both unsatisfied and snowed under with crap.

Finally, saying that a Dev wouldn't be snowed under because they wouldn't be applying willy-nilly would hold iff hiring practices at firms where even remotely efficient and fair.


And how did such a person learn which places they want to work if not by spending their valuable time looking at all the places they don't?


There is a selection bias here as others have noted, the exam is likely biased in favor of younger, unmarried workers, especially those without children who have 2-8+ hours to spend on top of their other commitments.

I applaud their decision to pay for correct answers, as it balances the "cost" bourne by the applicant and employer. Employers who send out tests en masse have an asymmetric advantage -- they can force many candidates to incur a cost without incurring much or any cost of their side. This causes bad behaviours.

Traditionally in interviews, companies "paid" with their time, but online exams skewed that. Paying something per correct answer at least makes them think twice before inviting hundreds to the exam that they have no real intention of ever interviewing.


To be fair, younger workers will usually have less of a professional network; older workers will usually have more of a network, and are more likely to have open source code that's reviewable.

It's all just ways to filter. If I can filter you through our mutual network, I'll do that - if I can't, open source code; if I can't, coding test.


The flip side of this is that not everyone has the luxury of that much free time to focus on puzzle-type exercises just to get a foot in the door. This process seems to select for single people with a good amount of free time, which, depending on who you ask, is possibly what they want (if e.g. frequently greater than 40hr work weeks are expected).

Edit: thinking more about this, it's good to see that it's a paid puzzle, so even if you don't get an interview, you are still compensated for your time.


I understand your concern but you are actually talking from a privileged position. Its not really that hard to take a bit of time out of your evening or weekend to do some online programming exercise - IF that is the only thing that companies want. Anecdotally speaking I had to do these types of things while working full time to pay the bills.

Having a broader perspective - its maybe only in programming that the hiring process is so much easier. For almost any other job you need the right technical skills, years of expensive schooling, unpaid internships and have done a lot of networking ( cough nepotism cough ) - its only in programming that raw skills can get you anywhere.


> its only in programming that raw skills can get you anywhere

Simply not true. Maybe there's a few exceptions, but in general, most companies (especially in tech - just check out our great diversity :|), filter based on arbitrary things like 'school', 'specific # years of technical experience', and other flavours of the day.

Example: I had an interview with Mozilla many years ago, where the first question was, I kid you not, "Are you a Javascript rockstar?". I said no (being truthful - I was naive back then), to which the reply was an immediate "Sorry - bye".


> its only in programming that raw skills can get you anywhere.

The skill of programming is more like carpentry, mechanic, heavy machinery operation, or machining. I'm not going to higher a carpenter that can't tell the difference between a hammer and a saw, and I won't find a machinist useful if they can't run a lathe.

We need to start thinking of programming as a journeyman tradecraft career.


But that is exactly the strategy of the company. They want to select applicants that are young and have enough spare time to solve these puzzles. The fact that the puzzle is paid also makes sure that the small amount of cash is enticing for the applicants (i.e., young developers).


I don't believe that to be their strategy at all. It's a small company with a few devs who don't want to waste their time on junior/mid-level candidates. It's a prescreening process on both sides (me and the employer). I'm early thirties with a wife and two kids so it's not like I have dozens of hours to dedicate to that task.


This. I like this. Other companies wondering why they cannot find good devs need to do something like this.


And realize that spending only $200 per candidate is a lot better deal than they would ever get from spammy, scummy recruiters.


After you get the job you should share the name of the company!


which company was the one offering puzzle homework ?


A couple of months ago I did a 'homework' assignment for an interview (it involved writing a simple REST service in go, even though I have at least one personal project demonstrating exactly this skill -- to an even greater degree -- in my github profile). During the phone-discussion after turning in the project, the mid 20-something lead developer couldn't find anything to nitpick (I could have) and even told me he thought I was a better programmer than him. The conversation went very well and I felt confident I would receive an offer.

Now, what do you suppose happened next? I never heard from them again and all of my attempts at communication were ignored. I'm starting to think my age is becoming a factor (mid 30s) -- and also these kids have no sense of respect and professional courtesy. I'd like to say this was an isolated incident, but that would be a lie.

Stupid me just spent his Saturday doing another such project, though at least this one presented a more interesting problem. I swear, if I find out I had my time wasted again I'm going into consulting. Or maybe I'll go to truck driving school. Or open a cafe. Screw this "employee" stuff.

The fact that so many employers treat candidates like this tells me that the whole "it's hard to find good developers" line is a lie.


> The fact that so many employers treat candidates like this

Don't give up. Most established companies aren't run by 20-somethings. If the seniors are already in their mid-20s and lack professionalism, then most likely there are other issues going on at this company. You may have dodged the proverbial bullet.


> You may have dodged the proverbial bullet.

Wish I could upvote this twice! Every rejection I've ever received came with an information-rich sideband that told me more about the prospective employer than an acceptance would have. In at least half of such cases I said to myself: "phew, that was a bullet I was lucky to dodge... imagine how it might feel to work with these people!"


Often the "information sideband" is the very fact that the company decided to cut off all communication as a way to convey rejection. If they treat random people that way, how do you think they treat people who are obligated to be on their worksite every day?

Companies: DON'T DO THIS! I, for one, actively discourage smart friends from interviewing at places that treat candidates like shit.


I had nightmare of a interview experience with AirBnb in 2012. They asked me take 2 days off from work and fly all the way to SFO after I wasted couple of hours doing their coding homework. The first interviewer started with "your degree is not from a good school" like the very first sentence right to my face. He then asked me a string matching question, and insisted that I code up his brute force solution (with terrible insert complexity) and second interviewer asked me to code up a binary search tree and . After which the recruiter walked in asked me to leave the building saying the interview was not going well and walked me out of the office.

I felt so humiliated, worthless and traumatized that I stopped interviewing for atleast 3 years after that. I now have (irrational) fear of interviews.

This experience has dissuaded many of my friends from applying there.


> This experience has dissuaded many of my friends from applying there.

This should be the lesson for employers: an interview candidate who feels good about their interviewing experience, even if they aren't hired, can refer their qualified friends to your company. The alternative is that they might discourage good candidates from interviewing with your company by warning people on Hacker News about its hiring practices. Also, the candidate might be a good fit for a different position in the future.


But they only want the super extreme mutant killer rockstars who would destroy galaxies to work there, so it's ok


Nowadays, at least for their engineering internships, they have a pre-filled list of top schools to choose from followed by an "other" option (at least when I tried applying a couple years ago).

That told me exactly what I needed to know. I'd be instantly rejected because of not going to a "good school".


I'd love to say "don't worry, you'll get a chance to prove yourself", but I can verify the instant rejection.

Sample size of one, but I dropped out of a top public school, immediately started working full-time x 1.5, and ended up with a resume that my now-graduating colleagues are blown away by. A few top companies (Google and Yelp! included) have flat out refused to screen me based on no other conversation than "Oh, I never finished school because _____". Hell, I interned for a large bank and received a great job offer which was promptly rescinded after the right manager found out what everybody else already knew.

It's one thing if I fail the interview process. I get that. I know I have a lot to learn. But the way some of these companies act is just messed up. FWIW, none of my independent clients care.


Hell, I interned for a large bank and received a great job offer which was promptly rescinded after the right manager found out what everybody else already knew.

Yeah, banks (and many big companies) are like that.


I hope this comment doesn't discourage others. I went to a school not known outside of the southeast (and even sometimes not then) and received interviews with many of the top companies (Google, Microsoft, Intel, Amazon, etc), even when I had to check the "other" option for schools.


What school did you go to? If you don't mind me asking.


Georgia College & State University


At least they tell you instead of taking the applications anyways and then tossing out resumes that don't match.

I once came across a job application that had TOP SCHOOLS ONLY emblazoned across the top.

Thanks for saving me my time in applying.


Curious. What schools are on the list? Would a CS degree from Georgia Tech do? Also curious about VT and NC State. I think all three of those are 'good technical schools'.


Here is the screenshot I took at the time: http://i.imgur.com/FXEHuhc.png


"This applicant went to some cow-tipper school called the University of Illinois at Chicago. Claims he had as a thesis supervisor some guy named Daniel Bernstein for his cryptography project... eh, put him in the 'Other' pile. And when he turns in his 8-hour take-home, make sure it's perfect."


That list is super weird, it isn't even a copy and paste of the top 20 schools. No Cal Tech grads allowed at Airbnb!


Wow, they are leaving a lot of great EE/CS schools out. No worries, the competition will hire them ;)


CalTech didn't make it, so I guess Knuth would be out of the running ;-)


Knuth taught at Stanford. He still lectures there occasionally:

http://cs.stanford.edu/~uno/news.html#lectures


Case Western Reserve University as well (he did his undergrad here).


FWIW, someone else in this comment thread said they had interviews at top companies without going to a top school.

So don't necessarily count yourself out immediately. Take what I said with a grain of salt.

However, since they do have lists like that (they being unicorn-type companies, I think) they quite likely do use it as a metric- maybe not necessarily a requirement.


How is CalTech not on that list? It's a conceptually-silly list to begin with, the least it could be is relatively complete.


I studied Computer Science at NC State. Your experience will depend entirely on what you hope to get out of a CS education:

At some schools, the CS curriculum is focused on "pure" computer science. These curricula are packed full of theoretical CS and rigorous mathematical courses, and are great for people who hope to go into CS research or academia.

At other schools, the "CS" curriculum would be better called "software engineering." These curricula focus on programming and applied CS, giving more "practical" skills for people planning to proceed straight to industry.

At NC State, the undergraduate CS curriculum was a pretty good balance between both. You'll get a mix of both theoretical and applied CS, the downside being that you won't get very deep coverage of either. However, I feel that I was well-prepared to enter industry after graduation, and I've been pretty successful in my line of work.

Here's a small subset of what I studied as an undergrad at NC State:

    Theoretical                 | Applied
    -------------------------------------------------------------
    Discrete mathematics        | Java
    Automata theory             | C
    Computability & complexity  | x86 assembly language
    Linear algebra              | Software engineering
and some courses that offered a healthy mix of both:

    Mix
    ----------------------------
    Data structures & algorithms
    Operating systems
    Computer graphics
    Artificial intelligence
    Database management systems
    Multimedia systems
    Human-computer interaction
Of course, there are a lot more courses offered than just these, but this is a subset of the ones I took, along with how I would categorize them. Using your restricted and free electives, it's definitely possible to plan a degree that leans one way or the other: more theoretical or more applied, but the way the required courses are laid out, your foundation will always be a bit of both. There's also a "Senior Design" capstone project, where you're put into a small team (~4 students) and given a project from a local sponsor company. You'll work closely with some contacts at that company on a real-world software project. I formed lasting bonds with my team mates, and we still keep in touch to this day. Two of us were also offered full-time positions at EMC (our team's sponsor company), where I worked for about 2 years before leaving for greener pastures.

Another benefit of NC State is that it's in the NC Research Triangle area, and the Research Triangle Park is only about 10 minutes down I-40 from campus. RTP is home to a TON of tech companies, so there are plenty of opportunities for relevant employment, both for students (internships, co-ops) and for recent graduates (full-time work).

Raleigh is also a great place to live and work. Plenty to do, great job availability, low cost of living, and traffic is never too bad. The only downside is that the public transportation story isn't nearly as good as, say, D.C.'s (the bus system isn't terrible, though -- I generally found that I could get where I wanted to go in a reasonable amount of time, and there are connecting buses that will take you to nearby Durham (Duke) and Chapel Hill (UNC)).

I very much enjoyed my time at NC State, and if I could go back and choose a university again, knowing what I know now, I'd choose NC State again.

I hope this helps! Feel free to ask me questions :)


It might be that the list includes schools where they have visited and presented, etc. Thus they can measure the effectiveness of their intern pipeline development program. I know that is something my company does.

Might be smarter to have a "Where did you hear about this internship?" question instead and have "on-campus event" as a choice.


"Your degree is not from a good school"

Next time they do that, I hope the candidate says whatever profanities they feel obliged to say to the interviewer's face. And then walks out.

By all means, keep posting + telling your friends about this experience.


Its all too common. Probably for the usual reason - it works so well. Many candidates from a 'good school' have been filtered for ability, so essentially come with an endorsement. Those from other schools don't have that endorsement. They may be equally capable, but then again they may not. In fact, often not.

So, discrimination is rampant because it works so well. Its not fair, possibly not legal, but hard to stamp out.


They have a perfect right to use educational background as a filter. But that's not the issue here.

If that's the filter they want to use -- the time to apply it is before inviting the candidate to take 3 days out of his/her life to fly across the country for an interview. If it's such a huge "ding" for them that a candidate doesn't come from a certain set of preferred schools -- fine, don't invite them for an interview. It's really quite simple.

Of it's a "ding", but they want to give the candidate a "shot" -- that's fine too, but there's no need to blatantly neg the candidate right to their face. It serves no purpose; it's just uncivil and unprofessional. (No purpose, that is, other than to give the interviewer an ego rush, and thereby provide a temporary defense of sorts against their own very deeply rooted insecurities. That, and to basically deep-six the candidate's performance, and nullify whatever enthusiasm they might have had for Airbnb during the rest of the, by that point, manifestly pointless "interview").

And the fact that such allegedly highly educated people would so quickly resort to numbskull behavior like this suggests that maybe's it's not such a good filter, after all.


This x1000. Well said. I've gone through the same thing: at one place, for the third(!) onsite, I got to talk to the CEO, who said, "Well why the heck should I hire you, given that [part of history]?!" -- something that had been discussed with each interviewer over the previous two rounds. I wanted to find a diplomatic way to say, "I don't know if you're just probing my ability to sell myself, but if not, and this was such a dealbreaker for you, it might have been a good idea to resolve that before taking me through three onsites, you know?"


If that [part of history] was a brush with law, taking time out to deal with personal problems, or being caught up in a failed business endeavor of some sort -- you can always spin it out as a learning experience, and say some variation of "It wasn't the best choice make, but I think that going through it made me a better, more mature person."

But not knowing what exactly that [part of history] was about, of course we can only speculate.


Nothing at all like that, and I had no problem applying anywhere else. The point is, they shouldn't send you through interviews when they can know they're not going to hire you anyway. (In the context, it seemed like the CEO was just trying to make himself useful by feeling out each candidate for what his gut told him. Whenever I asked him to clarify a question, he would refuse to explain at all, and just say "whatever you interpret that to mean".)


Hmm -- I'm not you, and I wasn't there. But something tells me you're looking at this (retroactively) as a "glass half-empty" thing. As in: "they must have seen some big negatives in me, otherwise they wouldn't have asked that question, about [past history]."

Whereas you could have also looked at it this way: "They must have seen some big positives in me, being as they asked me to come talk to them, knowing full well about [past history]." You know, the glass half-full route.

But then again, I'm not you, and I wasn't there.


You're talking about this like I'm some charity case. Again, I don't have trouble finding interest or applying elsewhere and I don't depend on anyone seeing enough "goods" to take a chance on some bum.


Well it sounded like you were having some regrets about what that happened. So perhaps I misinterpreted things.


I'm guessing the hiring team and the CEO disagreed on that [part of history] point. Sometimes you're just a pawn in a bigger game.


Theranos did the same thing to me. The first question their COO aggressively asked me was, "how come you went to such a bad school?"

Now I look at what's happening with Theranos and laugh, and laugh :)


There's kind of a correlation between that kind of attitude, and the troubles they're experiencing right now, when you think about it.


Agreed. This sort of socio-academic elitism really shouldn't be tolerated in the 21st century.


That sucks.

I was an internal referral there for an ml position. They rolled a fucking front-end developer who had never looked at my resume into my first interview just shy of 25 minutes late. And yes I'm sure about the time, because I was walking out at 25 minutes. Dude was nice and we had fun chatting (not about work, just a cool outdoorsy dude), but we had nothing in common in the work we do. I finally talked to one of their ml people and absolutely nailed that part of the interview. And talked to a weird founder (who always asks weird questions. That were not a good fit for a quantitative person.)

They then decided they weren't sure if I wanted to work there (apparently because, you know, I'm in the habit of wasting a day of my life interviewing for giggles) and made me have another conversation with an early engineer there. Who was really cool, but still, it was a strange process.

They also low-balled me on cash, and were strange about it when I turned them down and didn't negotiate at all. Someone else offered me $20k more and I figured it was a sign they wanted me so I went with them.

The whole thing was a strange experience.


> They then decided they weren't sure if I wanted to work there (apparently because, you know, I'm in the habit of wasting a day of my life interviewing for giggles)

That's not really fair though. Tons of people apply for jobs because they need a job. I've surely done it in the past. I've applied and accepted jobs I didn't give a damn crap about. I had to pay rent, feed 2 kids, and pay my wife's tuition. And even did so with multiple jobs at the same time. Anything else was secondary. I went into interviews, praised the greatness of the ideas of some shitty startups which were doomed to fail. I always showed up prepared and was "professional" (in so far as you can show up and not give a rat's ass, but not let it show), and always tried to show I was invested by having already ideas about their products, website, etc... But still, didn't actually care for that stuff.

So, I was motivated and a good "employee", but was I a good fit? Probably not.

And, on the other hand, I also actually did interview at times just for giggles. Or for practice. Or just in case. Or to get leverage.

And when I was the recruiting, while I surely wouldn't assume that the person in front of me would be "interviewing for giggles" (at first), I can totally understand the "weren't sure if I wanted to work there". Like I answered on another part of this thread: the onus / burden of proof is on you, you are the one who has to show you really want to be there (even though you actually may not).

It's screwed up, but it's how it is, because we also work for money. I know I did often. Still did my best in any job I got though.

(And you should not expect that either, actually. I'm similarly pissed by friends or colleagues who tell me "damn it's like these guys don't care about the job or don't give it all". Well, heck yeah, why would they?)


> "I also actually did interview at times just for giggles."

Then you are an asshole. Seriously you wasted how many people's time for your own amusement? If you want practice or informational interviews there are ways to achieve those without being completely inconsiderate and disrespectful of peoples time.

It fits that you are suspicious of other people based on your own questionable practices. Most normal people don't do this however.


Giggles is not exactly the right word. I didn't make it just to see if I could pass or take a piss at someone.

I don't think anything is a better practice than an actual interview. Doing a rehearsal or workshops won't compare.

But thanks for the insult, random stranger.

Besides, if that was your only take away from my comment, I think you may have missed the main point. Maybe you were too infuriated by that point already.

And I think that when it comes to cumulative time-wasting, the culprit is usually more the interviewer (or the incompetent recruiting agency).

Also, would be interested in having data on the "most normal people don't do this" bit. I know plenty who do or did at some point, across several countries.


That sounds horrible! I have no degree at all, which means that I got exactly where my interviewers are entirely for free. No crushing student loan debt, no heat waste of having to take college classes that have nothing whatsoever to do with my chosen profession. Those who have the audacity to judge a person by their degree deserve to have this advantage flown in their faces, if only implicitly.


Just to add a data point - I interviewed with AirBnB in January 2014 and had a very similar experience.

I was referred by a college classmate and close friend who used to work there at the time, who knows me extremely well, and is easily in the top 1% of engineers I know (Linux contributor, loved by every employer he's ever had, etc.). He told me I totally had the level to work there, and was better than most people he worked with. So I went along with it, and went to their holiday parties, where one of their execs schmoozed with me for a while, told me I sounded like a great fit, and a recruiter would be in touch with me.

I talk to the recruiter on the phone, get assigned a home coding challenge. I spend a Saturday on it, and get a perfect score on it. I don't know if it was by design or not, but it showed me the rankings of every person who ever did that challenge. I was tied for 1st place with 40 or so other past candidates, in a pool of a few thousand participants.

I do their onsite interviews (fortunately I was local to SF) - don't remember much, except that they felt very stilted. But it was the usual "here's a canned problem I know the best answer to, you have 40 minutes to figure it out while I give out cryptic clues". After 3 or 4 of them, I sit in the room alone for about 30 minutes - the recruiter then comes to me and tells me that they won't move forward, bye bye.

My friend met me outside for a smoke, and told me he had no clue what happened. Oh well. AirBnB definitely left a bitter taste in my mouth, but I got a much better gig at a much better company a few months later, so things worked out.


The "good school" thing is an entire topic in itself. You get good and bad from any school, but from what I've found over the years is people want Ivy League or close when they want someone just. like. them. Someone that looks like them, talks like them, thinks like them. They want a person who will be a puppet for management, nothing more.

I have worked with, and currently worked with people who are amazing problem solvers and developers who went to community college or trade schools. Recently I worked with one of the smartest people I've ever known who had no college experience at all. He's so good at his job his makes over 6 figures with a high school diploma with no student loan debt.. how could you not call this person smart?

I definitely wouldn't say that people who come top schools aren't top talent, but it's no guarantee and I think it's silly when people require it.


That's just incredibly rude.

My degree's not from a good school?

That's nothing; your shirt didn't exactly come off the best dressed mannequin in the Sears window.


I think just asking for a degree (in a computer-related field) is kind of a dumb idea. I don't have a degree, and I'm very successful at my software development job. The best programmer I know has a degree in Psychology; another has a degree in Biology.

From my own experience as an interviewer, "has a degree" was absolutely not even a factor when determining who was good and who wasn't.


Whoa... That sounds just terrible. What makes it especially terrible is that they already had you do some coding work before flying you in.

Something is utterly, terribly wrong with their process if the coding exercise made them think that you were worth flying in for an interview and then they cut short the interview process because they thought it was going so badly.

There are other signs that the tech leadership at airbnb is confused. Witness this almost parody of a video of their devs describing how they worked their way through pretty much every javascript hotness de jour through the years. I honestly thought this was some sort of a parody initially...

https://www.youtube.com/watch?v=gMvvb6F8dgk


This is making me think twice about applying to AirBnB, or any one of my friends. I will remember this story.


it's them that should feel humiliated. It's not like you showed up at their door right off the street; you successfully completed their take-home coding problem and i assume at least one prior telephone interview.


"The first interviewer started with "your degree is not from a good school" like the very first sentence right to my face."

That's just nuts, what a horrible experience.


One thing you might not realize is that many companies ask a lot of employees to interview people, and therefore they are not well vetted. If an interviewer is terrible, chances are they don't know! Please, let their recruiting department of things like that. If they are not a terrible company, they'll probably do something about it.


Are you kidding me? This actually happened? I understand maybe feeling traumatized but really fuck those people. Its a shame that Glassdoor is such a pile of garbage there should be more of a forum for people to get the word out about such douchey and unprofessionalism. I hate to generalize but I feel like this bratty and completely unprofessionalism seem to be quite common in San Francisco and the Peninsula. I am basing this on interviews I have had and others I've spoken to. This childish behavior is not really common in other parts of the country - It's hard to imagine this happening in New York, Boston or Austin for instance.


It's almost like we need a glassdoor for folks who've just interviewed at companies.


... so, like regular GlassDoor.com. Not sure if you were joking:

https://www.glassdoor.com/Interview/Airbnb-Interview-Questio...


Hah. Not joking, didn't know. Thanks for pointing this out.


Except glassdoor is a joke. Have you looked at it lately? Everything behind a sign up wall? Terrible layout and iframes.


Yes, how horrible of them to restrict expensively-gathered content to those who have signed up for free...


How is user generated content "expensively-gathered"? Content comes at exactly no cost to them so yeah it is lame. The data comes from community. Have you looked at the site?


Really? Setting up the site was free? Architecting the systems scalably was free? Popularizing it was free? Getting people to give their information to it was free? Protecting it from spammers and malicious activity was free? Securing it was free? Usefully organizing the data was free? Protection from lawsuits was free?

GlassDoor didn't just put itself together one morning, or a free, open-source one would already exist.

Do you also spread the meme about "Viagra was invented by accident", as if all the clinical testing, information dissemnation, regulatory approval, chemical isolation, etc were accidents too?


This is especially hilarious^W demoralizing when the same company continues to actively recruit across all available channels. Successive waves of aggressive recruiter spam from some of my past "dead silence" rejections continue to cause hilarity^W^W rub salt on the wound to this day.


Respond with "I'd love to start a conversation about this great opportunity, but I'm still waiting to hear back from you about the interview we did 6 months ago!" :-)


This so much. No response is only really acceptable when you sent a job application, and their only communication back to you was an automated email letting you know they received it. If you were actually in communication with someone at the company, they can at the very least give you a two-line "we've decided to move forward with other candidates" message.

I've had rejection emails from huge companies and tiny startups personally written by the hiring manager. It's not that hard.


Yep. I had a company in the Bay Area fly me out for an interview explaining that they'd pay all expenses (as is common). They made me an offer and I went with a different company. They completely ignored my expense submission (they indicated how to submit this previously...basically just send them photos of the receipts and they'd send me a check) and ignored me after I let them know I was going with another offer, so I was stuck with ~$300 in taxi bills (SFO <-> South Bay gets pricey real fast in the days before Uber).

Really really glad I didn't end up there.


At the opposite end, I had a company fly me out and pay for expenses, and didn't get the job. They followed up a month or two later and sent a check, although by that time my address changed, so I didn't receive it, and told them this after asking my why it wasn't cashed. They sent another one and after procrastinating on cashing it (it was something like $80 worth of Lyft rides), they followed up again at which point I cashed it. Some companies are pretty good at giving a decent interview experience even if they reject you.


Yelp tried this with me, when I was in grad school and $150 was a really big amount. A friend of mine kindly offered to carry the expense report and drop it off with the recruiter when he went in to interview a month later.


+1 for the phrase "information-rich sideband".


Ageism is a thing in our industry. This may not be it but in other professions it is uncommon for those in the middle of their career to be applying for positions cold, there is usually an intro involved or in the case of the medical fields credentialing does this. As engineers we have poor soft skills that lead to weak professional networks (we think of our selves as mercenaries) and we don't have credentials of any sort.

So it looks a bit weird to them and the thought process is something like "this guy is talented, what is wrong with him that he's a walk on? I'm not willing to find out, pass."


As engineers we have poor soft skills that lead to weak professional networks

Yeah, I dunno. I mean, some have poor soft skills, definitely. But I would argue that engineers in many companies are simply insulated more than other groups. The biggest reason for this is that Engineering is thought of as a cost center, which has a number of resulting consequences.

Other groups like Product are exposed to many other groups (Sales, BD, Exec, Engineering) and so naturally their networks are larger and more diverse.


Sounds like a typical young startup hiring process (young mostly on the age of the company not the employees although it's hard to ignore the correlation)

More established companies will probably have 30 to mid 30 as the median age, and will have much more professional hiring process (relatively)

Also there is a saying that goes around: A's hire A's, B's hire C's

There are cases where you will be declined as "overqualified" or "no cultural fit" when they mean "will replace my job or at best make me look bad" and "too old" respectively.

I wouldn't give up yet. There are a lot of software architect positions if you have the relevant experience. Median age is higher than 30 I'm pretty sure.

But the "we don't have enough developers" is a blunt lie, "we don't have enough excellent developers" is also a lie. "We don't have enough rock star developers who are ok not being paid enough and have no aspiration to become team leads and just want to code all their career and work overtime" is probably more accurate.


"it's hard to find good developers".........who can implement a super-efficient malloc and free in a coding interview within 6 hours when applying to a CRUD/REST app job at a CRUD/REST app salary


Are low level engineers much better compensated? Do you see $300-400k salary for this kind of work?


I've noticed that your github profile doesn't even get looked at until you jump through all the standard phonescreen/homework hoops.

Even after than many interviewers look at your resume like 10 minutes before the interview there is no chance that they would read through your code on github. github as your resume is overrated.

I am curious to know if people hire or get hired purely based on their github profile without a technical interview.


A couple of quick notes:

* If you don't provide a link to your github profile, I'm not supposed to look at it. This an HR requirement. Other companies may use this same policy.

* I definitely look at github, but it's not always easy to tell if a project is original or not. Quite often I'm presented with either 30 forks, or a few projects that seem like they started as some boilerplate.

* Don't just provide github, also provide a specific project to look at. Even better, point out a particular section that you are proud of.

* Even with a well-stocked github, I will still ask you to code. This likely isn't to tell if you can code, but to figure out what it would be like to work with you.


It's really, really easy to tell what contributions were made to a project by the person whose profile you're looking at. There's literally a "contributors" section where you can click on them and see every commit they ever made to that project.

Also, asking someone to code in front of you is a terrible way to figure out what it would be like to work with them.

1) It's an artificial non-cooperative environment.

2) It doesn't tell you anything at all about how they present and communicate their ideas.

3) The absolute best-case scenario is you figure out one degree of conscientiousness, which isn't enough to build a working profile model of them.

I'd be curious to know if you know the personality profiles of the people you already work with, which profile framework you use, if you know what composite mix of profiles will lead to meeting your institutional success criteria, and then how you go about assessing a person's profile to fill the gaps that you have in that composite.


I over simplified to make a simple bullet list. This is not a "code in front of my while I sit in silence" kind of thing. It's collaborative, it's discussing requirements, strategies, etc. It's back and forth and suggestions. It's also open Internet and questions are encouraged.

FWIW, we follow-up on what candidates thought of the interview process and it is overwhelmingly positive. I don't think it is overly stressful. Although, I'm not sure it's possible to make an interview not stressful at all! :)

EDIT: It's simple if you think of it in terms of a single project. But, if you think of it in terms of many, most of which are no contribution or a small bug fix, it can represent a large time investment. That's why I recommend candidates point out a specific piece of code.


Well, I'm not sure how you're correcting for bias in the feedback. For the same reasons you don't think it's possible for an interview to be not-stressful at all; you also can't get feedback about that process without the bias that they're not going to want to tell you that your process might be bad.

You'd more or less need to get feedback only from people who are already happily and gainfully employed who are also close to neutral on the 'agreeableness' spectrum.

At any rate. You can remove the stress from an interview mostly the same way a therapist can remove stress from iterative therapy. By building an ad-hoc environment of trust, safety, cooperation, and goal alignment.


RE: Your Edit

Hiring is probably the most important thing you can do in/for any company. It should be a time investment on your part. If you don't feel like you're given enough time to do hiring correctly, then I'd suggest setting different expectations with your leadership about how to use your time or what quality of candidate to expect given the time you have.

Seeing a bunch of bug fixes across many projects tells you a lot about that person. So rather than going into the process looking for an extremely narrow thing (like some big project they are the sole maintainer of); go into it looking for anything that's there and see what kind of information is there to help you construct a useful narrative/model of that candidate.

Lots of bug fixes across many projects may not indicate that they can own a singular vision from start to finish (though you can assess that from getting them to tell you a story about literally anything), but it does tell you that they can read other people's code, supply feedback in the way of working alternatives, will take the initiative to solve a problem themselves rather than wait for the maintainer or someone else to get around to it, and focuses on getting things working rather than design-paralysis.


My issue with the whole "github resume" thing is all my best code is in private projects because they are related to serious side projects I intend to monetize. I suspect the same could be said for any other developer who is serious about their side projects.


Your situation is just one of the many reasons for why hiring by GitHub is bad. It selects for people who are willing and able to work for free.


Exactly. A frequently under-appreciated fact. Another one is that much (complete/quality) code may be from past employers/clients, which you have no right or ability to display publicly.


>>* If you don't provide a link to your github profile, I'm not allowed to look at it. This an HR requirement. Other companies may use this same policy.

First time I'm hearing about such a policy. Can you explain the reasoning?


I don't know the specific reasoning behind it. It's not specific to github. We aren't supposed to look at any reference that isn't provided by the candidate. This includes linkedin, facebook, etc.

It's most likely an overly broad means of protecting against employment discrimination.


Considering that much of what's on people's Facebook pages is against the law to even ask about (in some jurisdictions) it's probably a wise choice. Stick to what's provided by the candidate. I provide a link to my LinkedIn page on my résumé, but nothing on it touches on areas I know would cause problems. Most of my coding is in private projects so I generally don't bother with listing my GitHub.

For example, I know that where I am it's against the law to ask if someone is married during the hiring process and that's pretty clear on many Facebook pages.


"I'm not allowed to look at it." Uh? Is it a concern that you'd get too much information about a candidate?


You google the candidate. You find a webpage that matches. It talks about the candidates works for the gay/lesbian alliance. You don't hire the candidate because he sucks. He sues your company, alleging that you discriminated against his gayness.

In the specific case it is probably overblown, but HR fears aren't entirely rational.


Various states have laws that amount to information about the candidates past or current conditions that should not be used for job decisions. HR is there to protect the company, so they often will tell people what they can consider. Think of it as the human equivalent of not being able to comment on crime data when selling a home.


Same here, companies don't ever look at my Github code. I built up a portfolio partly in the hope to make future interviews easier, but it hasn't worked at all!


I have like 3 projects with > 1000 stars and they are used in production by atleast couple of people.

But, noone gives a shit about that they would rather have me reversing a binary tree on a whiteboard.


I remember reading that comment about Google... even though a ton of people at Google use Homebrew. The question is, what would would you be writing at Google? Would you be reversing binary trees? Would you need to instantly know which sorting algorithm would be most efficient at the drop of a hat? or would you be building more tools like you already have. The one thing that isn't immediately clear from your GitHub is if YOU wrote the code and HOW you wrote the code. I'm not defending worthless practices like asking you all kinds of CS riddles that the interviewer doesn't even remember... but I am saying that there are reasons to test your ability to reason through a legitimate problem. Because of this, I am a huge fan of this style of interviewing: "We have a problem... tell us how you might approach solving this. What resources would you use? Why?"


"The one thing that isn't immediately clear from your GitHub is if YOU wrote the code and HOW you wrote the code." Spend a few minutes looking at the commit history and all shall be revealed...


History shows when you forked from somewhere, not copypasta.


If you can copypasta a complex project with >dozens of active users and a commit history showing that you've made improvements to it over time, I'd argue that it's hard / pointless to distinguish that from actual programming. If you can ship working code, support it over time, and enough people appreciate what you've created to use it regularly / rely on it, why does it matter if some parts are even verbatim copied from SO or elsewhere? Thought experiment: compare this to using a library someone else wrote.


That "github is the new resume" meme a few years ago was quite funny, in retrospect. People panicking that they'd never be able to get another job, as they didn't have free time to code at the weekend...


I'm a professional software developer. I don't use GitHub, or StackOverflow. At all. I don't think that reflects on my skills.


Curious what you're doing that you never have to even reference GitHub or SO. That seems strange to me in 2016, unless e.g. You're only using some language / framework / libraries that your company made / paid libraries / .NET and all the documentation and ecosystem is private.


I've attempted to use StackOverflow, but by the time I have questions difficult enough to go there they're well above the level that SO is capable of answering. (At least, not without bribing people with rep, which I don't have because I don't use StackOverflow.) So it's pretty useless to me.

As for GitHub, I've downloaded libraries from it, but I have a pretty healthy dislike of Git, which is awful, and refuse to use it for any personal projects. (I only use it at work because I have to-- in any case, work repos are of course private.) I used to have a few projects publicly available on Google Code, but now that's shut down, so there's really just nothing. I do have private repos for my hobby work.

In case it matters, most of my development is in C#.NET.


Git is awful?


Yes.

I believe usability is the most important trait for a software product, and not only does Git have terrible usability, but its designed in such a way to make it nearly impossible for anybody else to improve its usability. (Although they can improve it's accessibility somewhat-- not everybody is capable of using a CLI interface.)

And it's in a product space (revision control) where the average product's usability is already bottom-of-the-barrel. It's kind of impressive in a way they managed to deepen the barrel a bit.

I'm forced to use (struggle with) Git at work, over my objections. There's no way in hell I'd use it for a hobby project where I have a choice.

I see just sharing my opinion of Git is enough to get voted-down on this site. Oh well. Vote me down. "Person dislikes something popular!" is obviously worthy of derision.


Wait is this a thing now, "send us links to your StackOverflow questions"? If you don't ask questions on StackOverflow you might not be a good candidate? What complete nonsense. Whats next my Uber passenger rating? There is something so ridiculous about this.


We literally never hire someone without a technical interview, but we do look at github/bitbucket/gitlab/whatever code we can find the day or so before the interview. If there's something interesting we'll ask questions about it during the interview.

So far, there hasn't been one candidate that had anything resembling a portfolio online, but we don't hire all that often and i've only been doing it for a bit over a year.


What is your opinion on a technical blog? like http://www.mooreds.com/wordpress/ (note, this is mine)

Is that more or less useful than a github profile?

Just curious.


I think it is about equally useful.

It shows something slightly different than a github profile since it doesn't typically show full projects but both can show off competence pretty well IMO.

Someone with a well written technical blog or good github portfolio is definitely going to have an advantage in any hiring I do.


I'm a college senior and I've gotten interviews based on my Github activity, but still have to go through the interview ceremony. Most interviews I get start by mentioning my projects.


Never underestimate the dark powers of an incompetent HR department. Not saying this is the case here, but sure has the looks of it ... The person that interviewed was a programmer. The follow up to an interview is usually done by HR. As stated earlier, this is simply an observation I made throughout the years when being in contact with various HR departments. Your mileage may vary.


Any interview I've ever had where HR is involved is somewhere I would never work.

Last time this happened I was informed that Russian and Indian are races. Talking about my coworkers by their country of origin (I was saying how refreshing it was to work with a broad array of people in SF vs what I normally work with [white male] in Oklahoma.)

Russian is a race. Seriously.

HR employees are worthless in my experience (~35 years in the labor force).


Only worthless? You've been lucky. I have learned from my experience that HR is at best an enormous obstruction that must be continually worked around, and is at worst an enemy to whom you should never show your back.

Or your belly, for that matter.


[flagged]


How is this a dickish thing to say about white men. I am a white man. Having worked with 1 woman in 15 years in Oklahoma & Texas in development I worked with roughly 60/40 (men to women) developer teams in the Bay Area. Also the broad array of cultures and experiences brings different opinions to the table as well.

It wasn't intended as a slant against white men, it was more a happy dividend that I didn't realize I was missing (diversity). SF is rather diverse, but in IT competency still matters far more than gender, race, etc.


I don't doubt you're a white man, but it makes no difference.

What exactly are you, as an individual, missing in terms of diversity?

> "the broad array of cultures and experiences brings different opinions to the table"

Technical opinions? What does this mean exactly?

This is the bad implication I was talking about, that a group of white males is somehow deficient relative to any group of people.


It's like having a discussion with a wall. Have a nice day :-)


You think insults aren't insults if you add a nicety on the end?

Clearly I didn't read what you wrote, otherwise I'd be agreeing with you already, right?

Or you're just spouting mindless diversity soundbite rhetoric..


I think there is a fundamental incentives problem in hiring - employers don't have a strong incentive to treat candidates well, because either they won't need to hire again soon, or they will be trying to hire someone who really wants a job who will forgive them for bad treatment. It's a good argument for moving to a recruiter model - companies have a stronger incentive to treat recruiting companies well if they want to keep having top talent referred to them. (This idea is spelled out in this post from a while back: http://blog.hireart.com/is-it-time-to-centralize-hiring/)


> ... and even told me he thought I was a better programmer than him.

Probably that's exactly why you were ignored. The guy was scared of competition. (Maybe they were looking for a tech lead and he felt threatened by your expertise.)


A's hire A's and B's hire C's.

http://www.hrdusa.com/As_hire_As.html


And since everybody knows they're an A, the only explanation for a 'no hire' decision must be that the interviewer is a B.


Or more likely the overwhelming majority of people who think they are "A" just aren't.

Funnily enough, often people who clearly are top rate don't think so (impostor syndrome). Dunning–Kruger appears to be very healthy in development circles.


I'm a C, I hire A++ and steal all the credit!


You're an A because you know you're a C and have employed this workaround to compensate ;)


Well now you and my wife can agree on that. So I've got two people in my corner!

I'm actually a mediocre software engineer. Making an accounting system do XYZ for the 4000th time isn't interesting anymore. Doing it in Angular with all the new whizbang whistles and shit is more annoying than fun.

I'm looking at a career switch or something different. I can't keep creating the same nonsense over and over and watch IT run by people that largely wouldn't be good as managers of a McDonald's much less an entire organization's IT department.

The first way to see if a company actually understands the importance of IT is to see whether they have a CIO or a Director of IT / VP Engineering / Other less than CIO role. If they can't even commit a C role, what do you think their thoughts are on IT?

</rant former IT Director> :-)


Who hires the Bs in the first place? :)


People with no budget.


That seems more aspirational than realistic.


That's because B's are much more common than A's.


> The guy was scared of competition.

Or being moved down in the stack ranking and cut.


This is a great point. I wonder how many good candidates get rejected simply because an interviewer's bonus depends on him remaining the most talented person on the team?


A lot probably. Is very common among scientists hiring another scientists in my opinion.


The guy who wants to get you ignored due to potential competition is not likely to frankly admit that you are better. He will have some excuse, like you didn't use enough design patterns.


mid 30s? you're at the top of your game, mentally. I'm mid 40s and the memory is definitely a bit shot. There are other factors in my situation as well, but past 43, you start sensing it.

I can certainly still program, but interviewing...I'm tired of it. Tired of being asked picayune questions like I just graduated. Maybe I should I change my CV title from 'Senior Software Engineer'... that actually implies 30-something, late 20s. but what? "Part time CTO and dog's body for a few small startups/companies"?

I know I can do most anything I put some effort into, the relearning process is not hard. But everyone wants a warm body they can immediately plug in. I get interest due to my CV, but they want to stick me into jobs I'm too senior for. I need to figure out what to change... or tell recruiters, no absolutely not, no more front end work, ever!

well, my advice is start planning your career change now - I wish I had 10 years ago, instead of merely idly thinking about it.


From my experience on both sides of the table, 90% of the times average companies will always pick the candidate that is cheaper (that is, the one that asks for the least salary), not the one that is most skilled. So don't beat yourself over this, you simply can get unlucky when there's competition, even if you skills are sound.


Yep, the lack of professional courtesy evident in things like asking someone to write an API from scratch and then abandoning any communication with that candidate seems to be a hallmark of the 20 something tech dweeb. And sadly this behavior is now routine. It also speaks to a larger red flag - namely that the company is letting someone so short on professionalism represent the company. The sad thing is that this is so common. Its not just limited to the 20 something developer but also the clueless HR flunkie/recruiters. The upside is that you usually spot these things quite early and can decline to pursue these things further.

There are no shortage of companies that need someone your age who have been around the block and can bring professionalism in addition to a wealth of experience. Don't sell yourself short. Even if they called you back after a month of ignoring you would you really want to work for them? Probably not. Generally ding dongs like that are only capable of hiring other ding dongs(confirmation bias), hold out for working with adults. You age is an asset not liability.


"I never heard from them again and all of my attempts at communication were ignored."

Unfortunately, this seems to be par for the course these days - I have a lot of friends who complain about the same thing. It's just indicative of a total lack of professional courtesy, and you should consider yourself lucky that you didn't end up working with people like that.


Lucky, sure, but I wish there were some kind of consequences for behaving that way. Seems like there's no incentive to act professionally and businesses know they can get away with it, so "ghosting" is now standard business practice.


Name them and shame them. Spread the news within your network.

Keep a record of the behaviour - they are burnt for the rest of time.


I am sorry to hear that and I understand your frustration. As someone else said : Keep going. And do not doubt what you're worth.

You know, the thing is there's nothing new, you're just seeing today what the illusion of the paycheck prevented you to see before. Take this as an opportunity to move your life forward : no matter how exciting your next job is, give to yourself a deadline to bootstrap a SAAS business as a nightjob and have enough customer within 6 months to - at least - replace your salary.


I agree it's frustrating - and I've been on both sides of that fence - but still... it always puzzles me when someone seems to get worked up over the fact they didn't seem to get the callback they expected even though they had been told they were probably good enough. Why do people simply forget about the possibility that someone even better showed up right after them and got the spot instead, and rightfully so? It doesn't (necessarily) mean you were bad, or that they lied to you, or anything of the sort. It might just mean they had other candidates who fared even better.

Also, in these cases, I'd recommend you simply call back yourself. Think of it as the opposite of the judicial system (for the US and most of Europe, at least): the burden of proof is on the prosecution. In this case, it's on the job-seeker. You're the one who has to show you want the job and that you're the best fit. The company's role is to find a good fit (and to do so by using their resources in a reasonable way).

That being said, I wouldn't advise on doing "homework" assignments that are exceedingly long.

For the record, when I am on the recruiting side of the fence, I always do a phone screening first, with live coding in a shared editor. Only then might remote homework or on site coding come up, and I always tried to make sure the effort is minimal. It's hard to find something that fits all people and minds though. Try to design a recruiting scheme, and let me know how it works out and if it doesn't piss anyone off. :)

The courtesy thing is another issue entirely, of course, and obviously a lot less defendable...


So you complain about age bias by invoking age bias?


>The fact that so many employers treat candidates like this tells me that the whole "it's hard to find good developers" line is a lie.

That is correct. The market is so flooded with workers that ageism is easily affordable.

You can keep trying if you want but the suggestion "it will all work out if you just try harder because the system is ultimately rational" is inaccurate and unproductive. If you glance around the work place and count the percentage of people 10 years older than you, you can guesstimate the odds of continued employment.

dfraser992 advice is, unfortunately, they way the world really works: neither ageism nor the flood of workers is going to be widely admitted to let alone addressed in the foreseeable future.


To be fair to "us kids" 30 year old+ hirers pull the same exact shit (I say this from experience as a 24 year old).

I'd say in this particular case the guy felt threatened and/or you were too expensive(or assumed to be too expensive)


From experience and being on both sides of the table it's probably a good sign they didn't contact you.

Maybe it depends on the company, but for smaller companies and startups it's not only if you can do what they need it's if you fit in and the other employees like you and want to work with you. You don't want to hire or work with a jack ass, especially smaller teams. You could be the best developer/programmer/engineer in the world, but if no one wants to work with you, well, they probably won't contact or hire you.

It could be for the better and I'm not saying you are a jack ass. You might start there and after a month or 6 decide you don't fit in, feel miserable, and don't like the environment and decide to leave and have to go through this all over again.

Keep at it. Eventually you will find a company that wants your expertise and you enjoy working for and like people you work with. Both sides have to ultimately decide on a good balance. Technical abilities are not the only factor and I wouldn't jump to the conclusion that it's an age issue.

As an aside I have not come across any issues with age and I'm in my lower-30's. I think it has less to do with age and more to do with how your present yourself, act, work, and communicate. No one believes I'm even nearing 30 when I interview or am being interviewed for example and it's never actually been brought up or mentioned for me that I recall.


You may have just built part of his product for him. I wonder how the front-end interview went...?


No feedback is extremely irritating, but common. I know a lot of companies are afraid to give feedback because they don't want to get sued. I worked at a startup where we did give people feedback, immediately, and they were often very surprised. Companies may reject people who are otherwise a technical match for lots of reasons - maybe there was some personality quirk of the interviewer where he didn't like you. It's also hard to hire someone who is smarter than you. And of course your unfortunate experience is just one anecdote. I hope you found another job that evaluated you better.

My current company was getting some poor candidates who passed the phone screen (the phone screen was the usual 1 hour code something in a google docs while we both look at it) type of screen. So we added a homework problem that takes a couple of hours to pull off. I found when I interviewed I had no interest in coding or following each companies stupid and arbitrary interview process. I do worry that it's too much of a pointless pain - but we have been able to reject a few people at the "homework" stage because they were just atrocious.

If someone has been a public github contributor, that should be even better than a homework problem.


One trick I often use these days is using these run-by-20-something companies as practice places before I meet the one that I really like to work for. So when it comes to the time I consider to move one, just say "Yes" to all incoming LinkedIn invitation. It worked well 2 times for me already for the last 5 years.


`"it's hard to find good developers" line is a lie`

Indeed, I agree


its hard finding good (CHEAP) developers


The market clearing price is higher than many buyers (employers) would like, that's for sure.


I've had this happen multiple times. Why would you hire your own replacement? (This is how they think.)

When they have someone hiring not based on what's best for the company but what's best for their own career goals, you know you're going to have issues.

Welcome to the world of tailoring yourself for the job. I'm in my 40s, so it gets worse. Can't wait until I'm over 50!


> Welcome to the world of tailoring yourself for the job. I'm in my 40s, so it gets worse. Can't wait until I'm over 50!

It seems like someone could get a pretty good staff if they targeted all the late 30+ people.


Maybe, we tend to put up with less nonsense though. However, that's typically beneficial to business as well. The only software engineers I've ever worked with that actually consider the costs are those that have either owned their own companies (startups/etc) or are older (and know the trade offs from decades of dealing with them).


I'm curious where you are based, been worried about a similar thing happening, but doesn't seem to yet - (am based in UK).


Oh, I'm in Florida. The local market isn't that great (though I am presently employed) so I've been interviewing for remote jobs.


Remote is insanity now a days, it was a reasonable market a few years ago but not anymore. There's a glut on both the supply and demand sides.

Many years ago there was a limited demand for remote work, which probably tapered the supply, but in my experience from every 3 leads you followed (granted you had the experience), 2 were promising and 1 was almost always an offer. Now a days it's more like you need to follow 30 leads to get one 'meh' answer. I don't feel it's an age issue, it's just a general market condition.

With more companies acceptance of remote work, mixed in with the "we can't find local talent" mantra, the hiring process has turned more hands-off which in turn is producing these insane hiring procedures and cycles.

To make matters worse, everything from the smallest start-up to the largest tech company is adopting the same 'exclusive hiring practices' while they sit back wait for the resumes to roll in and/or send in work samples. All of this is hands-off trying to get candidates to 'fill slots' costs them next to nothing until the final phases. But for candidates it's just a time consuming PITA.

My only advice is to treat the process as any business transaction. Try to gauge how much they are invested in the hiring process, if they are asking you for hours or days on end while they appear to invest a couple of minutes of 'human time' RUN! These are lottery-like odds of landing an offer and unfortunatly this is endemic in large companies as well as unknown startups.


>To make matters worse, everything from the smallest start-up to the largest tech company is adopting the same 'exclusive hiring practices' while they sit back wait for the resumes to roll in and/or send in work samples.

So true. I've found myself back on the market recently and what I'm finding is a large number of companies resorting to HackerRank pre-screens where they pick out anywhere from 3-6 puzzle-type coding challenges, give you an hour or so to complete them and if you don't nail them all, you're out. And that's just for the initial screening - there's no guarantee you'll make it past the N phone screens and in-persons you'll have after the initial screening.

Insanity, indeed. I hope someone writes a book on the crazy hiring practices in our industry, compared to other fields. Maybe I will someday - have to land a job first, lol :-/


>Try to gauge how much they are invested in the hiring process, if they are asking you for hours or days on end while they appear to invest a couple of minutes of 'human time' RUN!

Alternatively, give them your hourly rate and expectation that you will be paid for all work performed, including "hiring homework". That should weed out much of the illegitimate prospective employers.


That those 'exclusive hiring practices' still attract candidates shows an excess of supply, no? It's the current market.


I'm not sure there's a correlation between remote work and insane hiring processes. That doesn't sound correct. Also I think that lots of this ridiculous behavior is in S.F. and the Valley. There are plenty of tech companies that exist out side the confines of cliche shallow bubble culture.


> A couple of months ago I did a 'homework' assignment for an interview (it involved writing a simple REST service in go, even though I have at least one personal project demonstrating exactly this skill -- to an even greater degree -- in my github profile).

I would have asked them to look at that code and ask me any question they have about it. If they are not willing to do that I wouldn't have bothered continuing the conversation with them.

> the mid 20-something lead developer

Okay I am going to do something I don't like to do which is judge somebody on their age but a "lead developer" at around 25? Sorry but unless that person is some rockstar programmer (conceived with a copy of K&R in the womb) I find it very hard to believe somebody 3-4 years out of uni has the experience to be a "lead" at very much.

> told me he thought I was a better programmer than him.

Well that is something I guess, at least he didn't think he was God's gift to the programming world!

> Now, what do you suppose happened next? I never heard from them again and all of my attempts at communication were ignored.

Yes drives me insane. It is so fucking rude.

> I'm starting to think my age is becoming a factor (mid 30s)

Could be, hopefully not but a company that puts a mid-20-something as the "lead" developer might only be interested in getting young and therefore cheap employees.

> and also these kids have no sense of respect and professional courtesy.

Very true. That is partly why I don't think a mid-20s person can be a "lead" for much as they don't have the professional experience to lead. A lead developer isn't just a great programmer but also a great leader. Somebody for the regular staff to look up to and rely on for mentorship.

> I'd like to say this was an isolated incident, but that would be a lie.

It happens to us all. Some companies (IT and other) are shit. It is just the way of the world. Don't dwell on it too much, it is just more mental energy wasted and they already wasted a whole Saturday of your life yet were not even respectful enough to call and say "you were great but we prefer this other person". I mostly hate having that conversation (giving and receiving) but it has to be done, it is about respecting that persons time and even though you are not offering them a job you can offer them feedback so they do not walk away from the process empty handed. Sometimes that feedback is all they need to better themselves in the future.

> Stupid me just spent his Saturday doing another such project, though at least this one presented a more interesting problem.

Live and learn. In the future if you already have demonstrations of your work then ask them to look at that first and if they want to continue the process then you look at doing something specific for them. At least you seem to have found a small positive from it in that the problem was interesting :)

> The fact that so many employers treat candidates like this tells me that the whole "it's hard to find good developers" line is a lie.

A lot of the problems with finding a good dev is just finding a good employee for the company as a whole. You might have a good developer who is an asshole and will only cause issues.

Anyway just move on and forget about them. It is cliché relationship advice but you deserve better than them.


I think it's unfair to say a 25yo is too young to be a lead. I'd also note that the term 'these kids' isn't particularly respectful...


Very true but in my experience the number of under 30 year olds who have the experience to be an effective lead developer is extremely small. Yes you get some amazing 20-somethings but more often than not it is just someone who was given the title rather than a proper pay rise or similar and they took it to make their CV look better. Of course it is just my personal opinion from my own experiences.


I'm 26 and have been the technical lead on my team for just over 2 years. Yeah, I'm relatively fresh out of university, but I have 17 years of programming experience under my belt. No, I don't consider myself a "rockstar" programmer. I just consider myself someone who has been programming for nearly two decades. I'm not the best programmer who ever lived, but I do think I'm pretty good at what I do.

Yes, over half my team members are older than me. However, most of them come from electrical engineering backgrounds and have less professional programming experience than I do. There is no friction, though. They're great guys, and they don't demonstrate any sort of ageist attitudes. There's definitely a level of mutual respect and trust, and I try to foster open communication throughout the team.

Three years out of university, I got an offer to be a senior software engineer and technical lead. It came with a 50% pay raise. I'll admit I had some reservations before taking the position. What if I'm not good enough? What if I fail? The thing is, the people who hired me (I was interviewed by no fewer than 7 different people at the company, all in one day), thought that I had the skills necessary to succeed (otherwise they wouldn't have offered me the position). I took the position and I'm glad I did.

It has been the best job I've ever had. Until now, I'd never worked in an environment that placed so much trust in, and demonstrated so much respect for, its employees. There's a good bit of freedom, and the company is very good at rewarding its employees for good work. My only complaint is that the development environment is less than ideal (Oracle Grid Engine, all work done in the cloud, Perforce, SAP, lots of shitty products to deal with in the development workflow). I'm only willing to put up with that because the nature of the job (and the people I work with) is so good otherwise.

Maybe you're right that the term "lead" is thrown around too much in our industry, but I don't think it's insane to put a young person in such a position as long as they're otherwise qualified. As an aside, if you're ever doubting yourself, listen to what your peers are telling you!


27 years old lead, reporting in. Just curious if you would tell me I'm no lead material.

Now, on one hand, I dropped out and been in the industry (gamedev) for the last ten years. On the other hand, I've actually been on designer and producer positions for the first 6. But then again, on the third hand, I was programming non-stop since 8 and turned in MIX emulator (from Knuth's books) as a school project at 15.

So, may be we can at least agree that any broad statements about professional level of huge groups of people united only by their age, race, country of origin or other unrelated stuff are unlikely to be true for everyone in that group, because people are unique and deserve to be judged individually?


Of course we can agree on that. However I hope you will also agree with me in that the term "lead" for many things gets thrown around quite easily in the tech world.

What annoys me is I often see companies promote an inexperienced (due to age) developer to lead or architect or some other title when they are really not that at all. The company does it to keep the person happy [read: shut them up] with a title rather than pull out the company wallet and pay more. I know dozens, maybe even in the hundred+, people who were duped into that. Often because "it will look amazing on your CV!" or "we promise we will review your pay if things work out in 6 months" in the hope you forget about it or don't want to bring it up.

The problem I have with this is that it devalues the actual lead, architects, whatever the current trendy title is.

I look at it this way - A lead developer could be lead on a very important bit of software that somehow fits into something that could cause loss of life. If it were a structural engineer they wouldn't just be promoted to a lead architect after a couple of years in the game. Same with a surgeon or registrar or a judge or detective or ... the list is very long! Except in IT for some reason.

I do not mean to belittle anyone who is a lead developer and under 30. Good for you if you really are skilled and experienced enough to truly deserve that title, my problem is over the years I would say a good 90% of those "lead" somethings under 30 are not deserving of the title.


> However I hope you will also agree with me in that the term "lead" for many things gets thrown around quite easily in the tech world.

Hm, actually I haven't seen it. For me, "lead" has a very exact meaning: a developer who is personally responsible for code that developers people write, and has authority appropriate to that responsibility.

What else can it mean?


In my experience a lead developer is the primary contact and owner for a specific feature or program. This person should know everything about what they are lead of inside out, they make decisions on design and implementation. They are able to support members of the team that are below them. They can delegate work to those in their team. Review the work done and offer constructive feedback. Communicate their ideas and vision to those below and above them. Present their ideas and concerns to management and stakeholders with ease.

So there are a few buzzwords in that but that is pretty much my personal experience of what a lead developer should be.

I think part of the problem is that there is no industry standard definition of what a lead developer is. It has been my experience it is abused in the ways I mentioned in my previous post.

Again this is all just my personal experience. We are all shaped by our history and though we try and not judge people automatically it will happen from time to time.


If you're in the Philly area and want to work for a great company drop me a line at ccannon@50onred.com. We treat our candidates with the respect they deserve.


Wish I could say my experience was different but no. Well, at least I've been given quick rejections.


> and also these kids have no sense of respect and professional courtesy

Yeah, this is so true it hurts

Not only kids mind you


I wish everybody would start just refusing to do these homework assignments. I always do. I think they know they lost a great developer when I just walk away. In a way it's just sort of them getting what they deserve (loss of a great worker), but if developers would just simply refuse these homework assignments, everybody would be better of. Homework is a stupid waste of time for young children, and it is as stupid silly waste of time for job candidates also.


I have to concur with this. The interview process in tech seems like a hazing ritual, at times. In the current market, we should be able to use our leverage, as talent, to bring about some change in hiring practices.


They want someone who uses asynchronous programming in coffeescript to build a blog and use shit load of preprocessors and if the library was just released on HN they expect you to use it in production and deal with it.

Don't do these take homework projects. Don't work for free.


My company has you write a simple twitter clone using the php framework we use. If you know the framework, it shouldn't take you more than an hour, if that. I see nothing wrong with simple projects like this. We only ask you to do it after your initial interview to make sure you're a fit personality wise.


You're screening more for knowledge of the particular php framework that you use than general programming ability. Which is fine if that's your intention.


Just like the "simple tagcloud from instagram API, shouldn't take more than a couple of hours." I got given last month.

Two hours of messing about on Instagram trying to get an authentication token for their API I eventually figured it out, only to realize I was authenticated in some sand boxed mode, so only meta-data was being returned. I needed to have the acccount approved before I could use it properly.

That was a waste of two hours of my life.


Your company would be far down my list. I'm not working for free if what I do isn't open source. If I'm working on a proprietary product I expect to be paid for it.

If you told me to do this take home assignment I would've politely smiled and said 'sure let me do it right away'. Then I go home, research more about your product and the market, try out your demo product, figure out how things work and release an open source version and make it free. Surely, that is a much better indicator than 'Build a CRUD using Yii'.

A few years ago, I did this to one company I interviewed at who were super arrogant and condescending. I just checked their website and it returns 404. Looks like people prefered my free open source version instead of paying them for it.

Don't fuck with me.


"The fact that so many employers treat candidates like this tells me that the whole "it's hard to find good developers" line is a lie."

It's not a lie, you just forgot the last half of that sentence. "It's hard to find good developers, who are willing to work for the peanuts I'm offering."


I definitely wouldn't call myself an expert, but in my career I've probably interviewed a few hundred people. I think people way over-complicate this stuff by trying to be too clever.

To me, the most useful question is this: "here is an example project that we'd be likely to do, how would you build it?" Then you just let them walk through the steps they'd take.

From there you can launch into why they made the choices they made, trade-offs, philosophy, etc. When you hear people explain how they would make something real, you start to learn a lot of things about them without even needing to ask, and so you're less likely to get scripted answers. They're also probably in their comfort zone at this point, so you get to see them in a more real way.

I don't necessarily mind "homework" style projects, but I tend to shy away from that sort of thing as it's not always respectful of the candidates time.

Two questions I usually avoid (but see getting asked all the time): puzzle questions, and language trivia. I don't ask puzzle questions because I've never seen it correlate to something useful. Most puzzles require an "aha" moment where your subconscious bubbles up some kind of answer, but the easiest way to short circuit that part of a persons brain is to put them in front of strangers with a time constraint. Puzzles might give you a clue as to a persons overall IQ and confidence, but it won't tell you a lot about how they can do the job.

Puzzle questions are also "expensive", in that they usually put a candidate on edge, and they set off the candidates bullshit detector. Let's keep in mind that we're going to reject the majority of candidates, statistically speaking, but you still want them to think highly of your company. If they feel like they're being rejected for a BS reason, you've just created animosity towards your company. It's important that the people you reject still feel respected.

I don't ask language or framework trivia, as I don't think it's useful. I might lob a softball about a framework just to make sure they've actually used it, but I'm not going to ask something hard.


+1000 This is how a proper professional does it.

I always have turned down homework assignments. It just feels insulting and disrespectful. Even whiteboard crap is useless but I'm OK with it considering they've paid for my travel expenses etc.

If you think about it ... homework assignments are a classic case of B's looking for C's. A's wouldn't need to resort to such silliness. They can identify (as an interviewer) and exhibit (as an A interviewee) with just an intelligent conversation.


Interesting. I applied to DO about ten weeks ago. I had an initial phone screen, and they sent me a code challenge. I completed and turned in the challenge. Then I heard nothing for two weeks. I reached out to my contact there, and she got back to me a week later saying, "I've been waiting on feedback - sorry it's taking so long! I just pinged the manager again this morning." That was the last I heard from DO.

I feel like I wasted the half-day I spent on their code challenge. I don't expect a job, but a simple "Thanks but no thanks," would be nice.


Consider yourself lucky. DO seem like a bunch of clowns. I'm not saying there aren't good people working there b/c I'm sure there are but by and large as an organization they are clowns, management recruiters etc. I think it was about a year ago that most of their ops department up and left. That should tell you something. It's not known as a great place to work(heard form ex employees) And if you consider their business model - a race to the bottom it's not surprising.


Nice. I had the same experience with DO last September...The same month Braintree asked me to write a ruby project that took about 3 days and then on the call only asked about python sqlalchemy database queries. I don't know what the disconnect is with these larger companies and their HR staff? By the time that third one asked me to write a node.js rest api from scratch. I just chuckled and said thanks for your time...I doubt I will commit more than a few hours in the future to any throwaway project for just a call back. Why can't we get paid for the time spent writing sample code like a freelancer...If it isn't good enough pay for my time (up to a max) and both parties can move on. Time is more valuable than the risk of getting passed that initial callback/more screens.


You should send them an invoice.


Yep, companies are really abusing the take home. A long time ago, when I was actually bothering with interviewing, I would ask for $1-2K depending on the size of the problem.

If it was about 10 hours, $1K was usually OK. I never had a problem asking for this, but the problem is that so many companies are doing it now that they cannot afford to pay everyone.


Yeah I ignore jobs that ask for these screens. I've spent a lot of time on them and then not heard anything.

When I'm adding to my own team I would rather talk to them about code than have them do these screens. It's more holistic and I get more of a sense of how they think. If I'm going to give them a code challenge like this I wait until after the phone screen so I don't waste people's time.


After having this happen a few times during my job hunt a few months ago, I decided I won't do any take-home coding tests if they take more than 2-3 hours. Even if you get great feedback on your work, there's still a very high chance that the company will just go radio silence on you. This seems to happen especially frequently with smaller startups.


Ugh, I have a take home assignment from them to do, worried the same thing will happen to me :/ I don't want to waste the time if they don't get back to me..


Weird.

I've created from scratch: new CRDT data-types for geospatial problems, new highly-available transaction patterns that provide useful causal history and atomic visibility, large-scale messaging platforms (400k ops/sec), high-throughput machine learning pipelines, lock-free lightweight-process mailbox implementations, and an end-to-end build pipeline for generating bare-metal rumpkernels to be parallel deployed to N-number of Minnowboard Max devices. Among other things.

If you asked me to do homework to prove to you that I can "program", I'd have a brief discussion with you about how misguided that seems, thank you for your time, and walk away.

I mean fully "hundreds of connections" to a socket pool? Are you serious? If I submit a solution that can do "hundreds of thousands of connections" that includes QuickCheck tests for your protocol and my implementation, Ansible scripts for deployment and orchestration, and a Makefile that builds it, tests it, bakes it into a unikernel, and drives the Ansible scripts to push it out and start the end-to-end load test, do I get to be CEO or something?

Why is tech hiring so full of strange, meaningless obstacle courses? Do we just collectively not have better ideas?


Because there are a lot of shit candidates. You might know you're worth talking to, but try hiring and you'll see why people want to separate the wheat from the chaff.


I have tried hiring. Many times. As recently as yesterday.

Using a combination of (semi-)rigorous personality profiling (time constrained), and mapping the abstract problem domain of their prior work to the problems I actually have for them to work on, it's been possible to align new people with the work such that they're intrinsically motivated, and make sure all the bases are covered for the necessary roles (hacker, inventor, finisher, watchdog, etc.) to carry a very large greenfield project from start to finish.

I've never once given a cute riddle, puzzle, or coding challenge as a part of the interview process, and actively dissuade others from doing it as well.


Can you elaborate more on your middle paragraph? It sounds very interesting.


Sure. To start with there are many, many models for personality profiling. I tend to stick to "The Big 5" mostly because it's foibles don't sufficiently affect the outcomes I care about, and I've gotten proficient enough at it that with the right set of questions in the right environment I can typically get a pretty good read on at least 4 out of the 5 factors, and given a follow-up interaction I can usually clear up anything that looks like contradicting signals by getting additional context.

Like for instance, if you were to meet me, you would probably immediately peg me as high on extroversion. While understandable given the outward traits I project, you'd have needed to really thoroughly created a controlled environment during an interview (requiring a series panel, a day-long engagement, and an intentional highly-social event in the middle) to figure out that I'm actually introverted, but have just learned how to benefit myself by projecting extroverted traits.

Now the richness of any assessment is bound by time, planning, training, and practice. If you want to get really good at it, you learn to do it in realtime by assessing people you know well, assessing yourself, then moving on to acquaintances, and eventually onto strangers. In each step you need to be aware of where your assessments are drifting from the model. Like if you assess yourself or someone else as high on agreeableness because you find that you're very typically conciliatory or trend toward diplomacy and keeping the peace amongst your peers, but you also are prone to "blow-ups" where you drop the hammer on people in rare, but consistent, circumstances (when you've "been pushed too far"), then you're probably not as high on agreeableness as you think, and are probably higher on neuroticism than you think you are.

Given enough inputs and hypotheses you can get pretty good at this. Good enough to provide useful points for making decisions given otherwise limited information. More importantly you can get good at how you setup your environments and your interactions to get higher quality signals from your limited information. For instance, say I wanted to assess someone's "Openness" because I wanted to bring them onto a team where their primary responsibility will be in driving phases of invention. The simplest pass would be to just ask them about personal activities and look for signals of risk-taking. However, one needs to control for the difference between risk-taking due to openness to experience and risk-taking due to self-destructive traits. The former would be awesome for the job role and the latter will bring down the whole ship. To control for that you'd want to put additional emphasis on assessing neuroticism and conscientiousness. Doing that can be as simple as leaving a lot of awkward pauses in the conversation and see how they deal with it. Does it make them uncomfortable? Do they feel compelled to fill the air with something? What do they fill it with? Relatable stories, trivia about their work history, etc. When they talk about anything, not just work-related things (sometimes specifically not work-related things), what level of detail do they provide? Is it consistent? Is it always TMI, always 30k ft view, or can they move fluidly from one to the other?

Things like that. Different kinds of job roles require a different kind of personality profile to be successful, and more important than that, the composite of personality profiles filling those job roles is a requirement for a healthy team where each person is competitive with themselves, but cooperative with their peers, and has the right mix of people to own each phase of the development and business process.


Hey, thanks for the reply, your insights are amazing. Totally with you on the whole "being an introvert who learned the traits of extroversion" thing too.

I've played around with the Big Five model ages ago and found it to be a really good way to look at personality. I especially liked its usefulness for self-assessment - like you say it's easy to self-deceive yourself into thinking that you're much more open and non-neurotic than you really are, but so long as you are honest with yourself it can be a good tool in understanding your own strengths and weaknesses. I hadn't really tried practising it on strangers, though, that would definitely be a useful exercise!

I'm actually in the process of setting up a crowdfunding campaign for a personal project that I'm working on, and if that goes well then I'll be thinking about bringing in more people on board - hence why I asked you about this.

I have to say, the way you're going about this is really impressive in terms of methodology. Most high-level advice in this area that I've seen is full of hand-waving and vagueness, but you've got the whole thing down to a science. Especially the part where you talk about counterfactuals! So many people overlook that.

If you don't mind answering another question, I would appreciate more of your thoughts on this. You've said that you look for particular combinations of traits to fill in particular roles (hacker, inventor, finisher, watchdog, etc.) - what are the traits that you look for in each of them and how exactly do you envision each role's responsibilities within the company? (Is there a set number of such roles that you discovered or do you find yourself inventing new ones as the company evolves?)

Also, it sounds like you've been doing this for a while and probably have quite a few people on board, which would make the dynamic of hiring someone a bit different than if you were just starting out. If you were back to square one and had to consider hiring your first employee or even finding a potential co-founder, how would you approach that?


Sure, do you want to take this conversation offline? This is just going to get buried deeper and deeper and eventually become locked when it's stale enough.


Yeah, good idea! My e-mail is zans.lancs at gmail dot com


Who mentioned riddles and puzzles?


I lump them all together. There's barely a neurological distinction between engagement in a riddle/puzzle and a programming challenge.


Fizz-buzz yes. A small task representative of the work is completely different.


Because I interviewed at least two interns in CS Masters programs that struggled to program a for loop.


I really hate having to solve these kind of programming challenges. I've already sent you my CV, with references from former/current employers and co-workers. Call them up if you are worried that I'm lying on my résumé, don't waste my time by making me work for the chance of maybe getting a job as only payment. Doing multiple interviews already takes up enough of my time, seeing as I'm the one who has to commute to your location.


No former employer is going to say "this guy can't program, don't hire him" for fear of getting sued. Co-workers might be friends who are covering for you, or just genuinely have no idea of your actual ability.

Taking up hours of a candidate's time is excessive, but it seems reasonable to ask for some demonstration of your ability, when so many candidates simply cannot code.


> Taking up hours of a candidate's time is excessive, but it seems reasonable to ask for some demonstration of your ability, when so many candidates simply cannot code.

So why not simply ask technical questions during an interview? I'd think you'd be able to determine whether or not someone know what he is talking about by simply asking him a few questions on the matter.


A picture paints a thousand words.

How do you know what level to pitch the interview at if you don't know what language features someone understands and how they code?

Where I work we now set a small simple test which is very representative of what colleagues do because we've had so many time wasters. I'm looking to see their style, the fact that they can actually read a simple spec (apparently over half can't), and that they can explain why they approached the solution how they did. If their test is no good, we don't waste each others' time.

If someone has a decent GH account I'll look at that too - if it's sufficiently comprehensive (very rare to see anyone with a GH account at all, let alone their own projects in it) they won't need to do the homework (should take about an hour, less if they're good). This just saves us wasted time.

Remember - you might know you're good. How do you expect strangers to?


Because there are plenty of people who can regurgitate things but not be able to do much with it. I've seen it with CS grads from good schools, its disconcerting and confusing.


Why are you asking "fact regurgitation"-type technical questions? I prefer to ask open-ended ones, questions that start a discussion that will quickly determine if the candidate really understands what they are saying. It also reveals correct but rigid thinking, something I would like to generally avoid but that doesn't always come up in a coding exercise.


That's why you drill down when a statement sounds like it came from a blog/book/screencast.

While I agree it's frustrating dealing with someone like this, often times it's easy to pick out the statements/topics that the person is regurgitating.


Agreed, but for people who have to justify hire/nohire/fire decisions to their bosses or other parts of an organization an objective metric is very useful.


And some people who aren't going to do well on verbal questions but who can code.


Why ask technical questions about the skill you want to see, when you could just ask for a demonstration of that skill?


Because asking a few quick questions doesn't waste 8 hours of your candidates time.


A quick coding problem doesn't have to take that long either. I agree that asking for a (relatively) huge project is the wrong way to go about it, but it doesn't have to be huge.


Because technical questions are pretty bad indicators. Just because someone doesn't remember how to reverse a binary tree off the top of their heads doesn't mean they're not a competent developer.


Right with you buddy. I no longer accept coding challenges or even interviews that go over 30 min. I tell them my services are $150/hour. If you want me to do a 4-8 hour exercise for the privilege of interviewing further then make it worth my time...just like any other consulting gig I do.


I should add that no company has taken me up on my offer. I'm too busy with work to care anyway.


Wow, that's self confidence. Paying someone for the homework problem feels semi-okay. But what if you have a no-moonlighting clause at your current job?

But asking to be paid during the interview seems too much, even though you could have spent 3 days of your life, traveling each way plus the interview day.


Asking to be paid during an interview seems too much but a 4-8 hour interview doesn't seem too much? The average interview length across all industries is 40 minutes. Asking interviewers to spend 4+ hours on the hope of a job offer seems a tall demand. I think asking to be paid seems a fair counter to what is otherwise a very unfair ask.


What you're actually saying is "I have enough freelance / contract work and am not looking for a full time job." I said similar things when I was freelancing.

If you were actually looking for a full time position you'd do the interview. It's completely reasonable to require an unpaid interview from a candidate.


Not a multi hour one though. My first programming job interview was 6 hours and I had no idea that was even a thing. Now I inform places I'm interviewing "Hey I am taking 1.5 hours vacation/PTO whatever, so I need to be back at work after that time."


The problem is: Writing good resumes and having a lot of experience with programming is a good heuristic for "experience" and "knows how to play the game" but not meaningfully useful for "excellent at programming".

Work-sample tests measure the latter.

A worker's experience is a heuristic for programming skill, but a heuristic of a heuristic is like an average of a set of averages: Useless.


Just to play devil's advocate, being excellent at programming is also only a heuristic for working as a professional programmer.


Very true! I find it disappointing that many candidates appear to put little effort in their cover letter. It's a chance to show me you can communicate well, which is maybe the single most important skill in working on a team.


I feel like cover letters are an easy way to show that you've thought about the company you're applying for, but in my experience I've never got the impression that my cover letter was actually read in the application process.

I could be plenty wrong though, and I'd love to hear from HR/recruiters about their experiences with cover letters.


I dunno. I'm sure some places don't read them at all. But I read (or at least skim) every cover letter that comes across my desk before looking at the resume.


Sure, but it's O(n) rather than O(n^2).

Hiring decisions are hard to generalize, because different companies have different needs at different times.


Which makes it extra frustrating that hiring practices are the most often cargo-culted practices in this industry. I feel like the root of hiring problems is that most companies know neither what they need or how to identify those features in a candidate.


Sounds like a lucrative itch to scratch.


>Sure, but it's O(n) rather than O(n^2).

Won't disagree there!


> Work-sample tests measure the latter.

I think that's debatable. The quality of your measurement is then simply a function of how well your tests are in the first place. Do you really think giving a person FizzBuzz is any kind of accurate predictor of future success at a job?


(Switching back to my old account because rate limits.)

I wouldn't ever use something like FizzBuzz to assess a candidate. It would be more of "here's a mostly finished sample application with a corresponding SQL file, add this feature (e.g. a search bar for a blog) and fix any (intentionally introduced) security bugs you find".

They would be evaluated based on how successfully they complete the main task, and if they have an eye for finding/patching vulnerabilities, that's a bonus that can be used as a secondary selector if a lot of candidates pass. If no one does, it won't be used against them.

That's how I'd approach it, personally. Something specific to the kind of work we're doing, but abstract enough to be approachable without a lot of insider knowledge.


FizzBuzz isn't a test of whether a candidate will succeed, but of whether they will definitely fail. Someone who passes may be good or bad, but someone who can't do it is definitely not qualified.


Someone who can't do it is definitely not qualified to do fizzbuzz level programming off the cuff in a stressful interview situation.

Whether that tells you anything about their ability to do fizzbuzz level programming in a more normal work environment is an open question.

There are a few HN readers who've had experience of "choking" on fizzbuzz level programming tests during interviews - even though it's trivial there's something about the interview situation that causes some people to sometimes freeze.


That's what probation periods are for. Use them.


What do you mean by probation periods? Something like...

"Hi, I'd like to ask you to work for a very temporary contract with us so, if it doesn't work out, you have to scramble to find more work and maybe risk homelessness."


In my experience, in the US, in the few times I've been asked to work for a 2-3 month test-drive, the proposition has been more like ...

Them: "Your skills are great, nice job on the coding project. You seem like a really good fit. We want to hire you, but we'd like you to work on a temporary contract with us at first to see how it goes for both of us."

Me: "Hmm, OK, this does seem like a very good fit and I'm cool with the test-drive. My off-site rate is $150/hr, I can have the contract on your desk in two days."

Them: "Er, wha ..., no, you see, we'll take the salary we talked about and just translate that to an hourly rate. It shouldn't be a big deal, this will only be for three months max."

Net of it: after killing it in the interview, I'm offered a short term C2C contract at drastically reduced rates, doing my usual best work, while getting no employee benefits and paying my own SE taxes, retirement contributions, and all business expenses.

I've encountered such propositions only a few times in the past 5 years, and walked each time obviously, but I still find the chutzpah of these companies astonishing.

On the other hand, maybe that was the last part of the interview? They may have wanted to see if I had any self-respect, any self-confidence, could do math, and understand basic business concepts like taxation and fully-loaded employment costs? A "no" to any of these things would have meant I'd be a more ignorant, cheaper and thus much more highly-valued employee as time went on.

Edit: typo


This is pretty standard in the UK. Your new full-time job is commonly effectively at-will for the first 3 months, and possibly more.

See, e.g., http://www.jobsite.co.uk/worklife/probation-periods-19677/


In the US almost all employment is at-will - even if you've worked at a company for years. Probationary periods here typically mean that you are hired as an independent contractor without the benefits that are usually given with a full-time position such as health, dental, and retirement benefits.


Directly from my company's employee handbook:

Employment with [company] is "at-will." This means that you may terminate your employment at any time, with no prior notice given to [company]. It also means that the company may terminate your employment at any time, with or without notice or cause. While the company generally adheres to progressive discipline, it is not bound or obligated to do so.

As an at-will employee, you are not guaranteed, in any manner, that you will be employed for any set period of time. No one in the company, except the President, in a written, signed contract, may make any representation or promise to you that you are other than an at-will employee. Any employee, manager or supervisor who makes such a representation or promise to you is not authorized to do so.


Wow, I never knew that was the US terminology. Soany things that didn't really make sense to me have just come into focus.


I've no idea why this has been downvoted as it's correct.

For the last few years this has been written into law and employees don't get their full employment rights (such as the right to contest an unfair dismissal) until you've been employed for 12 months. (A de-facto one year probation period.)

I should note that employee rights during this probation period are probably stronger than in many US states.


As far as my experiences go, US companies (at least at the enterprise level) generally seem to have ~4 month probationary periods for new hires.


"probationary period" has no real legal meaning in almost all US states.


You don't want to hire people who are incapable of functioning in a professional setting or interacting with coworkers, so I'm not sure expecting experience and a well-crafted resume (regardless of the content) is a problem.


Just as grep and cat solve different problems, work-sample tests and traditional resume-based hiring practices select for different candidates.

I wasn't arguing in favor of work-sample tests for every company and every candidate, just saying their scope is different (although work-sample tests are more likely to find the untapped potential in the marketplace).


I'm with you. Also sending this kind of projects many times requires a time that you don't have when working for another company.


We live in an era of FB/LinkedIn. It's really not that hard to contact someone that they've worked with and ask, "did you like working with this guy/gal?"


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: