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.
> 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 guess as a programmer I'm too logical. You tell me X hours, that's all I'm going to spend. For one of my past interviews I was given a task to make a multiplayer battleship game using whatever I wanted, and was told to spend 2 hours total and they didn't expect me to finish.
I got some rudimentary client/server communication going and that was it. No game logic at all.
Didn't get the job: "However, we would have liked to have seen you get further on the project in the same amount of time."
I think we interviewed for the same job. I did the same thing, and got the same response.
It was such a short timespan that I assumed it was a trick question, and they wanted to see if I could come up with a creative solution that technically met the requirements but was extremely simple. I implemented a board which you could put pins on, and a text-based chat system using websockets. The idea was that it would work like a table-top simulator.
Nope, turns out they wanted a real solution. I wonder how many companies who use these examples actually attempt them before using them to hire people. My guess is they might be more realistic if they did.
Yeah, 2 hrs barely touch anything new in my current job, where we have a lot of boilerplater and in-house infrastructure built by the devprod team. Some companies either take those for granted or just deliberately make the bar extra high for arbitrary reasons.
I hope one day, well I actually hope to be alive to see, that one day humanity will have enough understand of the brain to teach us our cognitive limitations and how to effective work around/out them. Not long ago I quit one of my jobs because I simply couldn’t learn to be effective due to meetings and all the interruptions commonly seen in an open office/agile/start-up company. Seriously, I can’t be a better engineer in such environment.
> you’re about to dedicate up to 5 working days on this task, with the potential for them to ghost you straight afterwards
I often give companies a list of open current open source tasks I'm working on. Pick one and I'll complete it for your interview. Every singe company turned me down, except one, who just accepted one of the tools I had on Github and examined that.
One of the biggest challenges I have as an interviewer is setting up a framework that allows me to compare candidates fairly. Most candidates don't have a list of open source tasks they're working on. If I have three candidates who completed my standard interview code sample and your open source pull request, it's much easier to spot the differences in the other three candidates.
This is a very good idea! I could even imagine something like this could be a socially acceptable way to test candidates, with thw benefit of helping open source
I recently Skype interviewed for a local startup run by a former Googler. He was very proud how much the interview process was based on Google's, with multiple stages to ensure they get the highest quality developers.
The startup sounded interesting, and I might have been prepared to spend the recommended 5 hours on the code test, had I had a chance to actually go into the office and meet the team...!
At least at the end of a Google interview you get to work for Google.
In a data science interview at a respected company I received a take-home with the framing “A Product Manager wants a dashboard with a massive amount of features (including interactivity, model prediction and GIS)” and received only 48 hours to do it. I thought there was some weird trick because that assignment had an unreasonable amount of scope in that timeframe. I found out the company uses a BI tool to streamline such tasks that is only available to enterprises and not consumers.
I eventually made the dashboard but it took 16 man hours; on the on-site, the interviewers implied they didn’t like it as it was not feature complete. (I called them out about the BI tool; they weren’t happy about it but admitted I was correct that it would be more efficient)
Now that I have had more experience as a data scientist, the real-world response to such a framing is to push back against the PM and write an implementation spec with a defined scope.
A previous manager once told me how to deal with product managers: "You tell them what you need from them. Not the other way around." Don't let the PM write the spec. They state the problem and you ask them questions to come to the solution. You also give them the timeline. If they don't like it, then cut features.
This happened to me too. A company reached out to me on Angel with their coding "challenge" - create a facebook timeline clone with an API, enzyme + selenium tests, documentation, and deploy everything to AWS. fortunately i have enough experience to say no to this kind of thing, but I do feel that some more junior folks are being exploited into thinking this sort of project is normal for an interview
>Once one agent learns how to become more competitive by sacrificing a common value, all its competitors must also sacrifice that value or be outcompeted and replaced by the less scrupulous. Therefore, the system is likely to end up with everyone once again equally competitive, but the sacrificed value is gone forever. From a god’s-eye-view, the competitors know they will all be worse off if they defect, but from within the system, given insufficient coordination it’s impossible to avoid.[0]
I once had to do a full-stack coding task for a YC company - I think it was something like build Tic-Tac-Toe with backend validation and storage of game state. I built it, and instead of being called onsite, I had a phone call with an engineer. I expected to discuss my solution with the engineer and prepared accordingly, but they did not mention the assignment at all, and proceeded to ask me algorithm and database trivia questions. I did not get the job.
A while back I made a career change and I was looking to break into the land of programming, where there are a lot of bootcamp noobs like me trying to do the same.
I did an interview and one guy just didn't want to be doing interviews it seemed. Later when I was asking questions it became clear that he was a "senior dev" who just didn't want to talk / work with anyone he deemed less knowledgeable or just not capable or something. I also find out he's the lead for the spot they're hiring... bad feelings started for me.
Later I got some positive feedback that the take home assignment I completed was one of the only fully completed and "thoughtfully done" assignments they received (one of the only times I received useful feedback during a recruiting experience).
Bad vibes aside, I was a noob and beggars can't be choosers so I was surprised when they asked for a second interview and felt I had to go to the interview (need a job!). Second interview and it was the same thing, and when I asked questions he didn't even answer them really / his random technical statements seemed like sort of ultra truisms / not related to the actual problem we were working. It also seemed this dude's team kinda worked on their own island (kinda appealing) and he was the guy running the island evaluating people (very much not appealing). More bad vibes....
It was a big corporate place (good pay, benefits I had heard) so that meant, MORE interviews if we were going to move forward..
But by that time I had a good interview at a small place (less benefits, probabbly less pay, fewer people to learn from / with, long commute, but it seemed friendlier and the lay of the land was way more clear)... I decided that I just had too bad a vibe from the guy who would be my boss so I declined the interview.
I was pretty honest with the HR person that just from the interview this guy really seemed like he didn't want to hire me / didn't really want to work with anyone like me and if they were going to hire someone they might want to work on that. The HR person said "yeah we know".
I still wonder what that job would have been like, would have been really nice to work at that place...but that guy... you just get that sense in an interview sometimes.
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.
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
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.
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.
Every company I see "really would like" to fully automate their build/test/deploy pipeline, to actually have automated tests for most new features, infra as code is a work in progress, et c. Basically most of the Joel-test or modern HN-bubble best practices are still on the wishlist or on a perpetual "we're trying to make that happen" an awful lot of places.
And they are all, all, "fixing their Jira workflows". Constantly. What a time-sink of a tool, as commonly used. I'm convinced at this point they'd be better off letting their dev teams use whatever, and just have human-driven processes for collecting all the (mostly meaningless) metrics they always seem to need to report upward, rather than trying to make one tool do everything automatically. Pretty sure Jira and other heavy PM tools are typically the sort of software/process that Graeber calls out in Bullshit Jobs: adding a ton of work out of proportion with any real benefit, to make everything fit in a computer and on a spreadsheet, rather than reducing work.
It's great if you do it as long as you pay for it. I was doing a 1 week payed interview at Coinbase. I was not hired, but my memories of the interview process are great.
This sort of thing mostly works fine for students and similar. (And internships are often great for everyone concerned.) But this doesn't really work for someone who already is working full-time. Some pay is fine but there's no way I'm taking a week of vacation to interview with you.
At our place we reserve coding tests for applicants on the more junior end of the spectrum. I've always found conversational interviews sufficient for vetting mid to senior level developers.
We do pay a good rate for the time we instruct people to spend on the coding test. We value our people and prefer starting the relationship generously and in good faith.
Also keep in mind that many tech companies have anti-moonlighting clauses or otherwise forbid side projects. You’re losing current employees from these companies from the interview funnel.
I'm sure a lot of folks take the attitude that it only matters if you get caught. However, unless perhaps I already had one foot out the door, I'd be very hesitant to flagrantly violate an employment agreement forbidding such things to accept a relatively modest payment for some outside work.
I understand it, I wasn't a student, but I didn't have a job at that point (I quit 2 years before to travel the world and had some contracting jobs).
The good part is that it was the last step, and 50% of the people from the last step were given an offer, so it wasn't that bad (though I'm afraid that the offer itself was maybe too low compared to my previous works).
I've just completed an interview process (waiting for the decision) that was explicitly "this is a real problem we have", but also stating that I'll be paid for 8 hours work. I have no problem with that. It took about that long as well.
So I suppose if you're honest about it, and you give a fair estimate of the time required, then what's the problem?
I still disagree with that. are you being paid 8 hours at a pro-rated salaried rate? Well you're going to have to report that as income and take a 30% haircut off it. There's a reason contractors get 30% or more above the hourly-equivalent of a salaried employee.
Our interviews have consisted of something similar, but never in a way that produces actual usable work. We've had candidates "add features" to code, except the code in question was in a language they don't know. So they didn't write anything. We have them tackle past PRs for bugs that have already been fixed. And we've had them do design work for systems/processes we've already built.
We're not evaluating them on whether they got the same answer as us. We care about hearing aloud their thought processes.
What's the copyright situation in America anyway? I can't see company lawyers over here be comfortable with using code written outside formal employment.
Code is copy-written by default. So unless the company has you specifically license the code in a way they can use, there's defiantly some room to go after them.
A game studio I worked at had a blanket policy of destroying all fan fiction. And story plots we were sent just because someone had previously sued for stealing their idea.
Means a lot of letters from kids get read only by the secretary till the identify it and destroyed.
To be fair, even though the hourly expectations are often unrealistic, I much prefer a coding challenge (as a former hackathon goer, I likes me a challenge) over a sweaty nervous “whiteboard session” where they nerd grill you on some irrelevant algorithm questions. Unfortunately, most companies do both.
I had a similar experience once but a little more extreme. On a take home interview test they were asking to build a full backend analytics setup plus a data viz UI. I called the recruiter back and told them an estimate to a problem like this was well beyond the ~4 hours they originally told me. Their response was to say "they were looking for people who would find a way to get it done no matter what". I immediately stopped the interview process without looking back.
Had a similar security interview with a healthcare company. Three tabletop exercises that were all dumpster fires (no controls, no logs, no ability to research, etc.)...it was at that time I REALLY looked at the interviewers and noticed just how burnt-out they looked.
You can learn a lot about a company's pain points by the questions they ask during the interview...chances are they're problems they're struggling with at the moment.
I once received one of these tasks, described as requiring four hours. I had a look around the web, found the source of the exercise, complete with an expected time to complete of four hours, and the guy had completed all of two classes before abandoning it.
I've found it incredibly glitchy. I have some reminders that somehow duplicate and show up multiple times (all at the same time), and others that will show up and instantly dismiss themselves. I can even be looking at my phone and see them pop up and instantly disappear.
For a long time I thought it was perhaps due to poor sync with the Mac, since sometimes I manage reminders from there, but the same thing happens with the wife's phone and she doesn't sync Reminders. She has a single daily reminder at 10pm. Sometimes it shows up 4 times. Sometimes 4 times and 1 disappears for a net of 3 reminders. Sometimes just 1 shows up. Sometimes none of them show up. It's bizarre.
Interesting — does iCloud otherwise work normally? We've used it heavily for years and never seen anything like that. They used to have an option in the iCloud.com settings (under advanced) to reset the sync system which might be worth looking for — back in the day there used to be a utility to reset the Mac sync database which often fixed problems like this but I believe that was removed at some point.
I believe iCloud does otherwise work normally. Reminders is the only app I can think of (including all Apple and non-Apple apps) with any sort of obvious glitches, sync-related or otherwise. I'll give the reset a try--thanks!
Reminders sync when I create them and recurring reminders show up on every device, but I have to mark them complete on every single device. Sometimes they show up again right after being marked complete.
I've stopped thinking about it as "glitchy" and more "the new Apple way".
Ridiculously glitchy for me too. No idea if it will remind me or not. No idea if clearing something will really clear it. Unusable really. I assumed it was piss poor exchange/activesync support but if it happens to others without any sort of syncing maybe there's something more to it.
Not Reminders, but Apple's calendar system torpedoed my Apple interview. Didn't properly account for the fact that my interviewer was in China and I wasn't. It got the time of day right, but he called me a day before my interview time while I was in class because it was tomorrow in China.
He let me reschedule for later that day but seemed hostile and grumpy throughout the whole thing. Didn't get the next round.
Recreate Reminders? Wow. That app has an entire team of engineers to build that. It isn’t trivial, despite being “simple.” And to do it in two hours? That’s just insulting.
I was given a take home exam that I took one look at and said nope, I wouldn’t enjoy working for the company. I actually appreciated this approach as a quick way to filter out job opportunities.
>> Another, a task requesting Visual Studio (iOS devs have no need for any experience with this)
Ironically enough I just moved to another iOS job and have been sitting in VS for the better part of the last couple of days. Some shared systems are written in C# so all developers basically have to use it at some points.
I agree it shouldn't be a part of the interview though.
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.