I turned my interview task for Google into a startup - <AUTHOR> https://uxdesign.cc/i-turned-my-interview-task-for-google-into-a-startup-877943fb3b34 <comment><USER3> The rule of thumb I subscribed to: have the interviewer(s) do the interview. Give the candidate 3x time to do it that the in-house people took. Or, framed in reverse, if you want the assignment to take and n minutes or hours, give yourself n/3 to complete it, and however far you get is the bar for the assignment. Interviewees are stressed, maybe outside their domain, and other things. Make something that they can show you their value. The harder and correct thing to do is to find how they can help your org. It is easy to find what they don't know or to play stump the idiot.

<comment><USER4> We did this at my company. A developer at the level that that developer was applying for would do a task that took them 2-4 hours. We then gave the interviewee four days to complete the task with a recommended time of 2 days. We also always made sure to include the weekend in the time they had to complete the task as we know during the week time is precious.

<comment><USER5> I'm interviewing with 6 companies simultaneously and like you they all think they're deserving of free labor.

I'd wager your company must have the worst devs, those who have little self respect and zero other prospects.

Do you not understand that you're requesting free labor from an applicant? Did you forget the purpose isn't to have the sickest challenge ever but to evaluate someone's code/ingenuity?

<comment><USER6> Many people prefer this to an in-person whiteboard challenge. It's lower stress, and doesn't require taking additional time off from your current employer.

A 2-4 hour challenge is less time than I've spent in interviews at some companies, and would gladly have done it prior to an in-person interview given the option. That way, the actual interview time could have been spent talking about things of value, rather than having them stare at me while I white-board out problems around graph data structures and recursion and whatever other trite trivia they can come up with.

<comment><USER7> To be useful for discriminating between competent candidates, a challenge has to either be hard to complete (pass based on completion) or hard to complete to a high standard of quality (pass based on completion+quality). In other words, it has to be at the limits of what's possible for people you expect to apply for the job.

If you give me a 2 hour challenge with a timer so I can't possibly take more than 2 hours, I'm fine with that - but you won't accomplish the "lower stress" goal.

But if you give me a 2 hour challenge without timing? I know for sure other people will have spent 8 hours making super-polished, gold-plated solutions. Can I afford to fall behind the competition? If not, I should spend 8 hours too.

<comment><USER6> > To be useful for discriminating between competent candidates,

I helped redesign the code challenge at one of the companies I worked for. We (the people across the different technical disciplines we hired for) put a lot of effort into ensuring that:

* the challenge could be completed in 4 hours * the challenge resembled the sort of work people would do on the job * the goal of the challenge was to inform a follow up interview, not punish people * candidates were explicitly told that they were not being timed, but that we expected the challenge should take them up to 4 hours to give an idea of the upper-bound level of effort expected

The single biggest challenge was balancing "what do we need to know" versus "what would we like to know" versus the amount of time we were asking of our candidates.

We didn't hard-fail anyone unless they were blatantly not a good fit from their submission, and I habitually wrote multiple pages of feedback for them so they at least got something for their time if they didn't get a follow up interview.

Again, the purpose of the challenge was not a screen, so much as it was to help guide the in-person interview and so we had something concrete that we could discuss.

Follow up edit: Designing code challenges is _hard_. You have to avoid something so objective it can be copy-pasted from stack overflow, but objective enough that it can be graded free from personal bias (as much as possible anyway). On top of that, you can't test for MVC+CQRS+FP+SOLID+every- other-possible-thing under the sun, because you have to be respectful of candidate's times.

The previous code challenge (the one I replaced) would frequently take people 8-20 hours to complete, and it was actually pretty simple. As you rightly pointed out though, candidates often read far more into the requirements than were actually there, and would often over-achieve in an effort to stand out. Not only would those submissions waste their time, it wasted ours as well as they took longer to develop feedback from.

<comment><USER8> I think you're missing the point from the previous poster about (perceived) competition.

Unless your challenge literally stops at, "make X appear onscreen" with no regard for quality, testing, etc. Giving unchecked/unverified time restraints isn't fair. It doesn't matter you're giving more time than it should take to complete. If the task can be done in 2 hours, but you give "6" and Candidate A does it in 3, but Candidate B does it in 32 (but tells you 6) you're ranking two totally different submissions. Candidate B might have a super polished submission, while Candidate A has a baseline submission.

The poster you replied to was suggesting that tests should be either 1) not based on quality of submission and simply rely on difficulty so that only a few candidates can complete them or 2) based on quality and difficulty, but with a checked and verified time to keep the playing field level. However those options are both at odds with "low stress."

<comment><USER6> Again, in our case, we didn't use it as a screen unless the code was an unmitigated disaster or didn't complete the basic requirements.

So, if someone submitted something that could have been done better, see might ask what could be done to improve it in the follow up interview. A good answer would include the technical bits, and a better answer would describe the time recommendation and why a more polished version would take longer or be considered over-architecting.

This purpose- to inform a conversation with a concrete, familiar code base- is better than both take-home screen assignments as well as the in-person whiteboard exercises, which encourage route memorization and don't reflect the nature of the job we were hiring for.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> During a recent interview process I was given a take home assignment for data engineering. Well, I had to wait two weeks for the team to come up with a take home since they didn't have a data engineering assignment at the time. Eventually they sent it to me with a 2 hour time limit. I read the multi-page problem description which had bulleted requirements at three different places in the document, somewhat at odds with one another. There was a request to code a certain NLP technique from scratch and create a recommendation engine based on similar user history. I read through the sample data which had no notion of individual users or any table like that.

The whole thing seemed like something copied and pasted together by committee, with a strong smell of "PhD CTO" trying to test for intelligence by quizzing on an esoteric corner of their own grad school experience. After about an hour of trying to figure out conceptually how I could begin to implement the things asked, let alone the 6+ hours I thought it would take in practice, I emailed the recruiter back and said "Thanks but no thanks!"

My other recruiter friends later confirmed that they had burned through almost every firm in town with their ridiculous take home exams that no candidate could pass within the allotted timeframe. I think bailing was a good choice.

</comment><comment><USER10> > You have '4–6 hours' to design a slick product, with a memorable brand and > cohesive working method. No one acknowledges the fact that in reality, > you're about to dedicate up to 5 working days on this task, with the > potential for them to ghost you straight afterwards.

To make this more fair, why not let the designer work at the company's office, so the interviewer can actually see how much time it took, and the interviewee doesn't waste more time than necessary?

<comment><USER11> >> advised that we should spend no more that 3–5 hours on the task

I have to wonder if they didn't get the position because they spent more than the advised time for the task.

<comment><USER12> As a general rule when I'm given a programming task that takes 4 hours to do then - IF everything I will need for the task is already installed on my computer and all dependencies bugs and so forth have already been taken care of in these things - it will take 4 hours.

Maybe the same situation applies in Design somehow? I mean yeah it takes 4 hours to make the product if you happen to have all the graphical elements you will be using already downloaded and organized.

on edit: although I have noticed a disappointment in some places that I have not done a lot of time cleaning up the code after writing it and making everything beautiful and writing a good readme to tell them everything to do and so on and so forth and normally I don't do those things because I spent more than 4 hours because there was stuff that needed fixing and anyway if they wanted all that 4 hours would not be enough.

<comment><USER5> Unfortunately not.

Coding is like math homework. When your doing the math homework you know when your done, it's very obvious and anyone can check your work and clearly see it's either right or wrong.

Design is like a book report for English class, it's bottomless and can always be improved given more time, albeit with diminishing returns. Design challenges are evil and bullshit, you can poor hundreds of hours into a design challenge and still iterate further.

<comment><USER13> > Coding is like math homework

Agreed, unless they want a good polished solutions, meaning it has been refactored, has decent comments, is well tested, etc.... then it becomes a lot like design where the sky is the limit.

My wife got her first job in the states because of a take home design challenge. Other companies were wary of her because of her foreign degree and no US experience, and she was able to show off in the design challenge they gave her (she spent more time than estimated, but not incredibly much more than that). In this case, it really worked out for her.

</comment></comment></comment></comment></comment><comment><USER14> > You have '4–6 hours'... No one acknowledges the fact that in reality, you're > about to dedicate up to 5 working days on this task

I fixed that problem for my candidates then turned it into a startup:

[https://takehome.io](https://takehome.io)

<comment><USER15> Meta: I assume you're doing a website update at the moment. I prefer the blue! Though I might still use a white version on the homepage to remove emphasis from the header. Also, on you signup page it would IMO look nicer if you pinned the page footer (eg [https://matthewjamestaylor.com/bottom- footer](https://matthewjamestaylor.com/bottom-footer)).

<comment><USER14> Thanks for taking a look! I actually have always had a different style on the landing page from the rest of the app. One was designed to be eye catching and the other functional. The landing page is probably due for a fresh coat of paint, though. I'll give some thought to pinning the footer.

<comment><USER15> That's fine, and probably works, but the other pages look better finished and the menus jump around, etc., which gives a "in progress" feel to the site IMO.

</comment></comment></comment></comment><comment><USER16> I love take-home assignments. Especially reasonably scoped ones. They allow me to show off my skills. However, my opinion is that it should be paid labor. Give me a day of work and pay me to do it. This values my time, it actually doesn't add all the much more to the hiring expense (all that engineer interview time, resume review time, etc is expensive!), and it makes sure you are screening out early and often and not wasting 20 people's time doing a bunch of take home work for one dev position.

<comment><USER17> I don't like takehome assignments because my current employer's moonlighting policies mean I can't do them.

Ideally that wouldn't be a legal policy for my company to enforce, but that's the reality for me right now.

<comment><USER16> interesting, didn't think about that.

From a practical perspective, I'm not sure that spending 20 hours+ working on something for free is any more/less likely to make you less productive at work than doing it for pay, but I see where the letter of the law comes in.

</comment></comment></comment><comment><USER18> Someone on my team once asked an iOS engineer to add a button to a codebase during an onsite interview. That is actually a horrible test to complete in 45 minutes if the codebase is large (and particularly hard if it's not super well maintained because even just familiarizing yourself with the codebase can take a great deal of time).

It's one of those things that sounds easy but really, really isn't possible to do in the time allotted. I learned a lot about interviewing people that day.

<comment><USER19> I can't tell if this is brilliant or sadistic. On the one hand, it really tells you who's smart enough to realize the task can't be done in the allotted time. On the other hand, not being able to do something as simple as adding a button in 45 minutes has to screw with the candidate's mind. That sort of thing would shatter what little confidence I have. I'd probably tank the rest of the interview.

> I learned a lot about interviewing people that day.

Could you share what you learned?

<comment><USER18> Yeah, adding a button to a codebase is an awful test.

If someone made it to an onsite and you don't know whether they can add a button in swift, something failed in your screening process. If you're testing how someone navigates a codebase, you can just look at it with them, and let them drive the chat.

If you're testing an engineer for a serious job, do an algorithms test. If you're testing an engineer for a specific thing, test that specific thing. Both of those should be handled in the screen, not the onsite.

IMHO, the onsite is about seeing how people think. Whether you can jam a button into a repo doesn't tell me whether you can think or not. I guess it tells me whether you get flustered, but it's pretty unfair to design things that are impossible just to see if people break.

That candidate turned out to be awesome but I remember the interviewer telling me after they interviewed them "well, they couldn't add the button, but as they were doing it, I realized I wouldn't be able to add the button either so my interview was inconclusive", and I replied "well it sounds like you need to design a better interview question". The worst part was, the interviewer spent the first 20 minutes of the interview talking with the candidate before giving them 25 minutes to add the button!!

There's a question we gave candidates really early on which we no longer do because it biases towards math nerds that I absolutely loved. It's based on a movie called 13 Tzameti. I'm probably screwing it up because it isn't my question but it's basically like this:

You're in a dark room after being abducted by a gang. The lights come on and there's 12 other people in the room in a circle and everyone has a revolver with 1 bullet in it (6 slots in the chamber). Your instructions are to spin the chamber on the revolver and, when the lights go out, shoot the person to your right in order.

What are the odds you make it to the next round?

It's a crazy question and, what's even crazier is that for some reason, as you increase the number of people in the circle, the odds of making it to the next round converge on 1/e. No one has figured that out in the interview. Also no one has figured out why it converges on 1/e so if you have any ideas, let me know.

I like this question because it shows you how free thinking people are. I dislike this question because it biases towards smartasses and probability nerds.

<comment><USER20> Your odds go way up if you repeatedly fire at the guy to your left.

Being a senior engineer is knowing the difference between doing what your told and figuring out what needs to be done to achieve project success. In this case, getting to the next round.

Next question?

<comment><USER7> He never said you had to spin the chamber by an _unknown amount_ , aren't your odds even better if you make sure the bullet is in the next chamber before you shoot left?

Of course, many game theory calculations assume all players know the payoff matrix and equilibrium strategies of the others; making sure the bullet _isn 't_ in the next chamber is the rational universal strategy if the game has a fixed number of rounds.

Presumably the actual question has a bunch of provisos making sure you can't intentionally miss, or accidentally miss, or dodge, or shoot early, or fail to pull the trigger, or shoot the gang.....

<comment><USER20> There are many 'optimizations' once the lights go out.

</comment></comment></comment></comment></comment></comment><comment><USER21> This reminds me of a take home software engineering interview I was once given via email. Same deal, I was told about 5 hours. I'm an iOS developer, so I was expecting a pretty simple app.

I opened the PDF to find not one, but three separate tasks. Completion of all three was expected, with an estimate of about two hours each. One of the tasks was to replicate Apple's 'Reminders' app in its entirety, backend sync functionality included. Another, a task requesting Visual Studio (iOS devs have no need for any experience with this).

I promptly replied declining to continue the interview process. If you're ever in a similar situation, interviews can sometimes tell you more about the company than they can learn about you. Good chance I dodged a bullet, and could have been working for someone setting highly unrealistic client deadlines, with the expectation that I can build something in any technology proficiently.

<comment><USER22> We've joked about giving potential hires a challenge to fix a problem we are currently experiencing, but we wouldn't really do it. That takes some balls to ask interviewees to write or fix production code.

<comment><USER23> Back in 2000, I had an in-person interview at a very small b2b website. They'd been using overseas contractors (zero local technical people) and the founder/interviewer barely knew a thing about computers. He didn't know how to run a technical interview, so he sat me down at a computer, logged in as root on prod (lol the only server), and pointed me at a couple of bugs. I knocked them out lickety-split and was hired on the spot. The world sure has changed

<comment><USER24> I'm making it like that again. I'm back down with the blue collar proles in Mountain View, landscaping and moving and waiting tables and the like. That's how things work outside of speculation... employer has a business where they get paid, and they outsource their own functions. I'll never run an engineering org like Silicon Valley again, it's so broken in delivering results as a result of the speculative nature. I have a project website up serving two cities. We use Clojure and static generation, and operate and maintain IT like an old tractor. I train my replacements to keep myself available and customers getting a good price (minimum wage). It lets people start their career with hands-on work. It's in BigTech's interest to make us think tech is hard, but I'm using most of the same stuff as I did when I was 14 and self-taught 20 years ago, and it's gotten far far simpler and better.

<comment><USER23> I'm in high tech and dying. This is making me feel nostalgic and thinking... maybe taking 3 steps back would be 10 steps forward in terms of my mental health.

</comment></comment></comment></comment></comment><comment><USER25> When people are turning their interview questions into successful companies, maybe it is time to start asking some easier interview questions. This is a visceral demonstration of how absolutely ridiculous interviews have gotten.

<comment><USER26> Google can afford to do that. They have so many applicants willing to jump through the hoops, they can pick the top 1-2%.

<comment><USER27> I hope they find the 1% top developers that can fix gmail interface.

<comment> y-c-o-m-b Or increase the performance of Gmail (or Google Maps!!) back to what it was. Funny how the two apps ran perfectly smooth on devices 10 years ago, but they struggle with the horsepower on devices today.

</comment></comment></comment></comment><comment><USER28> Urgh. I recently had a similar situation. I started interviewing with a company who have a take-home assignment which I could have completed in the required time without taking any care over the quality of code I was submitting, but to do it properly I spent a bit of time thinking about it and building a reasonably extensive test-suite along the way.

I was asked to come in for a face to face interview, for which I made clear I was having to take a day off of work, which was cancelled a few working hours before (so I wasn't able to cancel the holiday) without an apology. I was then interviewed again by phone and told that there was 'a bug' in my code and that I should try to find it and resubmit it without any other details. The spec was a puzzle with lots of weird edge cases and horrible inconsistencies.

I decided at that point that I didn't want to work with them.

<comment><USER29> I had one a little while ago where I spent a fair amount of time on the request, and I thought was pretty well done. It completed all their tasks, showed how to use their api, and it showed I know how to integrate several different technologies, from front things like React to building an API to interact with theirs and setting up and configuring cloud technologies. They came back, and said, "We don't want to continue, we expected more from him." I sat there baffled and so did the recruiter, as it clearly did everything and more than they asked for in the assignment.

I am so glad they didn't want to go further as I am sure they are a nightmare to work for.

<comment><USER30> There have been anecdotes on HN about companies using this type of process to get free work out of people. If your code solved the problem they needed solved, they may have taken your code/ideas and used it and left you by the wayside. I hope that's not the case but it's possible.

<comment><USER31> If it was an android app you'd honestly want to download their app and put it in the apk analyzer .. just check.

</comment></comment></comment></comment><comment><USER32> A few things ... the word 'Crunchr' is real hard to make out when overlayed on the image of the person mid-pushup ... in that same-but-too-small font is your company name 'Tona' or 'Tonu'? ... the busy graphics on almost every screen looks great at first but would wear me out and get between me and my info, and looks too much like a cult-of-body-and-youth or like Men's Fitness, definitely not relatable ... the need to select a fancy background for every class listing would be tedious and would require extra info on whatever back end manages schedules, nobody will go through all that work and will be left with weird unrelated defaults ... that your original interview submission contains no rough work would make me worry you'd commit to a suboptimal path without opportunity to reset the course after a preliminary critique.

I don't like all aspects of its design but after getting through its initial quirks the Android Simple-Workout-Log app is dead simple and bare-bones and works quite well without the busy graphics.

EDIT: additional point.

</comment><comment><USER33> I am a software engineer and I was once asked during an interview at a large hedge fund to pick a side and debate why war is justified.

When I pressed them about the relevance, they indicated that they often have heated debates on all manner of topics, so they wanted to see my thought process.

I enjoy solving complex problems, but socio-ethical problems are way outside of my wheelhouse.

I politely indicated that I didn't think the company was a good fit for me.

<comment><USER34> When interviewing execs who would be building new departments a few years ago, I would pose the question of "In the wake of Arab spring in Libya, the people decide that you are their next leader. What happens in your first 100 days?".

The answers ran the gamut from lazy to fantastic to terrifying. A lot of answers where generic "coalition building" variety. The better answers identified key areas to focus on like infrastructure, basic services, etc. The best answers had clear goals and possible government structures supporting accountability.

Bad answers had the exec consolidating power and crushing opposition. The worst answers had the exec killing people to achieve their goals. Not joking, I had several answers that where "I would find my rivals and kill them".

Overall I thought it was a good question as those who performed well on it and where hired built great sustainable orgs and those who did poorly where usually shown the door within a year. Those who did well where able to take a crazy situation, break it down into smaller problems, and then solve for them while those who did poorly where usually relying either escaping the problem via committees or flat out crushing opposition.

<comment><USER35> >Bad answers had...

Asking a politically charged question on statecraft and judging the answer based on your own personal ideas about how to run a state strikes me as a bizarre way to conduct an interview, even for an exec.

>The worst answers had the exec killing people

Play stupid games, win stupid prizes?

<comment><USER36> This is why we need less humans and more AI/ML in the candidate selection process.

The guy posing Arab Spring interview questions sounds just like those 65 year old talent scouts in MoneyBall skipping over a talented 3rd baseman because the kid "doesn't have good legs." Humans are immensely stupid and irrational when it comes to judging other humans.

<comment><USER37> I wonder what makes you think AI/ML is better.

<comment><USER38> My same question. If we make terribly biased decisions, why would something with those biases baked in make any better decisions?

Maybe because they're faster?

<comment><USER39> You train the AI based on outcomes, not based on humans' judgments of what they expect outcomes to be.

<comment><USER40> But if your training data is based on previous decisions made using human bias, you're in trouble.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER41> None of the places I've worked at had me do a coding challenge. Either they already knew who I was through networking or they asked me to show them a personal project and explain how it worked. Each job was a great opportunity.

When I start looking for a new opportunity in a year or two, I may consider coding challenges to be a soft red flag in that I don't think they're worth wasting time over. I spent so many hours in the last 6 months doing various code challenges, some of which were borderline unreasonable, none of which landed me a position. I ended up getting hired by one of the top 3 places I wanted to work, and it was mainly because I had already networked with my interviewers. Maybe they looked at my GitHub, but I never asked. Regardless, coding challenges of any kind have consistently been a waste of time for me.

Unless I really _really_ want to work for a particular company, from now on I will immediately end my interview process if they ask me to do the following:

\- On-site coding challenges

\- Take home coding challenges

\- Whiteboarding

\- Brain teasers

I don't have time to waste on that shit anymore. If having years of experience and a GitHub don't demonstrate to you that I can write code, then I really can't help you with whatever it is you're looking to achieve. Developers have to shotgun apply to many places in order to play the numbers game of getting hired, and life is too short to work an extra hour or more every night to code something no one will ever use that won't get me hired anyway. People are generally biased towards feelings rather than facts, and any of the above bullet points mostly serve as a Rorschach test for interviewers who have already decided whether they like me or not. Someone just breaking into the industry _might_ want to go through the hazing process of hammering out coding challenges, but I refuse to have my personal time wasted.

To anyone reading this, networking _is_ a biggie. My dad used to tell me that and I never took him seriously because I hated the idea that schmoozing outperforms merit, but it's absolutely true. In reality, networking _should_ be better because, at the end of the day, most people can tell whether you're competent and if they want to work with you based on how you naturally interact with them. Formal interviews barely work because everyone rehearses for them and they only prove that you were able to tackle one problem(which recruiters often alert candidates to anyway).

<comment><USER42> Refusing take-homes is a reasonable stance but refusing to whiteboard strikes me as overly critical. It's a pretty standard thing to do in an interview... while whiteboarding may be a little silly, walking out of an interview after someone's already blocked time for you because you think whiteboarding is silly is even more silly than whiteboarding is. If I were the interviewer I'd be concerned that you can't be even a little bit flexible with things that you personally don't like.

<comment><USER41> > It's a pretty standard thing to do in an interview...

I'm not interested at working for _standard_ companies. :) But everyone is different. If whiteboarding is someone's thing, the more power to them.

> walking out of an interview after someone's already blocked time for you > because you think whiteboarding is silly is even more silly than > whiteboarding is

If there was a misunderstanding where they blocked out time in an interview for whiteboarding, I wouldn't be rude and refuse in person.

What I do is ask in the phone screening or the first engineering interview about whether the technical interview would involve whiteboarding or brain teasers. If the answer is yes, I politely end the interview process. That way their time is wasted minimally.

However, I have no qualms about walking out of an interview that involves brain teasers.

> If I were the interviewer I'd be concerned that you can't be even a little > bit flexible with things that you personally don't like.

Interviewing is a two-way street. How about _you_ be a little bit flexible and _not_ make me do something that you personally like? No? Yeah, I didn't think so. I'll just work for companies that don't do whiteboarding in interviews, which are a dime a dozen.

Yes, that was a bit crass, but it amazes me how people in the position of interviewing believe that interviewers should care about whether they're concerned over something.

<comment><USER43> As a hiring manager I would take a refusal to whiteboard or participate in an in-person coding problem as a sign that the candidate knew they were not qualified to write code and therefore declined so as not to waste anyone's time.

I'm sure that doesn't matter to you as you don't want to work at standard companies anyway, but I have seen plenty of people fail to solve fizz buzz who had the nerve to show up for a Senior Dev role and therefore I will always ask my candidates to write code in front of me. Anyone can copy and paste their way into an active looking github profile, much fewer can talk me through their thought process as they solve a real problem that I have given them to solve.

<comment><USER41> If all I had to do was a problem like fizz buzz, I'd probably go ahead and do it. In my experience, most coding challenges that are in-person or take-home are more involved than that Fizz buzz, taking an hour or more. I can't think of a single coding challenge I did in the last 6 months that didn't involve either building a full application or something with complicated or game-like logic. The closest thing to fizz buzz level of simplicity might have been the custom file/directory system I had to work on, but even that was more involved and nuanced than writing fizz buzz.

</comment></comment></comment></comment></comment><comment><USER44> I interviewed at Uber before they launched. Their "take home" was to create... Uber.

Here's the exact challenge:

UberCab Coder Challenge

1) Write a program that determines the wait time, trip time, rating, and fare for a black car trip in San Francisco, given that the customer's pickup location and destination is randomly placed anywhere in San Francisco proper, and given that there are X number of cars all placed randomly across the city. Use GoogleMaps API for trip duration time. Run simulation 100 times for 1, 5, 10, 20, and 50 cars. Output average wait times and trip times for each # of cars the simulation was run on.

2) Take #1 and do the same pickup and trip time calculation given that there are Y customer requests per hour (extra credit if this is done with a Poisson distribution ;)). Take into account each car's availability (given that they may have been selected to carry a customer and are in transit on pickup or on actual trip, and thus unavailable). Run simulation given the number of cars in #1, but for each simulation in #1, run once for Y=1x, 2x, 5x, the number of requests per hour (X being the number of cars in the city, as defined in #1)

3) Take #2 and then make a GoogleMaps mashup that then shows the various trips that were taken for each simulation. Provide mashup interface showing all trips but also provide ability to only show trips for each driver.

4) Write a "Hello World" app on the iPhone that for a certain driver logging in shows all of his trips taken in the last simulation, the average rating that he got, and the total fares he collected during those trips.

<comment><USER45> Having never worked in SV, are these home assignments common there? I know several engineers who would refuse to do any homework at all as a matter of principle, so a task of this magnitude without compensation sounds laughable on the face of it.

<comment><USER46> It's not the norm but it's not uncommon at startups. Also, it seems to be standard practice for data science interviews.

I personally don't put up with it, but then there are always lots of commenters in HN who bemoan whiteboard interviews and prefer take-homes. To each their own.

<comment><USER47> I prefer take homes if they are reasonably scoped and turn around expectations are around 1 week.

I would rather whiteboard about the design of the app/tool than some random question another engineer pulled out of their ass twenty minutes before the interview and has unreasonably strong opinions about the design and implementation based on whatever source they stole the problem from because they don't actually understand the problem either.

<comment><USER48> The scope is important. Some of the data science take homes I've seen could be looking for a decent/good-enough solution that takes an an hour to a full- fledged research program that would keep a few FTEs busy for a year.

</comment></comment></comment></comment></comment><comment><USER49> Is there a reason there's no naming and shaming going on here?

One company asked me to do an implementation of the Bay Area MUNI network which fetched live updates of the locations of all buses every 10 seconds; there was more to it but I can't remember it now. This was to be done in React with D3 and no additional libraries were to be used to help with integrating D3 maps in React. The role was junior level, the job listing did not specify D3 as a requirement (which pretty much guarantees a lot of people would start into it without realising maps are one of the more complicated things to do in D3 as a newbie or how poorly D3 played with React), the role was in Europe. If someone can confirm I'm not breaking any rules I'll happily share their name.

The best interview experiences I've had are with groups who just went through my (not very impressive) Github. A small coding challenge can be good as a thing to talk through during the final interview but anything longer than that and I'll tend to pitch sending them something I wanted to make in my own time regardless.

<comment><USER50> > Is there a reason there's no naming and shaming going on here?

No, there is no rule, unless you signed a contract stating you will never disclose any interview information, and even then, they'd have to find your post, find out who you are, and then take you to court over an extremely shaky premise.

Just name the damn company people! You're giving companies far more credit than they deserve in these situations. I'd argue you owe it to other people who may follow in your steps to know when a company is exploitative, deceptive, or just plain corrosive.

edit: now with less snark

<comment><USER49> > "Is there a rule I don't know about"

> Goes on to not violate the rule that seems to exist

Anyways, it was ThousandEyes

<comment><USER50> I appreciate you having the courage to call them out :)

<comment><USER49> No courage in that! The true courage is in admitting I was stupid enough to take a stab at their challenge.

The interview itself was a whole other tale of awfulness but I'll limit my overview of it here to saying that they didn't bring up the coding challenge once despite being repeatedly asked for feedback before, during and after the interview. Maybe they felt awkward about saying how crap they thought it was? Be pretty weird to bring me in for an interview in that case though...

</comment></comment></comment></comment></comment><comment><USER51> Awesome to read about you turning this into your own startup.

One thing I came to think about regarding the "4-5 hours" and throwing 5 working days on it, is that, maybe as an interviewer it is quite obvious that you put more than 4-5 hours into it and what they were "really" after were the trade-offs you would have made if you put 4-5 hours into it. Just a thought.

<comment><USER52> Not Google, but similar company and can confirm. If you spend 5x the amount of time we suggest, it's obvious and the expectations scale a lot, lot higher than if you just spent 5 hours.

<comment><USER53> So I should spend a few more hours going back to add flaws to make it look like I spent less time?

</comment></comment></comment><comment><USER54> I recently completed an interview junket. One of the companies I really wanted to get into gave me a take home. I completed it in the time they said it would take, submitted it, and then got bounced out. My inside source said that the submissions are run through an acceptance test suite (not exposed to the interviewee, of course) that can automatically bounce people out of the process with no or little human intervention.

PROTIP: don't do that.

<comment><USER55> That doesn't sound fair unless the acceptance test suite is available to the candidate before final submission. In which case, depending on how the infrastructure is set up, could be expensive or slow. Seems to be a lose-lose situation.

</comment></comment><comment><USER56> Actual Google app:

[https://www.wareable.com/media/images/2017/03/google-fit- app...](https://www.wareable.com/media/images/2017/03/google-fit- app-1490141873-TZ46-column-width-inline.jpg)

WTF Google?

<comment><USER57> Are you complaining about the design of this app?

<comment><USER58> I hope so. Google Fit is atrocious.

<comment><USER56> Yes, the app described in the article looks much better.

</comment></comment></comment></comment><comment><USER59> I once completed the task sent to me by a prospective employer, and then thanked them and said I wouldn't be submitting it, as it told me enough about the way they worked to know I wouldn't enjoy it.

Never forget that the interview process is two way ...

<comment><USER60> Those few big companies probably have more than enough candidates. If you have too many candidates you need to adjust interview difficulty to still hire only as much as you need. I don't think these companies care that the task is too difficult for 99% of people, or that there are smart people who are not motivated enough to complete it as long as they can get as many smart and motivated people as they want.

That said, finding a job in IT if you are good at what you're doing is a dreamland currently, so declining if you think you won't enjoy working for a given company seems only natural.

Given dynamics above I think you're likely better off not working for one of those top few companies if you don't care about prestige and long term job stability.

<comment><USER61> Simply put, no.

If you have "too many people" you dont make the quality of your hiring "better" by making the process worse.

Being more selective about who you hire is not related to making a stupid test.

<comment><USER62> You're assuming that most recruiting pipelines are reasonable.

</comment></comment></comment></comment><comment><USER63> Some companies do technical interview great, but there are a couple things that I have noticed that always make me question if I actually want to work somewhere:

\- Being sent to a website to do a take home coding exercise, with a checkbox basically saying "I won't use the internet, stack overflow, or similar". I get that you need to test my knowledge, but shouldn't you care more that I know how to search for my problem and understand a fix instead of flailing around?

\- (this one I have noticed in person) Being handed a thing to build, being told I have a limited amount of time. That all they want is a proof of concept, but the tooling they are asking me to use go completely against the idea that it is a "proof of concept" since they make certain assumptions about the end goal. EX: deploy something with terraform but we don't want you to build an AMI or anything like that so just manually go into each system once you create it

<comment><USER64> I hate companies that act like it is a sin to use Google or Stack Overflow when coding.

When I hear this BS, then I know it is clear that they have never coded themselves. I would love to meet a software engineer who truly can sit in a padded room and write code with no internet access to use for help or reference.

Especially those of us that juggle multiple languages (full stack). Sometimes I know I need to run a method but I can't remember the actual method name or how it is formatted in this language. I know it exists, I have used many times before, but I might not remember the exact way it is worded. So I have to look it up. It adds <60 seconds for me to find.

Or I might know a method exists but not sure which parameters it accepts. I might usually use the first 2 params and leave the rest, but this specific use case requires changing something i don't normally need. So guess what, I have to look it up!

Sometimes I might get an error message that I don't recognize, so a quick look at StackOverflow reveals that a configuration item is off, or something was formatted incorrectly. I often can understand my problem with only just reading the first few lines of the selected answer on SO. I might be able to solve a bug in 60 seconds by using Stack Overflow, that might otherwise take hours to do without them.

Especially as software developers keep getting asked to know more and more stuff, we have to rely on documentation and helpful sites in order to do our jobs. It is crazy to expect that you don't use those resources.

Oh and ObjectiveC/Swift developers have it really bad. Some of the method names are entire structured sentences.

<comment><USER65> You're right about ObjC/Swift. Even though that's my line of work, I use C++ to answer questions in interviews. There's no way I'm going to remember method names for those.

I did have a Google phone screen where they asked me to live code something in Objective-C, but they gave me an existing class whose code I had to fill in and they were lenient with remembering common method names.

</comment></comment></comment><comment><USER66> This is a really great marketing example! The creator has combined a top page HN post with a PH launch at the same time with really polished looking apps & landing pages.

Essentially this will give them a huge traction boost on the app stores and a bunch of new users. Super impressive.

<comment><USER65> It's definitely good marketing, so kudos to the creator. I will say though that so many Medium articles I read now are essentially marketing pieces. They'll cover some topic very, very lightly and have a call to action at the end to view the author's product or company.

</comment></comment><comment><USER67> I recently was given a toy problem in an interview - read data in some format, process it, and write the output. Expectation was 4 hours of work, which is pretty close to what it took me to get all the edge cases, test suite, requisite documentation, and VS project/solution files.

The feedback I got afterwards was "We're passing on you as your code doesn't compile/run on Linux", a requirement that wasn't specified.

<comment><USER68> >The feedback I got afterwards was "We're passing on you as your code doesn't compile/run on Linux", a requirement that wasn't specified.

I have to ask, was there something that implied that it should specifically run on Windows? If I got a software spec that didn't spell out exactly which platforms needed to be supported, one of the very first things I would do would be to ask for clarification.

<comment><USER69> Applying for a dotnet position and assuming dotnet framework instead of dotnet core would have been very responsible two years ago.

<comment><USER68> I guess I have a fundamentally different view of software requirements. Even before dotnet core even existed I would have explicitly confirmed that the company wasn't using Mono if they didn't spell it out for me.

<comment><USER69> Mono's use was very limited because it was an out of date and slower implementation of .NET. It's used in such niche contexts (Xamarin and Unity) that it was easy to determine if the team you are applying is using MONO or Framework.

.NET core changed the ability to make the Windows assumption. Almost everyone has received the memo by now, but there was a period of time between .NET core 1.0 (June 2016) and the release of .NET core 2.0 (August 2017) where the platform was changing so much and the performance wasn't as good as framework that anyone without a simultaneous interest in Linux rightly ignored it. After the release of .NET core 2.0 the entire community began accepting it as a faster platform that runs comfortably on cheaper servers. A larger and larger portion of new projects have been running .net core. Now, with the planned release for .NET 5 next year .NET Framework is dead. However, if you were interviewing with a .NET team before June 2016 even asking the question "What operating system will this run on?" would have been a sign of incompetence. Of course you'll be building .exe and .dll files. Of course the webserver is going to be IIS. Those were the only things .NET was good at building.

<comment><USER68> > However, if you were interviewing with a .NET team before June 2016 even > asking the question "What operating system will this run on?" would have > been a sign of incompetence.

It really depends on how you're asking the question. "What OS will this run on?" is going to be perceived differently from "Are you expecting anything unusual like Mono support?".

The OP didn't actually say that this was a .NET application, but if it was the answer to either question would have been important. If the answer had been that the company expected a standard Windows environment, I don't think it's likely that the second question would be perceived negatively.

</comment></comment></comment></comment></comment></comment><comment><USER8> > They presented three design challenge options to pick from, with a weeks > notice and advised that we should spend no more that 3–5 hours on the task > (wink, wink)

I know this self-selects for people willing to do extra work for no extra compensation.

However, let me play devil's advocate for a minute as a thought experiment. I would actually worry that this issue is also a self fulfilling prophesy. If I'm told to do X in Y hours, but it takes me 10 x Y hours perhaps the employer _really does_ expect it to take only Y hours. Maybe the typical workload at that employer is for someone who really can do X in Y. As long as that is properly compensated, I see no problem with that. If the employer is asking for an extremely high caliber developer, and will also compensate as such then it's no issue. However, an average developer applies and thus has to lie about what they can achieve in that time-frame. Let's say they get the job and then when the workload is dumped on them it obviously takes longer than the 40 hour work week and they cry about "self selecting for people willing to work extra for no compensation." When in actuality, the employer expected, based on a false presentation, that it was within the average developer's abilities.

Of course, I'm being somewhat satirical and without knowing the exact position and compensation being offered (as compared to average) no one can say if this is the case.

</comment><comment><USER70> What a great launch story! I don't mean to reduce your experience to a marketing gimmick but I know that you intentionally crafted the story to be impactful and to coincide with your launch. Most importantly, though, you pulled it off really well!

I can't help but admire the way this was done :) I hope my launch story is this good.

</comment><comment><USER71> People can tell whether you spent 5 hours or 5 days on a task.

I wonder whether that's the reason for him not getting the job. Likely, the interviewers wanted to see what this person is capable of doing in a short timeframe, how they'll prioritize and deliver under such constraints. This guy failed to do what they asked for.

</comment><comment><USER72> Is HN truly this bad of a bubble that everyone thinks interview tests are normal?

The last time I had to do a test it was on site and I was just out of college. Most interviews just talk about the challenges of the team, my past work on similar problems, and how I solved them. I've been on the other side of the table too. It's usually easy to tell if the applicant is a quack or if they are skilled by how they talk about different technology: commiserating about familiar pain points, how they solved common problems. I almost feel at this point that it's unprofessional to hand out tests to people.

<comment><USER73> > It's usually easy to tell if the applicant is a quack or if they are skilled > by how they talk about different technology: commiserating about familiar > pain points, how they solved common problems. I almost feel at this point > that it's unprofessional to hand out tests to people.

The problem with what you're describing is that it's using a proxy (discussion) to vet a particular skill (ability to program).

It's very easy to vet someone's programming skill by having them program, and it doesn't take much longer than a wide ranging discussion, so why not skip the proxy and test what we're actually hiring for?

Should a programming test be several hours (or several days) long? No. But an hour or two, I can't see how that's a terrible imposition.

<comment><USER74> Maybe just ask applicants to spend an hour or two onsite without internet making them to solve project euler-type problems and discuss their solutions afterwards.

I'm sure you can somehow include technologies relevant to the position and keep the problems to the same scope.

Or these companies could begin creating actual value instead of just draining it from the world. Why don't they expand their pipeline that converts intern/junior positions into more senior positions? And make it a big enough so they don't need to hire as many ready-made 10x engineers from outside.

<comment><USER73> > Maybe just ask applicants to spend an hour or two onsite without internet > making them to solve project euler-type problems and discuss their solutions > afterwards.

I 1,000% do not care about someone's ability to solve a random programming puzzle without the internet.

Again, this is a (bad) proxy for the skill I'm actually trying to hire for. If I'm hiring a backend engineer, why would I ask someone to implement QuickSort? Wouldn't it be better to give them a realish application and have them add a feature or fix a bug?

> Why don't they expand their pipeline that converts intern/junior positions > into more senior positions?

My company has a very healthy pipeline of interns and junior developers. In a year or two, they'll be very good. In five to ten years, they'll be amazing. But I also have shit that I need to get done by the end of the month, and I need people with years of experience to complete them.

And regardless of which level I'm hiring at, I want to see them code, and I want it to be in an environment as close to how they will be working as possible. Google, Stack Overflow, an IDE, a build system, unit tests ... I want to see how they will perform as _Software Engineers_ , not Euler- grinders.

</comment></comment></comment></comment><comment><USER75> Why is Google's design _so_ bad then if they have such a tough interview process? Corporate structure/culture kills even best-of-the best talent's initiative? I think, what they need is non-conformism. But they don't select presumably for non-conformism during interview. They select for obedience. (Just thinking out loud) When Google (having so much resources) will release a product whose UI would make people say, "wow?" Not just the (superior) data- processing capabilities or pretty good hardware.

<comment><USER76> Clearly this is subjective, but I'm regularly impressed with Photos and Maps. Thoughtful, subtle, and yet informative. With some delightful interactions.

</comment></comment><comment><USER77> I really despise these take-home projects. In NYC it's not uncommon for a developer to make ~$60 an hour, and these take-home projects can take anywhere between 2-6 hours, meaning that these companies are expecting you to spend up to $240 on a task where there's not even a guarantee of getting the job.

Whenever I've done these, I usually end up doing them in JavaScript in a hyper-functional style (as is my nature since usually they won't allow me to do them in Scheme or Haskell), which ends up with the reviewer asking me to write it in a more "modular" way (which really means "please write Java in JavaScript").

I have a line in the sand now that I'm done doing take-home projects; I really don't need to donate my after-work time just to have someone who doesn't understand functional programming explain to me how it's not as modular as some Java OOP crap, especially when I could spend that time building a project that will, you know, _actually_ make me money.

EDIT: I realize that this came off as overly-hostile to Java. I'm not a fan of the language, but my point wasn't really the bash it, as much as complaining about people acting like my functional code isn't good because all they know how to write is OOP Java.

</comment><comment><USER78> I believe Google have brainwashed us all.

Are we sure that it is worth all this effort? Are they so much better than any other company or startup?

Is our own self so much more valuable if a random intervier liked our works an epsilon more than the other candidate?

People inside FAANG are unhappy as well, they leave their company as well.

I believe we should be less impacted by the ads that Google is running to sponsor itself as the best workplace ever.

<comment><USER65> I agree with you. I was immediately struck by the tone of the article that the author was "fortunate" enough to be interviewed by Google. Maybe it's because I've been working for nearly 20 years now and am becoming an "old man", but the feeling that Google is this promised land of opportunity rubs me the wrong way. Every company has pros and cons and I suppose Google may have a lot of pros (free food, good perks, and good pay) but at the end of the day, it's just a big company where you work on large projects and will likely have little say in the final product's look and feel.

<comment><USER79> Recently interviewed at Amazon and I got that vibe as well. Didn't really "sell" the job to me at all, just assumed I would automatically be in love with them. Obviously they're there to evaluate my skills, but in my opinion an interview should be something of a two-way street.

</comment></comment></comment><comment><USER80> Are you sure you didn't sign any NDA, preventing you from working on ideas you might get during interview? Google used to have pretty water-tight policy on outflow of ideas (but inflow was encouraged) during interviews.

<comment><USER57> Does Google make you sign an NDA _before_ you interview?!

<comment><USER81> Implicitly, when you print your visitor badge you consent to the NDA. Though that may be a generic site NDA, not an interview one.

I never had to provide an actual signature, aside from a verbal agreement with the recruiter to not share interview questions.

</comment></comment></comment><comment><USER64> Getting hired at Google is as much of a Lottery as anything else. You really can't look at interview questions and beat yourself up. There are Google employees who got hired doing much less, and other employees that had to work even harder to get hired.

At that level, anyone who gets called to interview for Google is already qualified for the job. It really is a lottery at that point if you get the job.

</comment><comment><USER82> Interesting read. Its good to realize that a interview process and the work involved can turn into your own business.

Shows again that good efforts pay off anyhow.

<comment><USER83> Equally revealing on how submitted interview tasks can have exploitable business value.

</comment></comment><comment><USER84> My last company did interviews like this - I was always disgusted at the way most of the team would sit around and just find things to pick on in the person's code. Dumb stuff too. It became an excuse for a lot of the engineers to just make fun of someone who had successfully completed the program, but didn't take the time to JavaDoc everything and follow the same code style best practices we did. Things you can easily address with a bit of training and code review, and that maybe they already do when they're not trying to interview for a lot of jobs while still in school. Sad, really.

<comment><USER85> Not saying this approach was correct, but given a choice, what type of interview would you prefer? Hackerrank? In person, programming challenges, smaller take-home assignment, other?

<comment><USER84> As both an interviewer and interviewee I prefer in-person. Where you simply meet 1:1 with a few people - some talk to you about fit / experiences and some sit and work with you on a problem. Ideally, you would do the second in a work environment you're used to on a real computer instead of a whiteboard, and I haven't had a chance to do that before. I've seen a few poor performers slip through this before, but I do feel it gives a lot more room for people who just misinterpret what you're going for initially because there's more room for immediate feedback [1]. I've also had some disastrous experiences working with people who were amazing coders but were terrible and sitting down and talking through a problem with someone - I'd rather have a mediocre coder I can talk to. It gives the interviewee a finite time bound, and the company is spending equal manpower resources of their own (instead of giving you a 5-hour problem that you might secretly spend more on, when maybe they already are leaning towards a no but wanted to give you a final chance before ghosting). The downside here is it depends a lot on the consistency and skill of the interviewers, but I believe with good culture and training you can make most people good at this.

[1] edit: Also, I think you can tell a lot about how qualified someone is by how they clarify the problem and how they communicate their thinking - <USER2> just the code they arrive at.

</comment></comment></comment><comment><USER86> One California company that used cheap labor in third world countries to interact with customers asked me to create a scheduler so that available workers would make the system have 24 hour up time, log all employee actions, and determine employee status (fire or not) based on employee action history, they were doing it mostly manually at that point so the completed task probably would probably have fit into their production system (got access to old production data for making system), also 24 hours for a first pass, and 48 hours for a fully functioning system, for zero pay - also, they wanted someone open to writing software to replace the third world labor after this task was complete.

</comment><comment><USER87> _"My mind instantly went to an app I love, Strava. I use it almost daily ..."_

So do I.

And the other day, 200m into the run, I took a first glance at Strava and noticed it was way off (gps error). Ususally I would reset and start over. But, that one time I just turned it off. 30 minutes later I was back. I don't know how far I ran (5 point something), I don't know how fast (also 5 pint something) and obviously have no idea how my performance on sections compares to others.

But it was a great run. A bliss.

So, I'm not saying fitness activity tracking is no good or that google interviews are. I'm just saying, that, yah, every once in a while, in both, ignorance, is, well, you know...

</comment><comment><USER88> Great job. One should always do the best work possible. If this means someone else rejects your efforts, it'll still be a tangible satisfactory memory that, like this specific example, could turn into something more.

</comment><comment><USER89> Some companies use a process where the candidate doesn't see the challenge until pressing "start", and then they have x hours to complete it.

This seems to be far superior for obvious reasons:

1) It normalizes the submissions, making the review process more accurate/fair 2) It removes any ambiguity or implication around the amount of time that should be spent 3) The amount of time a candidate has/is willing to devote to an unpaid homework assignment is likely not meaningfully correlated to their ultimate success in the role, but the process described by OP likely over- indexes for that.

</comment><comment><USER90> Correct me if I am wrong, but couldn't Google claim this is their IP since they provided the options?

</comment><comment><USER91> When I was in college I preferred take-home coding challenges and whiteboard coding questions than talking through experiences.

...Because I had no experience, and school projects didn't count.

I had time that no one is paying for, I had skills (at least i believed), but no interviews because of experience. So coding challenge is the one thing that I can compete fairly with people with experiences, and I even had an edge because I value my time less.

Of course, now I don't. But I was thankful that it is a thing so I can land my first job.

</comment><comment><USER92> Maybe I should try to get an interview with Google so they can feed me startup ideas.

"Wow, great interview task! Oh, I'm no longer interested in pursuing a job with you, but thanks."

</comment><comment><USER93> Just a crazy thought, from seeing all these posts referencing their interview materials:

1\. could a company go after you for violating the NDA

2\. could a company, in theory, also make claim to your IP

Would love to hear your opinions.

</comment><comment><USER94> This how interview task should be made : generate something joyful and useful ; instead we usually have boring throw away to do task. By the way I had the same @ [https://www.captaincontrat.com/](https://www.captaincontrat.com/) the task was to create a pokemon game, and from that task, I am building my current startup ;) (more on that later)

</comment><comment><USER95> >No one acknowledges the fact that in reality, you're about to dedicate up to 5 working days on this task, with the potential for them to ghost you straight afterwards.

Is this as common as the author makes it sound? This seems like shady practice. I've heard of marketing firms doing this as a way to get 'free' ideas/work

</comment><comment><USER96> Someone I once worked with asked me a question that I think is relevant here and I will never forget it (roughly translated to English): Do you work to live, or live to work? It's beautiful, simple, and for me it put into perspective what really matters. I value and enjoy my job but I refuse to dedicate my life to it.

<comment><USER64> That is a great interview question. I would happily answer

"I work to live, and any company that doesn't want to hire me because of that answer is a company that I don't want to work for"

</comment></comment><comment><USER97> It is interesting to see this outrage from a lot of candidates. Back in "my" day (ie 10-15 years ago), it used to be that treatment of employed engineers was shoddy enough (without the benefit of decent compensation or environment) that it was relatively less risky to start a startup (aka ISV). But back then interviewing was specific, experience based and not standardized. Ofcourse as companies caught on and started selling the "we are Agile(tm) but also pay really well and pamper you", the incentives to start your own decreased. This resulted in an increased supply of candidates (at least for the "branded" companies). I wonder if the next catalyst to start startups is the shoddy treatment of candidates who are now pretty much moved through the cattle class of interviewing pipelines?

</comment><comment><USER98> Wouldn't it be interesting if everyone participating in these types of interview challenges refused to do them unless the work could be turned into a reference piece like this guy did?

I doubt many companies would like that, but if a majority of people refused to participate without that clause, who knows? Clearly several people in this thread felt like they were being asked to do work which would be put into production and this would prevent that (though I personally am REALLY skeptical of those stories).

It seems crazy that people are being asked to do work for even a few hours for "free" much less several days of work. If you are doing that, it seems totally fair to indicate that this work will be made public afterwards and made into a portfolio piece.

</comment><comment><USER99> This sentences stuck with me and clearly illustrates how screwed, unhuman, and selfish hiring is in this business

"No one acknowledges the fact that in reality, you're about to dedicate up to 5 working days on this task, with the potential for them to ghost you straight afterwards."

I was ghosted by AirBNB once, and I'm fine with not being good enough, but no feedback and never a response was pretty freaking rude. You ask me to do a task, i put part of myself into do it, and then no response, ever. I'm glad they never responded, i don't want to work for a soulless company such as that.

</comment><comment><USER100> The last take home thing I did, I put it up on GitHub with an MIT license (didn't sign any NDAs/etc). I figured if there was a chance they would actually use it, might as well open source it for everyone.

</comment><comment><USER101> Don't found your startup based on the first idea you fall in love with. Don't found your startup based on the first idea you fall in love with. Don't found your startup based on the first idea you fall in love with.

Make a list of attractive markets to play in, talk to a lot of insiders in those markets, choose three ideas out of at least 30 that you generated, put some serious work into validating their business models, _then_ let yourself fall in love with one and spend 10 years sweating to make it a reality.

</comment><comment><USER102> I like the concept. I use Strava a lot for cycling, but it's not very good for non-cardio activities. Lots of people I follow also track their strength workouts on Strava, but I haven't done it myself as I find it hard to track progress when the system is not made for it.

Before I have used Fitocracy, I'd say this may be the biggest competitor to this, as it is (at least 5 years ago when I used it) more tailored for strength, where one can log specific exercises and track them over time.

<comment><USER103> You should check out my strength tracking app, Riker:

[https://itunes.apple.com/us/app/riker/id1196920730?mt=8](https://itunes.apple.com/us/app/riker/id1196920730?mt=8)

[https://play.google.com/store/apps/details?id=com.rikerapp.r...](https://play.google.com/store/apps/details?id=com.rikerapp.riker)

</comment></comment><comment><USER104> One assumes that, now that you have told the world you got the idea there, that they will show up soon to claim your startup as their intellectual property.

</comment><comment><USER105> Is this common?

> I was told it was extremely close and that I should reapply in 12 months,

It seems really weird to me to put this burden on the applicant. If someone is above the hiring bar but just got edged out, shouldn't they go into the bucket of people to contact as soon as there's an opening? And for designers at a place the size of Google, wouldn't that be much sooner than 12 months?

<comment><USER65> I interviewed at Google and was told something similar. However, in their case they did reach out to me about 12 months later asking if I wanted to reapply. This was for a dev role though.

</comment></comment><comment><USER106> Biggest takeaway to me is that the candidate didn't do as asked because they thought they knew better. When someone asks you to do 3-5 hours of work, do that.

If it's obvious you spent DAYS on this, what does that tell me as the interviewer/recruiter? I have no idea if this person can follow instructions and I have no idea what this person can do in 3-5 hours.

</comment><comment><USER107> A lot of people are saying they declined to continue interviewing after receiving a take-home programming assignment that was too difficult to do in the expected timeframe. I wonder if the better tactic would be to simply tell the recruiter that it's too difficult, and see what the company says.

</comment><comment><USER108> In regards to a lot of talk about unfair pre-interview "projects", I highly recommend everyone ASK for an interview before working on the assignment, or if the assignment is short enough, work on-site, and request a code review in person.

</comment><comment><USER109> > _with a weeks notice and advised that we should spend no more that 3–5 hours > on the task (wink, wink)_

Was Google wink-winking, or is there a well-known practice of ignoring a real time limit, or is the writer imagining a wink-wink?

</comment><comment><USER110> Product looks good. I have been working on an app like this but haven't had the time to complete (only time for wire frames, research and other peoples stuff). It's good to see what should be.

</comment><comment><USER111> Looks like the visual style of the most brand materials were _heavily_ inspired by [https://css-tricks.com/](https://css-tricks.com/)

</comment><comment><USER109> This isn't typical startup origin story IP OPSEC. Aren't you supposed to say the idea came to you in the shower, the day after you and a couple coworkers quit your jobs?

</comment><comment><USER112> I love metrics that are essentially irrelevant but sound very cool like "our BETA users have burned two million calories collectively and lifted 500,000 tonnes".

</comment><comment><USER110> This is nice. I've been working on something like this for a while but never finished(only time to build mocks and gather research). Good to see what could be.

</comment><comment><USER113> How did you get your first 5000 users? Was it word of mouth, or did you do any specific marketing?

I am currency confounded by how people get users to sign up to products pre- launch.

</comment><comment><USER114> Seems like, if somehow your startu is a successful one, google can just buy your company. Win win

</comment><comment><USER115> Hahaha. TLDR: Google asked a designer take home question. Candidate did a phenomenal job. Google still rejected candidate. Candidate turned the take home assignment into a real startup.

Just goes to say how much the industry sucks at evaluating candidates in general. This would have been a phenomenal candidate.

</comment><comment><USER116> I guess grudges aren't held, but I do find it humorous that even after being rejected, the product's website "tona.fit" uses GSuite.

</comment><comment><USER117> That's awesome! Working for yourself is also more rewarding in the long run. Keep your eyes open for more interview question ideas.

</comment><comment><USER118> i love this. so many companies try to get free work out of interviewees, nice to see tables turned

</comment><comment><USER119> Great story - well done!

</comment><comment><USER120> A lot of people don't realise it but a lot of the tasks you do for you employer could very well have been a startup. There's a reason your employer has you working on those problems: They know what their clients want.

Cisco is famous for funding startups by its fromer employees that satisfy their client wants. Google might be trying something similar with Area120?

Being successful at startups is although an entirely different matter, and I guess that's why most people don't take up the opportunity. The paychecks are golden handcuffs, for some.

I think, these pg essays are relevant:

[http://paulgraham.com/before.html](http://paulgraham.com/before.html)

> _The component of entrepreneurship that really matters is domain expertise. > The way to become Larry Page was to become an expert on search. And the way > to become an expert on search was to be driven by genuine curiosity, not > some ulterior motive._

...

> _At its best, starting a startup is merely an ulterior motive for > curiosity._

...

[http://paulgraham.com/start.html](http://paulgraham.com/start.html)

> _...you don 't need a brilliant idea to start a startup around. The way a > startup makes money is to offer people better technology than they have now. > But what people have now is often so bad that it doesn't take brilliance to > do better._

...

> _The best odds are in niche markets. Since startups make money by offering > people something better than they had before, the best opportunities are > where things suck most. And it would be hard to find a place where things > suck more than in corporate IT departments. You would not believe the amount > of money companies spend on software, and the crap they get in return. This > imbalance equals opportunity._

> _If you want ideas for startups, one of the most valuable things you could > do is find a middle-sized non-technology company and spend a couple weeks > just watching what they do with computers. Most good hackers have no more > idea of the horrors perpetrated in these places than rich Americans do of > what goes on in Brazilian slums._

> _Start by writing software for smaller companies, because it 's easier to > sell to them. It's worth so much to sell stuff to big companies that the > people selling them the crap they currently use spend a lot of time and > money to do it. And while you can outhack Oracle with one frontal lobe tied > behind your back, you can't outsell an Oracle salesman. So if you want to > win through better technology, aim at smaller customers._

<comment><USER121> sorry for being offtopic: i see you list people you follow in your profile. Are you using a 3rd party service to follow them, or using the hn api yourself ?

</comment></comment><comment><USER5> I recently went through an interview with a company posting on HN and was shocked by their challenge.

They provided their current UI (barebones dashboard) as well as instructions to launch the backend server locally and requested I upgrade their UI to include a side panel for filtering a data table.

The task itself wasn't difficult, but the realization that these scum bags wanted me to upgrade their current product under the guise of a challenge. I instantly knew this wouldn't be a company I'd want to work for even if they did provide an offer.

<comment><USER122> Are you sure it was the latest version of their product? Asking someone to do a task that you have recently done could be a really good code test.

<comment><USER5> They had given me a live demo of their product on a call beforehand, so I know they didn't have this. They wanted me to design a feature they didn't have yet on their current product.

<comment><USER123> If they had paid you for your time would it have been ok?

<comment><USER124> Depends on if you're happy just being a hired gun instead of an employee.

The real problem is that they've broken the social contract implicit in the interviewing process, which is that the work you're doing is only to prove yourself and that they won't benefit by it except to be able to gauge your skills. If instead they had been honest up-front that they wanted to hire you short term as a trial period type thing with the possibility of hiring you as a full employee down the line, that would be fair.

<comment><USER125> Not worthwhile, but it would have been interesting if you'd completed the project and included some telltale sign that you'd authored the code.

Then, if you found they'd deployed it without you having granted them a right to use your copyrighted work, you'd have an interesting basis for a lawsuit.

<comment><USER126> I would have sent it from a public Github repo.

That's what I usually do with code challenges!

</comment></comment></comment></comment></comment></comment></comment><comment><USER127> Looks great!

</comment><comment><USER128> Easier to create a software company than work for one.

<comment><USER129> Nope.

<comment><USER128> Try it and see for yourself.</comment></comment></comment>


You've Never Met 7% Of Your Facebook "Friends" - <AUTHOR> http://techcrunch.com/2011/06/16/study-youve-never-met-7-of-your-facebook-friends/

<comment><USER2> I've started about a couple of weeks ago to start unfriending people I haven't interacted with or lost connection with. But going with that article, the first people I unfriended were the "never met in person" category</comment>


Ask HN: How do you `audit' a news? - <AUTHOR> Are there any paradigms to establish accountability for the authors, news agencies, and check the traces of facts? <comment><USER2> We actually have a law in Denmark which holds news publications accountable for what they print, meaning that their editorial staff could go to prison if it can be proven that they knowingly misinformed.

In general I prefer to pay people to do my editorial audit for me. I go a step further though, I subscribe to a physical news paper that only comes out once a week, because by doing so, I also filter out all the things that weren't important enough to make it into the single weekly print. I do sometimes turn to public service for a quick view of the daily news, and when something major happens. I used to read free internet news, but I was really dissatisfied with it, turns out you get what you pay for, and filtering out 90% of the bullshit has improved my outlook immensely.

When I chose my news paper I did some research on which Danish papers were considered the highest quality, and a few came up. Then I bought one of each for a few weeks and found the one I liked the best. That was Weekend Avisen. It contains a lot of stuff on culture, which I often skip, but it's articles on news and the political scene are great. What it does that a lot of news media doesn't, aside from filtering a lot of the day to day nonsense, is respect the fact that things are never black and white, and it handles this intelligently.

I'm extremely skeptic about things that are user audited. You can find a lot of good user driven content on the internet, but it's often a little misleading even when it doesn't intend to be. HN is a great example of this. The content here, on things like which programming languages are hot, is so far from the real world, at least the one I live in, it's silly. We have so many topics about things like Rust or Go, but when I look at the Danish job- market there is literally just one listing for Rust, and that's for a c/c++ job at Google where it's listed as "nice but not necessary". HN is still the best and most relevant place for tech-news, but I kind of wish there was a NYT for tech, where a real editorial staff would weed out all the medium bullshit. Because it's really kind of a waste of our time when we all have to do it, and that's probably why people turn to the comment sections before they read the articles, we want people to audit our content. I just go a step further, because I want trained and accountable professionals, not anonymous people to do it for me.</comment>


A Look at the BBC UHD Encoder in 2018 - <AUTHOR> http://obe.tv/about-us/obe-blog/item/54-a-look-at-the-bbc-uhd-encoder-in-2018 <comment><USER2> Realtime UHD (or "realtime" in this case - the UHD feed was about 1m40 behind BBC1 HD) still seems a tricky thing to do. It will get there, I remember a collegue saying about 10 years ago "software encoding SD in realtime is fine, but you won't be able to do it reliably in HD"

VOD is relatively easy -- you can spend an hour encoding a 1 minute piece, it's not a problem.

Has anyone done any similar analysis of similar live UHD feeds (they've been quite common for a long time in Japan I understand).

What do UHD recorders do to record UHD material -- just massive iframe only codecs?

<comment><USER3> Not surprisingly, "You won't be able to do this [computationally hard thing]" is a prediction that doesn't age well. :)

The most recent benchmarks I've seen show HEVC encoding to be 10x-15x slower than H.264, and 4K is 4x the pixel count of 1080p. Naively, this would make UHD 40x-60x more computationally intensive than 1080p, but it is probably not quite that bad. (4x pixel count should be a bit less than 4x computation.)

Latency isn't really a factor here, though. UHD doesn't have higher latency than HD; both just need to fill a few seconds of buffer in the player, and as long as they can keep up with a stream in real-time, this will only take a few seconds to do.

> What do UHD recorders do to record UHD material -- just massive iframe only > codecs?

Yes, but the use of iframe-only is orthogonal to the delivery codec or format. (Most pro video is shot and edited in an intra-only codec.)

<comment><USER4> At these delays you can use sharded coding with clustering. I.e., at a GOP of say 10 seconds, this gives you 8 shards. And with that many shards, I think a nice blade center full of high-clock current-gen CPUs can do it. I.e., 8 systems with as many max speed cores each as the encoder can handle.

x264 for example caps out at about 20~60 cores for 1080p, but I didn't save the exact numbers.

<comment><USER5> Note : it seems that for live TV the GOP is more like 2 seconds

<comment><USER4> 10 seconds is a good balance between seekability and gains due to B-frames, for normal movie content. If the movement is particularly absent/easy to compress, e.g. with screen recordings of Minecraft (as long as there are not too many particles around), one benefits from a much larger GOP, towards the minute and even over a minute. Though you pay for this with most of the seeking you could do before. Choose wisely depending on what it's for.</comment></comment></comment></comment></comment>


Biosensors to monitor U.S. students' attentiveness - <AUTHOR> http://www.reuters.com/article/us-usa-education-gates-idUSBRE85C17Z20120613 <comment><USER2> _Gates officials hope the devices, known as Q Sensors, can become a common classroom tool, enabling teachers to see, in real time, which kids are tuned in and which are zoned out._

"Common" as in mandatory soon enough, no doubt.</comment>


Understanding Banner Blindness - <AUTHOR> http://www.adpushup.com/blog/banner-blindness/ <comment><USER2> If you want users to click on ads you basically need to fool the users into clicking or show actually relevant add. Because actually relevant adds are almost non-existant, fooling becomes the main strategy. And the best strategy is to make adds be indistinguishable from content. And I do not refer to short-sighted way of incorporating ad links into the content, so the user thinks it is useful, because after he clicks he knows he is fooled. I refer to ad blogging, or "promotional" blogging, where people write articles that are sometimes quite thickly-veiled adds, puts a bunch of banners around it and make people read it. Then people think that they are avoiding adds by not looking at banners often not even realizing that the "content" is an ad of itself.

</comment><comment><USER3> There are ads that are extremely rude and unnecessary.

* Popup ads are ignored by virtually all internet veterans.

* Ads blocking the page (forbes.com for example) on redirect is extremely rude and useless because people like me will x it no matter what.

Google and FB ads seem to be fine. They put them in the right spot and they are not so annoying. They are not so obvious however. The textual and color just make these ads part of the page's text rather than an ad.

</comment><comment><USER4> When I'm reading your website I'm running AdBlock, Ghostery, NoScript and RequestPolicy. I trust you and you alone - and although I have nothing against paying for information that essentially allows me to become a better person (in general, at my job, in life, etc.), I rarely have a chance.

You may be able to convince me to trust your partners, like StackOverflow does - "hey, they are cool guys, we work with them, you should probably check them out", but never to trust an entire ad-serving network, especially because IT'S A FRIGGIN AD-SERVING NETWORK. These guys specialize in tracking people and profile building, it's an Internet Gestapo that sells stuff. This includes Google Ads, of course (maybe even more so, because they are the largest such network and have the greatest tracking power).

Even a paywall is better than ads when executed correctly - if you at least let me read your old articles this will probably be enough. Then you just need a payment form or a Bitcoin address - none of my plug-ins will block those. I'd be happier if you just trust me in return and let me pay without a paywall, though.

</comment><comment><USER5> I read webpages about like this: [https://www.dropbox.com/s/2fc9sexvijmwdgn/Banner- Blindness.g...](https://www.dropbox.com/s/2fc9sexvijmwdgn/Banner- Blindness.gif)

Because _content_ is _text that is readable_.

It's not the color. It's not the F-shape. It's that _it looks like content_ because I can read it with little effort. To find anything else on that page I would have to consciously look at the "menu" and "wtf" areas. Images are rarely useful, so I frequently gloss over them too, I don't expect them to tell me anything useful or even to be related to what I'm reading. They're pretty things to look at if I want to look at pretty things that are just a waste of time (they're fun! they're not content.).

Maybe _that_ is why Google ads work so well?

<comment><USER6> "read" yes, but "use" implies you also read the menu, that area is not totally blind

<comment><USER5> Only when I want to do menu-things. The site mentions asking people to find content on the page - I would _eventually_ check the menu-area (the correct answer is over on the right), but I would definitely tune it out until I'd exhausted the obviously-more-likely-to-be-useful areas.

</comment></comment></comment><comment><USER7> While it's a good thing people realize that banner ads won't work as they might have some years ago, I still wonder why they discuss the "best place" of banner and how it integrates most unobtrusively. I think people will feel even more exploited when they are tricked into clicking a well hidden banner ad.

To me, the question is rather: "Is banner ads still a good form of advertising?". The only way I could answer "yes" to that is if users had a reason to click that banner, for example because they would receive something for it:

\- Points for their personal sponsor

\- A discount for finding that particular banner.

The reward would have to be something that makes people actively look for those banners.

In any other case, I'd argue we need a different form of online advertisement than banners.

</comment><comment><USER8> I liked the observation about people not 'seeing' the population total on the US Census page. So I tried it myself, since the Census home page has changed and I wouldn't be pre-conditioned where to look.

[http://www.census.gov](http://www.census.gov)

I had to revert to Ctrl-F for 'population' to find the counter.

The whole page is a mess of widgets and the first thing I started reading was the 'Census News' down in the middle. Everything else was disrgarded as 'noise'

 _Standard page reading technique:_

1\. Click link

2\. Content loads

3\. Hit ESC to stop images loading

4\. Quick scan for the search string

5\. If not found, Ctrl-F.

6\. If still not found, exit page.

</comment><comment><USER9> It would be very lovely if all web developers at newspapers (with an online presence of course) would read this!

</comment><comment><USER10> The Deck solves the "banner blindness" by a nice way of showing ads (think Daring Fireball). "Only a single small ad will be shown for each page viewed." [http://decknetwork.net/](http://decknetwork.net/)

</comment><comment><USER11> Basically if your website is a thin strip in the middle of the page, so you can have room for giant background ads on both sides, you are automatically filtered by me.</comment>


Is mass surveillance a thing in Star Trek? - <AUTHOR> http://scifi.stackexchange.com/questions/153211/is-mass-surveillance-a-thing-in-star-trek <comment><USER2> The enterprise clearly watches everyone. "Computer where is commander riker" etc

<comment><USER3> The Enterprise is a military vessel and isn't indicative of the level of surveillance of anything but Starfleet ships and bases.</comment></comment>


Wolfram has created a website that will identify any image you throw at it - <AUTHOR> http://www.theverge.com/2015/5/13/8603531/wolfram-image-identification-site-trained-by-chewbacca <comment><USER2> Hmm. It identified my everyday profile picture ([https://www.facebook.com/eddy.robinson](https://www.facebook.com/eddy.robinson)) as a 'smoking car.' I had to resist the temptation to confirm this as a great guess.

<comment><USER3> I used another head shot, with a two-thirds view profile, and it also gave "smoking car".

</comment></comment><comment><USER4> Some of my tests came out as instrumentation which made no sense.

Need to test with a category of images and see what % of results come out matching the category.</comment>