Hacker News new | past | comments | ask | show | jobs | submit login

I reject senior software engineers all the time. I give interviews on whatever language you're most comfortable in, I'm not interested in time or space complexity, I just care about how well you can use your tools and debug.

I'm continually astounded at the number of people who can't sort a list (with their language's standard library), clone an array, or do basic string manipulation. I've had a staff engineer at Google ask what the sleep command is in JavaScript. A senior engineer from Twitter didn't know how to use arrays ("We don't really use arrays in Scala").

I don't disagree that many companies do interviews wrong. But there's also a huge number of "senior" engineers who simply shouldn't be senior in the first place. Perhaps it's a result of companies handing out promotions to keep folks around rather than to recognize talent.

Lol. At my job, I code in several different languages. Sometimes, a new project requires me to to learn to write in a new language. It's not a big deal... Programming is pretty general, so new syntax doesn't slow me down too much.

But I can't tell you what the sleep command is any of these languages. I look it up every single time :P

LOL, agreed.

I'm good with the sleep command in my many different languages. It's dealing with dates in any language...

I suspect 10% of of StackOverFlow hits are developers remembering how to parse a date in some form or another.

I’m starting to experience that too, where as the breadth of languages learned widens I forget the language specifics and really keep the generic terminology keen. Searching questions like how to sleep in LanguageX, how to iterate, create a thread, whatever need be.


Me too. But how do you deal with this when you're interviewing? I'm more skilled and productive than ever but I feel like an idiot without access to documentation.

I don't think there's a sleep command in Javascript. It is against the "entire browser runs in a single thread" model, and it would make no sense up to very recently before promises were created (what it would do? start a call-back?).

If the question is from somebody with extensive experience in JS, that's a clear red flag (I don't have any extensive experience in JS). If it's from somebody with passing experience, it's not that bad. That said, I have no idea how to call sleep in any of the ~4 languages I'm currently using either.

They wanted the sleep command...so they could wait for an XHR to complete. So in context, it was a pretty massive red flag.

I'm in exactly the same boat. I've used 4 different stacks in the last year. It's too much. I can easily get in and debug and write code in basically any environment, but I don't have time to learn all the string methods of any particular language. Google all the way, and official docs (if they're any good). I rewrote an entire huge module in C#/.NET, have zero experience with that environment in the past. I would absolutely flunk a C# interview but I'm pretty confident in my ability to get work done.

Same here. Also using sleep for anything other than debug is code smell.

This. A million times over. I lead the engineering and run the hiring and I too just turn down senior engineers left and right at times.

We run about as practical a process as I can imagine. A short take home exercise where you use your own environment and build a very small project and are free to even have a starter ready to go ahead of time to focus on the question asked.

In house we have a project you work on on our code base. Very small. Maybe ends up requiring less than 20-30 lines of code for the day. Most people who come in are always familiar with our stack.

The amount of people that just fall on their face is astonishing. Many people will be fine with Greenfield development but then have zero skills being able to deal with an existing code base with places stubbed out with //todos and the ability to pair with people on the team.

I'm convinced people are getting turned down not because of the interview process, but because they just aren't that good at the end of the day.

Yes. I do not need a bunch of code wizards, we aren't solving if p=np daily. But that doesn't mean I should accept people who can't code I'm hopes of them growing into fine developers. I can do that worth one person, but not when bringing on 8.

Memorizing the method for sleep in javascript is the least of a staff engineer's concerns at Google. Besides, with something as easy to google and aided by the IDE, do you REALLY care? What matters is that the guy is able to design and structure a solution, google whatever he needs and build it. At his level, he'd guide a team working on such projects and be concerned with high level design, working with management and managing large $$$ projects.

Do your engineers work out of a cave with no internet and code on cave walls?

There is no sleep command in JavaScript. He fundamentally didn't understand that JavaScript used callbacks and wanted to poll for an XHR's completion.

The job was to write JavaScript, not to do any architecting. There was nothing unclear about the job role. And they had claimed to have built [a very important dashboard that I won't mention to keep them anonymous] mostly themselves, which was quickly disproved.

I've written in so many languages that I wouldn't be able to answer how to sleep in language X off the top of my head. Is it time.Sleep()? delay()? wait_for()? nsleep()? timer().delayUntil()? something else? No clue, but I know how to find out.

You're not hiring me for my encyclopedic knowledge; you're hiring me because I get the job done quickly and effectively, using a proper design and clean, tested code.

Not to mention, there is no sleep command (I assume he meant setTimeout, which has very different functionality than a typical language's sleep command) in javascript, which kind of makes me question the credibility of someone insisting on gatekeeping the senior developer title so hard.

Maybe that was the OPs point? The paradigm of Javascript is incompatible with having a sleep() command, and an experienced Javascript programmer should know that?

There is no sleep command. They didn't understand how callbacks worked at all. In JavaScript, that's fundamental. He wanted to poll with sleeps.

You're missing the forest for the trees here. In these larger companies, senior engineers tend not to work directly with code that much anymore, they're usually working on higher level problems like system design or management. These require different skill sets such as leadership and social skills that take years to develop; the ability to google quickly for a function name isn't really valued as much.

If you're working in a small company or a startup, then you don't need BigCo senior engineers, you can get away with people who haven't developed these skill sets. However if you have intentions of growing, either in your system size or in your headcount, you shouldn't discount these engineers over minor details like this. Ask them higher-level design questions if you actually want to test their abilities, otherwise you're looking at the wrong metrics.

> you shouldn't discount these engineers over minor details like this.

Then they should apply for a job where their skills are relevant. If you're applying for a job where you're writing code (like all of the ones I described), you'd better be able to code.

Edit: and we let you Google whatever you need in the interview. If you can't figure out how to clone an array (an implementation detail of the interview question) on your own, I don't know what role you think you're applying for.

> If you're applying for a job where you're writing code (like all of the ones I described), you'd better be able to code.

That's fair. No sense in bringing in architecture astronauts who can't translate their dreams to reality.

> we let you Google whatever you need in the interview

Right, rejecting someone who can't Google things properly is the correct choice. That's a skill that's useful at all levels.

I've met a ton of people like this. They were all people who used to be engineers, but moved into more management centric roles. Their title was still "Senior Engineer" or something similar, but their skill set was almost entirely cat wrangling.

I had one guy get very angry with me when I asked him a programming question; he insisted that that just wasn't what a senior dev did.

I call shenanigans on this comment. Weeding out folks for not knowing how to sleep in a particular language or array syntax in another is not warranted. I think the response that Scala doesn't have arrays is totally legitimate. You should have asked them what was the project/problem they were most proud of and suss out the details of that.

Moreover, keep in mind that for some orgs a Senior dev is actually someone that does more systems design, i.e. an architect. Make sure you ask them those sorts of questions before discounting their abilities. You don't want to be having an architect refactoring your frontend, that's a silly way to spend your money.

In all of the above cases, the candidate had no fundamental knowledge of their chosen language. All of the jobs I was hiring for were for positions that involved writing code. None of these were roles that involved more thought leadership than coding.

I should have been more clear about the JavaScript issue: there is no sleep command. The candidate didn't know how callbacks worked. In JavaScript. Callbacks in JavaScript are how _everything_ works.

just give fizzbuzz and call it a day. It sounded like you were asking about array to someone who doesn't use them and penalizing them.

I can write fizzbuzz and while I don’t code in JavaScript I could take a guess at sleep from ruby, python and java. I’ve interviewed lately so I’m trained up and could print all paths in a binary tree or all permutations of a set, or detect cycles in a linked list. It’s not all rote, I can adapt and apply these techniques. I have done so at work.

But I couldn’t find all matching sub trees within a binary tree at the whiteboard in an hour (45 min really). I haven’t done a formal survey, but my extensive experience and discussions with a lot of devs tells me that this really isn’t about fizzbuzz or other simple things.

It’s time to stop pretending this is about weeding out people who can’t code. Companies by their own admission set a very high false negative rate.

Then they claim there is a shortage and successfully lobby the government to create a shadow immigration system putting tech companies in charge of who gets to work in the US and the conditions under which they are allowed to remain.

When the next recession hits, this will be even more of a problem.

I think Software Development has a problem in that there is no space for a middle-ground career path. I typically compare myself to a studio musician. I'm never going to be a Rock Star, but you can plug me into any band and we'll make a good recording. That's why I like contract work... nobody cares about my age or history, I can just hit my marks and do what I love. I'm not Senior, but I don't know if I really ever want to be either.

Someone who's been writing code professionally at a software company (especially google or twitter), definitely has at least a moderate if not high level of proficiency in software engineering.

if these highly competent people can't answer your questions, you really need to take a second look at your Questions.

I'm suggesting that they weren't highly competent.

Wow. So you base your hire decisions on pop quiz answers?

Have you worked in the industry for longer than 2 years?

> ask what the sleep command is in JavaScript.

> We don't really use arrays in Scala

These all seem like genuine things. In more complex companies, people may use more exotic data structures and/or have abstractions around data access.

Silly comment overall.

None of the examples were trivia. These were examples of what the candidates got stuck on in a larger interview question, with the ability to use Google to look things up.

I don't care what kind of abstractions you have at your current company. We don't (/didn't) have those abstractions. If you can't show me that you can do CS101 basics (appending to an array?) in the language that you claim to write day to day, how can I trust you to be able to write the code that we describe in the job description?

> CS101 basics (appending to an array?)

Probably because most professionals are not fresh out of CS101 & most data structures aren't arrays or exposed as arrays.

List, Collections, Map, Trees, home-rolled data structures better suited to domain - how do you not get this?

Your opinion sounds like that of someone just out of a bootcamp. You're putting all the weight on irrelevant syntax issues. A lot of devs use multiple languages day to day amongst other things.

I wouldn't want to work somewhere that was interviewing me based on programming language trivia

None of the examples were trivia. These were examples of what the candidates got stuck on in a larger interview question, with the ability to use Google to look things up.

What exactly is the "sleep" command in javascript?

There isn't one. The candidate didn't know how callbacks worked.

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