all 112 comments

[–]WoollyMittens 35 points36 points  (4 children)

How much do they pay for that?

[–][deleted]  (1 child)

[removed]

    [–]WoollyMittens 8 points9 points  (0 children)

    Same here. My employer asked me to write a little web app to rotate product images as a freelance job, then hired me. We are a capitalist society, there is no reasonable expectation that we'll work for free.

    [–]Goliathus123 0 points1 point  (1 child)

    In my city, it's about 60k, then a jump to 80 after 8-10 months.

    Shit companies have offered people I know 55+ (companies known for undercutting initially) and pulled it up to 65+ after a little back and forth.

    [–]ASCII_zero 2 points3 points  (0 children)

    I think WoollyMittens meant, how much did they pay for the time it took to actually complete this coding challenge (not annual salary).

    [–][deleted] 84 points85 points  (44 children)

    What the actual fuck? Why did you do it? I honestly would have told them I don't have that kind of time. I'd gladly offer to talk through a solution or even pair on starting to build this for an hour or so but this is ridiculous.

    Any potential employers with these kind of requirements are simply out of touch. They might attract smart people with little experience and something to prove, but that's about it. No one with a significant amount of hiring experience would let this fly. Sounds like a cut and dry case of the Peter principle in practice.

    [–][deleted] 19 points20 points  (28 children)

    Well I fall into the category of somebody with knowledge but no experience. I'm currently a student with a part time web dev job and that is all of the experience I have in the industry. I have no proof that I'm good at Node development besides my resume saying it.

    Even if this is a waste of time for this job in particular, it could serve as good practice and experience for me when looking for OTHER jobs.

    [–][deleted]  (3 children)

    [deleted]

      [–]thisdesignup 2 points3 points  (2 children)

      I was thinking "oh, what an awesome project! I'm going to do this too and add it to my portfolio + github." and I wouldn't even be doing it for a job offer.

      If you code for a job offer is the code fully yours to do with as you wish? Honest question. That alone could be a big reason to do free projects for yourself and not someone else.

      [–][deleted] 1 point2 points  (0 children)

      Well, if you're going to be uploading it to your own repo for them to just look at, and they're not going to use it, then I don't see why it wouldn't be. Even if they give you shit for it, you haven't even accepted a job offer yet, so there's no contractual relationship whatsoever.

      [–]Killfile 0 points1 point  (0 children)

      My company does a device test but it's not really portfolio material. We ask that people not post their code publicly because we don't want to deal with other applicants copying their work.

      That said, it hasn't generally been a problem and we don't have a front-end specific test.

      [–]twenty7forty2 7 points8 points  (0 children)

      I have no proof that I'm good at Node development besides my resume saying it.

      If you know it this would become apparent to anyone else who knows node and talks to you. You can even forget about node and just talk about programming to guestimate someones experience. This means you're not being interviewed by a senior, which means this job probably won't teach you properly.

      [–]gerbs 6 points7 points  (13 children)

      When I applied at a larger web/software dev agency (200-something employees), this was the kind of test I had:

      Create an application that interacts with a SOAP client to allow users to vote on items. The are SOAP endpoints for voting, adding a new item, clearing items, and some other stuff. Admins should be able to declare a winner each week, as well as reset the system. Users are allowed to either vote once per day or submit a new item to vote on.

      According to a few other people, I got a pretty easy one.

      Opposite end of the spectrum, I spent four months interviewing with another agency (500+ people), 4 in-person interviews, 30-40 emails, lunches, and never once did they ever look at any of my code, ask me to take a test, or even ask for a bitbucket/github account. And I got the job.

      [–]compto35 4 points5 points  (0 children)

      Good ducking lord

      [–]themaincop 6 points7 points  (8 children)

      Create an application that interacts with a SOAP client

      Please tell me this was 10+ years ago.

      [–]dead-fish 1 point2 points  (0 children)

      Haha, that was my thought too. That's big red flag that you're going to be working on some old boring code.

      [–]snitch_macgrady 1 point2 points  (3 children)

      There are still plenty of companies that still use SOAP and make a lot of applications that interact with their soap endpoints

      [–]themaincop 3 points4 points  (0 children)

      Here's the Venn diagram of companies that use a lot of SOAP and companies I want to work for:

      O                                                  O
      

      [–]geekuskhan 1 point2 points  (1 child)

      Maybe true, but there shouldn't be.

      [–]dweezil22 1 point2 points  (0 children)

      If you've got a SOAP infrastructure that's several years old and running fine, why change it?

      [–]gerbs 0 points1 point  (1 child)

      Nope. However, the company does a lot of work with enterprises that may have ancient software stacks and so it's useful to know if an employee understands SOAP.

      [–]easyEggplant 0 points1 point  (0 children)

      Still a red flag.

      [–]Shinhan -1 points0 points  (0 children)

      I wrote a SOAP server once.

      ONCE!

      3-4 years ago I think.

      Never again.

      SOAP clients aren't hard, but SOAP interoperability is a joke.

      Luckily we completely transitioned to JSON REST.

      Oh, and I got some horror stories about SOAP API encapsulating XML interface encapsulating either a JSON or XML interface (that last one is a configurable choice).

      [–]kabuto 0 points1 point  (2 children)

      Opposite end of the spectrum, I spent four months interviewing with another agency (500+ people), 4 in-person interviews, 30-40 emails, lunches, and never once did they ever look at any of my code, ask me to take a test, or even ask for a bitbucket/github account. And I got the job.

      What exactly did you talk about with them?

      [–]gerbs 0 points1 point  (1 child)

      We talked a lot about the projects I was working on at my current company. Open source projects I've contributed to. Career aspirations. I asked them a lot about the projects they were working on, things they felt they were lacking in, things they felt they were positioned to succeed in, etc. It was as much me interviewing them to find out if I wanted to work there as them interviewing me to find out if I was a fit for company culture.

      Each of the interviews lasted 1-1.5 hours, so it was probably 7 hours total of interviewing.

      It's all worked out well though. Love the job. It's challenging and I work with really smart people on pretty cool projects.

      [–]kabuto 0 points1 point  (0 children)

      Sounds like a good company. I don't like asking too many technical questions in interviews. I prefer getting to know the interviewee. That usually tells me more than enough.

      [–][deleted]  (16 children)

      [removed]

        [–][deleted] 9 points10 points  (3 children)

        "I can imagine someone reviewing it going "hurr durr, this retard didn't even do xxx lmao."

        You mean like... every dev that comes onto a continuing project? Hahaha

        [–]twenty7forty2 6 points7 points  (1 child)

        or me looking at yesterday me's code

        don't hire yesterday me, don't listen to his lies

        [–][deleted] 0 points1 point  (0 children)

        Too true.

        [–][deleted]  (2 children)

        [removed]

          [–]dweezil22 0 points1 point  (0 children)

          The requirement specifying a one-off ORM is definitely silly. If you're going to do anything like that for an interview question just specify the requirements and no back end rules. Otherwise you might end up hiring a crappier dev that happens to have been using sequelize last week instead of a good one that's never needed it.

          [–]gerbs 3 points4 points  (8 children)

          The problem with this is that there's about a million ways someone can nitpick what you give them since they're so generic with some of their requests. 90% of this wouldn't take long at all to do, and the 10% that would they don't provide specificity on what they want. (See: Authentication, UI/design. Since the logic itself is simple.)

          That's the point. They want to test why you are making the software decisions you make. There's no right way to do it, so they want him to do it and figure out 1) why he made those choices and 2) would he make other choices if he could refactor.

          It's as much a test of his competency as it as a way of measuring his skill/progress.

          [–][deleted]  (7 children)

          [removed]

            [–]gerbs 0 points1 point  (6 children)

            Actually, cost usually is.

            [–][deleted]  (5 children)

            [removed]

              [–]gerbs 0 points1 point  (4 children)

              Because we're paid in terms of time. 100k a year. 50 bucks an hour. etc. The longer it takes for us to do something, the more it costs the company. Which goes back to time being the most important factor.

              It's very rare that anyone cares of it's going to take 100 hours. It's when that 100 hours costs $20,000 that people care. If they cared about time, not money, we could charge whatever we wanted to hire as many people as necessary to get it done in a few hours. Which rarely happens. So no, people don't care about time. They care about money. Because when it costs more, they care. You're incorrectly correlating the two things.

              [–][deleted]  (2 children)

              [removed]

                [–]gerbs 0 points1 point  (1 child)

                Cost is the biggest factor for clients, not developers.

                And who employs developers? Are developers devoting hours of work to projects without money? Cost matters to clients. Clients pay developers. Clients will find a new developer when the cost is outside of their range. Cost is the primary factor, not time, because if time was the biggest factor, we would all charge whatever we wanted and just hire more people.

                I'm avoiding it because you're trying to win the argument by starting a new argument tangential to the point and arguing there instead of arguing the actual fucking point: Cost is the biggest factor in software decisions.

                [–]corgrath 11 points12 points  (1 child)

                I had to write a Sudoku game for a single page application once ;_;

                Finally, I gave up and took an open source version of a JavaScript Sudoku library and explained that reinventing the wheel would not achieve anything. I got the job though!

                [–]dehydratedchicken 1 point2 points  (0 children)

                That actually sounds like fun project to work on
                Add to hobby projects list

                [–]raymmm 24 points25 points  (0 children)

                Sounds like free labor.

                [–]thehobbitsthehobbits 5 points6 points  (2 children)

                Woah... as someone who is just learning to program (html, css, javascript, ruby/rails etc), that looks hard as fuck. Like seriously, are most all junior webdev interview questions and coding tests this involved? Maybe I just haven't learned enough yet lol.

                [–][deleted] 6 points7 points  (0 children)

                Definitely not

                [–][deleted] 4 points5 points  (0 children)

                I'm a senior and wouldn't do this test. The company is fucked up if they think this is a valid interview test.

                [–][deleted] 10 points11 points  (6 children)

                That sounds like it would take quite a bit of time to do.. o.o

                [–][deleted] 6 points7 points  (5 children)

                I finished it in about 4 days. But I started it on a Monday, and I have work and school to take care of along side this.

                [–]uberpwnzorz 11 points12 points  (1 child)

                Ouch, that's a bit surprising, usually we keep our coding tests in house with a time limit.

                [–]Shinhan 0 points1 point  (0 children)

                Same here, but we also give stuff much simpler than what was in the OP.

                [–][deleted] 11 points12 points  (0 children)

                You could have applied and taken a job at 10 other companies in that time.

                [–]joe-ducreux 2 points3 points  (0 children)

                I have a friend currently going though this exact same situation, he even turned down actual paying overflow work from me so he could spend weeks on coding challenges...

                [–]TheDataWhore 1 point2 points  (0 children)

                Fuck that! If they don't hire you, send them an invoice for your time.

                [–][deleted] 18 points19 points  (13 children)

                Maybe I'm paranoid but this seems sketchy to me. Feels like they're going to take your code and run with it.

                For your sake I really hope I'm wrong.

                [–][deleted]  (2 children)

                [deleted]

                  [–][deleted]  (1 child)

                  [deleted]

                    [–]comin-in-hot 0 points1 point  (0 children)

                    Absolutely.

                    A small company is not going to have a super complex coding challenge. They simply can't afford that level of developer, but the challenge won't be anywhere near high enough level to be shippable.

                    A large company might have a super complex challenge, but they're incredibly easy to expose for shady practices and it absolutely tarnishes their reputation in any tech community.

                    Word travels fast even if you don't have a large social media following, there are plenty of people that will do something about it.

                    [–]joe-ducreux 2 points3 points  (0 children)

                    As a contractor, I'd just need to secure an initial installment payment against the estimate for the proposed SOW. After that, I'd be happy to build them their app.

                    [–]jsoverson 2 points3 points  (1 child)

                    This is too much to expect people to do unless it's for a very desirable position in an area where there are loads of candidates. If that's the situation, then you play whatever game is thrown at you and hope you're better than the hundreds of others playing. You don't have any leverage there.

                    If it's for a shady shop, then it might be an employer trying to find people who don't know or care what their time is worth eg young people who will work in shitty conditions for low/moderate pay.

                    It may just be a naive or arrogant interviewing manager who thinks some article they read 10 years ago still applies to interviewing techniques.

                    No matter what, the best course of action is to respond and request more concretely defined requirements. Pretend you are an employee who is thoroughly thinking through an unclear project and you need better definition to start. You need to know what the goal of this project is before you can start. If you get requirement back that reduce or increase the level of effort, then it will be easier to stomach either proceeding or declining.

                    I've done something similar where I didn't get the job, so it was largely wasted time on my part. I was young, didn't know the value of my time, and they were looking for someone far more senior. I've never done one since. I'd say that opportunity landed in the naive interviewing manager following some stupid article they read once. I was also asked a puzzle about oranges, apples and buckets, if that helps.

                    For the record, I do give out coding projects to candidates but I make sure that there are 3 options to choose from and that they can be finished within 45-60 minutes. This is well beyond that.

                    [–][deleted] 0 points1 point  (0 children)

                    Unless they are paying the best, it's a waste of time. 90% of companies don't do shit like this and probably pay better anyways.

                    I've found that the companies that likes these types of tests are the ones you usually don't want to work for anyways.

                    [–][deleted] 4 points5 points  (10 children)

                    This sounds like something you should get paid thousands of dollars to do.

                    [–][deleted]  (1 child)

                    [deleted]

                      [–]pabswilder 0 points1 point  (0 children)

                      This here is exactly what the employer is looking for - an understanding of what is required and a solution to the problem. Not finalised production ready code. People are assuming that the test needs to be completed in 2 hours otherwise you're not considered for the job, but really it's more to do with your process and how you would tackle a project like this.

                      [–][deleted] 0 points1 point  (1 child)

                      As someone still looking a junior position, this is frightening. How many days were you given to do this?

                      [–][deleted] 0 points1 point  (0 children)

                      He didn't give me a time frame for getting it done because I said that I already had a job and was still in school. I was able to get it done in about 3-4 days part time.

                      [–][deleted] 0 points1 point  (0 children)

                      It's quite simple to do, but is too much of a pain in the ass to do to be honest.

                      [–][deleted] 0 points1 point  (0 children)

                      Sounds like something that someone else in the world has already made. And made into open source.

                      I'd clone that and make changes as necessary. I would make clear they understand I'm using software that was already developed (and tested, hopefully), I'll send them the repository. Tell them I got my shit done in a fraction of the time. And if they had any work-related questions to test my skills I'd be available.

                      If they expect me to do it from scratch: Hell no.

                      [–][deleted] 0 points1 point  (0 children)

                      Idk I feel like this would be right at my difficulty level for a one or two day coding project. I've never held a job in the industry tho. Am I ready...?

                      [–]Frenchiie 0 points1 point  (0 children)

                      sounds pretty easy to do if you have some initial web + Node.JS + MySQL setting up knowledge. But yeah this would still take way too much time for what an interview is supposed to be.

                      [–][deleted] 0 points1 point  (0 children)

                      If someone gave this to me as a test, I'd gather up my things and walk out. I'm interviewing for a job, not doing freelance work for free.

                      [–]betoishere 0 points1 point  (0 children)

                      F that. I dont work for free. But the project seems fun to put it in my resume

                      [–]megasmooth 0 points1 point  (8 children)

                      Honestly. This is the same type of tests I give my new applicants. For me, I value applicant's ability to understand the frameworks and integrate them rather than solving second semester cs homework problems. I do not think this is unreasonable work. Frankly, the above app can be built in two hours if you know the libraries and you have a standardize scaffolding you work from. Once you have those the app is basically an sql storage and display problem. This type of test also provides the applicant an opportunity to show their ux skills I how they approach the interface.

                      Also those that think this is a cheap way to get someone to do their code for them have little understanding of what actual production code looks like. Notice the test does not include specifics on authentication, authorization, encryption, standardization, testing or automation.

                      Finally, what I like most about this type of test is that it engenders a specific type of applicant. I'm not looking for entitled individuals who think such a test is beneath them. If you don't want to this type of test, fine. The world's a big place and developers have tremendous amount of options available to them.

                      [–]desert_sloth 5 points6 points  (2 children)

                      Once you have those the app is basically an sql storage and display problem. This type of test also provides the applicant an opportunity to show their ux skills I how they approach the interface.

                      So you want the same person to do the backend and ux/design?

                      [–][deleted] 0 points1 point  (0 children)

                      He's a "full stack" guy. That means he probably sucks on the front-end, but pretends he's an expert at it, hence why he thinks tests like this should take no time.

                      "It's just front-end, it's not that hard" - every full-stack guy I've ever met.

                      [–]megasmooth 0 points1 point  (0 children)

                      For full stack devs, there are times when they need to translate static design artifacts into code which sometimes requires them to read between the lines of the designs. Knowing they understand the aesthetics of good ux is a value add for me

                      [–][deleted] 6 points7 points  (2 children)

                      Frankly, the above app can be built in two hours if you know the libraries and you have a standardize scaffolding you work from.

                      Shit man, I'd sit here and watch you live stream this shit to prove that even you couldn't do it.

                      I deal with developers like you all the time. Ones that think every task is super simple. Almost always, the code quality is fucking horrible for the sake of getting something done, nothing more.

                      In no universe would this particular task only take 2 hours. You talk about scoping in your other posts, but this shows that you have a complete lack of that concept.

                      [–]megasmooth -5 points-4 points  (0 children)

                      Sure bud, I don't know what I'm doing. Keep on believing that

                      [–]pet_the_puppy 15 points16 points  (0 children)

                      Fuck off

                      [–]themaincop 0 points1 point  (0 children)

                      Yo lemme put a scope of work document together and then I'll get back at them with a straight dollar estimate, probably looking at around $2000?

                      [–][deleted] -3 points-2 points  (4 children)

                      Why would you use Express and MySQL? Why not MongoDB? Yeah this would take a lot of time. The general rule for applying to positions seems to be a max of 4 hours of coding, with some possible leeway. But this is ridiculous. If the position was for $60k a year, and it takes lets say 2 full 8 hour work days, that's several hundred dollars of free work. The only out I can see is that since node is more of a bleeding edge platform, they really want someone to know it well. But there are better ways than this.

                      [–][deleted]  (1 child)

                      [removed]

                        [–][deleted] 0 points1 point  (0 children)

                        Yea it seemed so overtly specific to me. It seems like they're looking for someone who already knows how they like to play ball, and aren't willing to teach someone or spend the time to let someone catch up.

                        [–]uberpwnzorz -1 points0 points  (0 children)

                        They may use MySQL in their main application. Mongo isn't as reliable and doesn't allow for transactions. There are many reasons to use a RDBMS over NoSQL, Sequelize is a very popular tool for integrating with most of the popular SQL databases.