News for hackers. Stuff that matters.
Re:My Job Interview at Google (2008) by robinduckett on Saturday May 09, 2020 @06:11AM (#23123496)
I recently had an interview at a taxi firm that followed this format.

One two three pre-interviews followed by a day of 5 grueling 1 hour interviews.

I didn't get the role. Apparently the frontend guy I had the first interview of the days five was concerned about my technical skills.

I mean, I find it insulting, having worked for the last 12+ years as a developer to be told that there were "concerns about your technical competency"

I hate interviews. I hate take home coding tests and have failed every single one I've had. Apparently this is a sign that I don't do well under pressure.

I've been building working software for years, and the main problem I have is convincing people that I can actually do the job. I don't have a degree, and I don't have prestigious companies on my CV, and I don't have the time or energy to chase around roles like this, so I have to settle for unfulfilling and underpaid roles

Re:My Job Interview at Google (2008) by koonsolo on Saturday May 09, 2020 @07:42AM (#23123912)
> having worked for the last 12+ years as a developer

I've done plenty of interviews, and the amount of years someone worked does not mean they are technically capable.

By chance, last week I interviewed a frontend JavaScript expert: couldn't explain 'scope', couldn't explain 'function context', didn't know what happens when setTimeout() is followed by an infinite loop ("After 10 seconds or so the browser will probably timeout the loop"). A junior cannot know everything, a senior should be able to pull a project and team.

Personal advice to you: if you are really good but cannot show it in an interview, try to land a job at companies with ex-colleagues, where they are able to vouch for your technical skills.

If a colleague that I respect vouches for someone (s)he worked with, (s)he is practically already hired.

Re:My Job Interview at Google (2008) by s1k3s on Saturday May 09, 2020 @07:50AM (#23123967)
> didn't know what happens when setTimeout() is followed by an infinite loop

I'm not some JS guru but I've done a few and I'm wondering why would I need to know this? To me this looks like the type of question that is there specifically because people answer it wrong, they know they answer it wrong and you know they know they answer it wrong so it makes them lower their demands in terms of pay rate.

Re:My Job Interview at Google (2008) by remify on Saturday May 09, 2020 @08:09AM (#23124072)
I guess it's an important question because it is about the event loop.

Lots of weird things (bugs) can happen when you don't understand how the event loop work. I would definitely pass a "senior" javascript dev that don't know/understand the concept.

Re:My Job Interview at Google (2008) by koonsolo on Saturday May 09, 2020 @08:29AM (#23124179)
Exactly this.

A senior should know that JavaScript runs single threaded with an event loop, and therefore doing heavy calculations will block your user interactions.

If you don't know this, you also won't know when to use WebWorkers etc.

Juniors can learn, seniors should be the ones teaching them. Seniors should define the architecture of your solution, and solve weird problems. You cannot do this without proper in-depth knowledge.

Re:My Job Interview at Google (2008) by s1k3s on Saturday May 09, 2020 @08:53AM (#23124320)
Yeah but here's the thing: I do understand the event loop, I understand the sync/async models in JS but I have very little knowledge of how setTimeout works in this context. That's because I've never used it, and I've never used it because the book that I read 15 years ago about JS said something like this: "Here's a function that allows you to run some code after some time. If you feel the need to ever use it, it means you're doing something wrong, therefore please never use it". This very vague explanation combined the lack of usage of it makes it pretty hard for a candidate like me to realize that you are actually asking a question about event loops. So my question is, if you want to see my knowledge about those things, why not ask some direct questions about it?
Re:My Job Interview at Google (2008) by koonsolo on Saturday May 09, 2020 @09:26AM (#23124516)
I'm the kind of interviewer that would keep asking until you do know. I would actually start with asking about the event loop. Don't know that, no problem, what happens with setTimeout()? Don't know that, no problem, how does async, await work? Don't know that, why do we need WebWorkers? What happens with an infinite loop? How do events work? etc.

There are plenty of ways to see how this person came into contact with the event loop concept, whether in theory or in practice.

Re:My Job Interview at Google (2008) by lostmsu on Saturday May 09, 2020 @12:35PM (#23126133)
Meh, I'm with previous commenter. I know what the event loop means, that JS is single threaded, and what setTimeout is supposed to do under normal circumstances. I consider the question stupid, moreover your answer to it is likely incorrect, because it depends on the implementation. I bet Node.js never interrupts the loop for example (and I never even done Node.js, it would just be a sane thing to do).

And yeah, you might agree on Node behaving differently, but that just proves the question is very bad. Even with "in browser" clause the answer can change tomorrow for all we know.

It is like asking about undefined C++ behavior in an intentionally very bad example.

Re:My Job Interview at Google (2008) by koonsolo on Saturday May 09, 2020 @01:41PM (#23126702)
Then please enlighten me what frontend questions you ask in your interviews.

By the way, only 1 out of 10 frontend developers can answer what the event loop is, according to my experience.

Re:My Job Interview at Google (2008) by lostmsu on Sunday May 10, 2020 @05:59PM (#23136663)
I am not saying understanding event loop is not mandatory for senior JS devs. It is just that your question is really obscure. Why not just ask what an event loop is and what are the consequences of that execution model?
Re:My Job Interview at Google (2008) by koonsolo on Monday May 11, 2020 @03:20AM (#23139657)
Some JavaScript developers know the theory, but not all of them. At least you should know how it practically works.

So when you ask "What is the JavaScript event loop?", most will stare at you not knowing what it is. So then I jump to the practical side. They at least should have worked with either setTimeout, async/await and/or events. So then you start asking for practical consequences of the event loop, such as what happens with an infinite loop after setTimeout or await, or during handling of an event. That is a real practical example that they should know. If you don't then you don't know neither theory nor practice.

Re:My Job Interview at Google (2008) by lostmsu on Monday May 11, 2020 @07:37PM (#23148705)
Practice can change tomorrow.
Re:My Job Interview at Google (2008) by JSavageOne on Saturday May 09, 2020 @10:33AM (#23125001)
I agree that a senior should know this, but at the same time I've never run into a problem at work that required me to start using web workers because what I was doing was so CPU intensive. Most professional Javascript development is pretty run of the mill.
Re:My Job Interview at Google (2008) by rumanator on Saturday May 09, 2020 @11:09AM (#23125285)
> I agree that a senior should know this, but at the same time I've never run into a problem at work that required me to start using web workers because what I was doing was so CPU intensive.

A few weeks ago I interviewed a front-end developer who said that in his current job he rolled into production some code that blocked the UI for nearly 1 minute, and that problem was only noticed in production because during testing they didn't used realistic data.

He then said that his approach to solve the problem was to rewrite everything from scratch using a faster framework.

Unloading the blocking tasks to web workers wasn't even in his universe of potential alternatives.

Suffice to say, he was not hired.

If you're applying for a front-end position and are oblivious to basic GUI principles, such as how not to block the UI, then you might not be lucky.

Re:My Job Interview at Google (2008) by hajimemash on Saturday May 09, 2020 @08:16AM (#23124115)
These are examples of indicators that, taken together, helps determine how in-depth your knowledge is. I imagine that if you work with JS on a more than surface level, you'd eventually be curious about or be forced to understand how things actually work to be able to precisely control your program outcomes.

It could be very important. Like the difference between something running at the right time or not.

Re:My Job Interview at Google (2008) by robinduckett on Monday May 11, 2020 @10:29PM (#23149971)
There's a video of a talk I gave floating around the internet somewhere a year or two after Node.js came out where I talk about Node, the Event Loop, and how much I liked JS. Perhaps they saw it and were like "ew!"
Re:My Job Interview at Google (2008) by treeman79 on Saturday May 09, 2020 @08:38AM (#23124232)
Interviewed a guy who wrote a JavaScript book.

He Had no idea how to do anything other than write books.

Re:My Job Interview at Google (2008) by zozbot234 on Saturday May 09, 2020 @07:53AM (#23123974)
> try to land a job at companies with ex-colleagues, where they are able to vouch for your technical skills.

That gets him a foot in the door alright, but I don't think it'd let him avoid those interviews?

Re:My Job Interview at Google (2008) by MattGaiser on Saturday May 09, 2020 @06:29AM (#23123571)
I've never failed a take-home test (out of 7) and I do it by doing things no reasonable person would do for production code. I will write a comment for every line (within reason). I will write an entire page of documentation for a one hour project. I will write a test to check for the presence of a title in the rendered page. I will make sure to host it on AWS or Azure and give them instructions on how to upload it themselves (even if any dev should know how to throw a git repo onto the cloud).

They seem to just be looking that you can do things to a certain level of excellence (even if practically unreasonable).

The most recent take-home test was one hour of code and two hours of window dressing. Totally absurd, but I keep doing fine on that step.

EDIT: If you are talking about the Hackerranks, those are frustrating simply because you can't clarify requirements. I remember back in university that we gathered in groups to do them to just cover as many test cases as a team as possible.

Re:My Job Interview at Google (2008) by dijit on Saturday May 09, 2020 @07:23AM (#23123800)
Reminds me of a recent take home test for a SRE role I completed recently.

Normally when it comes to take-home tests I set a hard limit on actual working time to 3hrs. This doesn't include any research or reading I will do ahead of time.

The test itself was:

> We have 3 services that we want to have running in a kubernetes cluster.

> The first service is a software application called JIRA which will be used internally for the company, so we only want to be accessed by specific IP’s.

> The service needs to be highly available, have failover tolerance and able to restore from backup.

> The other services are a golang application and a python application which we provide the code.

> Inside the go-service folder we will find the golang application which exposes 2 HTTP endpoints, one of those endpoints, talks to the python microservice through GRPC protocol.

> It has 4 environment variables:

> - PORT (the port on which the http server will run)

> - SERVICE_ENDPOINT (endpoint to the python service)

> - REQUEST_TIMEOUT (request timeout in seconds)

> - IDLE_TIMEOUT (idle timeout for requests in seconds)

>

> Inside the python-service folder there is a python microservice, which only supports GRPC Protocol. This service does not have to be exposed to the outside world, and it can only be contacted by the go lang service.

> The python microservice supports a single environment variable: > - PORT (the port on where is going to be running)

>

> These services also require high availability, failover tolerance, and also they need to scale according to the load they receive, as our external clients consume them.

> Deliverables:

> - Dockerfiles for the 3 services

> - Full yaml configuration for the services to be deployed in a k8s, taking into consideration the remarks above.

> - A diagram explaining the whole infrastructure and how it is connected with each other.

> - Paper with ideas on:

> - Monitoring

> - Instrumentation

> - Security

Now, to be perfectly fair, I knew much more about how kubernetes works than how to deploy services on it, so it might have taken me a little longer to create the deployments. However, there's no way that I can make that all work in 3 hours. Not to mention that the backend code I was given wouldn't compile so I had to fix bugs.

Additionally; if I spend more than 3hours on a test, I might as well spend 6 hours, or 12 hours, or a week... At some point it becomes impossible for you to interview at multiple places. The idea of spending 9hrs of my day at work, then coming home and spending another 3hrs+ every night because I want the opportunity to keep spending 9hrs at work is insane, I'm physically unable to do that. When I get home I'm usually burned out, so these kinds of tests are done on the weekend.

Anyway. Where I work, we also give a take home test, and I apply the same principles:

If one of our team can't do it inside of an hour, we don't send it. We expect a candidate to be able to do it within 3hrs. The point of the take home test is that it's something we can discuss later, too. It's really obvious if someone struggles hard or finds it too easy.

Re:My Job Interview at Google (2008) by chrisseaton on Saturday May 09, 2020 @06:46AM (#23123626)
Google told me I should try doing some open source projects.

I had about a hundred thousand lines in a major open source project at the time.

Re:My Job Interview at Google (2008) by raverbashing on Saturday May 09, 2020 @10:57AM (#23125172)
Did you tell them to, ahem, Bing it?
Re:My Job Interview at Google (2008) by chrisseaton on Saturday May 09, 2020 @11:02AM (#23125222)
Not sure what you mean, sorry?
Re:My Job Interview at Google (2008) by raverbashing on Saturday May 09, 2020 @11:38AM (#23125607)
To Google it (but telling them to use Bing since they couldn't find it with Google ;) )
Re:My Job Interview at Google (2008) by MaxBarraclough on Saturday May 09, 2020 @07:24AM (#23123802)
Did they not like that it wasn't wholly your project?
Re:My Job Interview at Google (2008) by chrisseaton on Saturday May 09, 2020 @07:47AM (#23123945)
> Did they not like that it wasn't wholly your project?

No idea - the feedback in full was 'we're not sure you have enough practical experience programming - maybe try working on an open source project'. Then they literally showed me the door at that point lol.

Re:My Job Interview at Google (2008) by jmchuster on Saturday May 09, 2020 @09:00AM (#23124361)
It's an interview, so a more accurate piece of feedback would have been "you couldn't convince us you have practical experience programming."

So maybe they had a question like, how would you solve those problem, and you said, here's the solution, but they really wanted you to say, there are three potential approaches that i would use, these are the things i evaluate to decide which approach is likely best, these are the war stories that I've had that led me to refine my thinking to this point.

Re:My Job Interview at Google (2008) by chrisseaton on Saturday May 09, 2020 @09:18AM (#23124476)
Yeah I guess but how much open source do they want? If you've already got a hundred thousand lines and it isn't fixing what they're after then suggesting something else would be more helpful. But I guess their interview method works for them.
Re:My Job Interview at Google (2008) by jmchuster on Saturday May 09, 2020 @11:19AM (#23125388)
They're not looking for open source per se, they're looking for you to demonstrate range/depth of experience. If you haven't been able to pick it up from your job, because they're too limited in the types of projects and assignments you can work on, then they're hoping that you can get it yourself from open source.

Now, you may already have the abilities that they want you to have, then what you lack is the ability to show so in the interview.

edit: Just to clarify, in technical interviews, they often don't even look at your resume, they just ask you the questions and judge you on how you answer them. Stating your years of experience or lines of code written have no bearing.

Re:My Job Interview at Google (2008) by chrisseaton on Saturday May 09, 2020 @11:24AM (#23125454)
I don't know if we're talking past each other, but if you've already done tons of open source, and it hasn't gotten you the skills they want, then is just repeating 'do yet more open source' useful advice? That's what I mean. If someone had done tons of open source and it wasn't coming through in terms of skills I'd give them advice like 'get a friend to help you practice interviewing'.
Re:My Job Interview at Google (2008) by jmchuster on Saturday May 09, 2020 @11:34AM (#23125552)
Ok gotcha. I think you're asking a bit too much from them to give you personally tailored advice. Your interviewers most likely didn't even read your resume. Most companies will just send you pre-formatted email "sorry you weren't a fit".

If you're trying to parse their message "we're not sure you have enough practical experience programming - maybe try working on an open source project" then I would interpret it as I stated above - they didn't think you demonstrated the depth of experience that they were looking for, and were hoping that working on more types of projects, which you might not get at your job, but you might get by working on a whole bunch of different open source projects, might get you.

Re:My Job Interview at Google (2008) by httpsterio on Saturday May 09, 2020 @06:20AM (#23123538)
I find that the interviewing style of a company is often very telling of its' general work culture. You've missed our on opportunities and had to settle in less prestigious jobs, but are you sure they would've fulfilled you any better.
Re:My Job Interview at Google (2008) by ssss11 on Saturday May 09, 2020 @06:34AM (#23123588)
I tend to agree with this view - if the interviewing experience (for you) was awful you probably dont want to work there.
Re:My Job Interview at Google (2008) by raverbashing on Saturday May 09, 2020 @07:27AM (#23123818)
> having worked for the last 12+ years as a developer to be told that there were "concerns about your technical competency"

Oh yeah I've had a couple of those as well.

Usually because you can't remember one detail that can be googled or is opinionated about one specific aspect.

At the end I guess in some companies it's more of "who can jump through the hoops like a nice circus animal" more than anything.

(On the opposite side, if you throw me fizzbuzz I'll just make it harder on purpose)

Re:My Job Interview at Google (2008) by higeorge13 on Saturday May 09, 2020 @02:30PM (#23127214)
IMO the take-home tests close to the job's technical requirements and followed by 1-2 technical interviews to discuss its details and potential improvements is probably the best interview method. It gives a chance to both parties to get to know their potential future colleagues and see their technical background, skills and effort on solving an actual problem that could be part of their daily tasks.

And it gives you the right, if you feel 100% ok with what you delivered and you hear an excuse of lack of technical skills to skip the job and look for something else. Whereas having to pass 6 interviews with random CS and DS questions and problems where you have to memorise algorithms which you will never use in your daily work and then finally be rejected because you forgot one of them is way worse and has probably deteriorated the software engineering industry as a whole.

Re:My Job Interview at Google (2008) by zerr on Saturday May 09, 2020 @07:16AM (#23123769)
Most roles at big advertising or taxi companies are unfulfilling.
Re:My Job Interview at Google (2008) by solraph on Saturday May 09, 2020 @08:46AM (#23124280)
In the last few years, I've sat on both sides of the interview table several times. Recruitment in software engineering is a disaster from start to finish for all involved. As salaries have risen, it's only gotten worse.

On one side, there is a depressing number of people out there applying for programming jobs who effectively can't code. Their "skills" range from mindlessly repeating previous patterns they were told to use elsewhere without considering their applicability to the current context, all the way down to literally copy/pasting code chunks till the program appears to be working. Many of this group either don't care, or are blissfully unaware of what they don't know, or how little they know about subjects they believe themselves to be experts in.

This group is the majority of applicants. This is where the take home coding tests come from (which frankly, I also loathe).

On the other side, interviews are usually conducted by who-ever has been at an organisation the longest, and/or is most willing to put up with the shenanigans of interviewing the group mentioned above. This often means they're the ones most likely to enjoy catching people out, or who have some particular thing they like to grill people on. This is where you get the twenty-questions bingo style interviewing. Your recent interview sounds like one of these.

To add to this, there's a variety of situations where the applicant _should_ get the job, but they don't for reasons outside of the interview room. A manager wants to hire someone they know. Due to reshuffling, the job requirements have changed between publishing the job ad and interviewing. The budget was curtailed after the interview. Chances are, you'll never know the true story.

In addition, a large portion of developers don't ever go through the normal recruitment process. They'll do interviews, but they're recommended by colleagues, members of their meetup, friends of the above, or their IRC / Slack / Discord / etc group, and their interview process will reflect that. This is currently the best way to get a job. Often these groups are invite-only, and effectively invisiable.

In the middle of this maelstrom, are the few reasonably competent applicants applying for a job that is right for them, with a reasonable and fair interviewer.

--

Based on all the above, without knowing a thing about you, I'd be forced to conclude one of three options: a) You've just been really unlucky. I've been there, it sucks. b) You're not actually as good as you think you are. Usually this is when a programmer hits a certain level of expertise and stops learning anything new for some reason. Sometimes this is down to ego, sometimes it's because they've become the biggest fish in a small pond. The symptom seems to be a lack of curiosity, if not hostility, about novel or unexplored concepts. c) The above observations are based on my incredibly biased view of my corner of the world, and don't match your reality at all.

Re:My Job Interview at Google (2008) by wayanon on Saturday May 09, 2020 @04:04PM (#23127865)
What sort of salary range dictates that kind of interview process? It seems crazy to me - it isn't the CIA.
Re:My Job Interview at Google (2008) by thiagocesar on Saturday May 09, 2020 @06:24AM (#23123551)
I understand your frustration, but it seems clear to me that there is difference in what you consider high level technical skills, and what others might perceive as such.

In a highly paid position, both selling yourself and your ideas, and smoothing out differences such as this one, are expected from the employee.

While I believe that with your experience, you have accomplished a high degree of strong delivery... You still need to be able to manage this whole dealing with people thing. Because that’s why you get paid a high salary, to get any issues out of the way in a skilled manner.

Re:My Job Interview at Google (2008) by pydry on Saturday May 09, 2020 @06:52AM (#23123665)
It's pretty indisputable that the industry has a penchant for interviewing problems/techniques that are deliberately unrealistic.

Whiteboarding interviews aren't about a lack of time in interviews, for instance, theyre an homage to the academic background of many of the initial internet trailblazers (google, et al).

Re:My Job Interview at Google (2008) by Aeolun on Saturday May 09, 2020 @06:29AM (#23123570)
The problem is that this whole dealing with people thing isn’t solely dependent on yourself, the people you are dealing with need to go along.
Re:My Job Interview at Google (2008) by alxlaz on Saturday May 09, 2020 @08:22AM (#23124150)
> I understand your frustration, but it seems clear to me that there is difference in what you consider high level technical skills, and what others might perceive as such.

Or the person who did the interview is an asshole. It's pretty hard to say which one it is. Smoothing out differences such as this one is expected not only from the employee, but also from the interviewer.

Re:My Job Interview at Google (2008) by rco8786 on Saturday May 09, 2020 @07:21AM (#23123788)
How would you suggest that companies interview and evaluate people like yourself?
Re:My Job Interview at Google (2008) by zozbot234 on Saturday May 09, 2020 @07:30AM (#23123830)
Acquihire? Or else seek work in the industry as a contractor, not an employee.