1. 24

I’m interviewing for a software architect position at a tech company. After one in-person interview, they have asked me to prepare a detailed, technical presentation on what I think the architecture of their system should be. This, to me, feels like them asking me to do the job I’m applying for, for free, before I’ve been hired. The first interview also involved a lot of very specific questions along the lines of “we’re trying to solve this problem right now; how would you do that?”, which made me feel like they were just pumping me for solutions to their current problems, rather than interviewing me for a job.

My question is mostly whether this is a wide-spread practice, and whether I’m being unreasonable by thinking that this is not an appropriate thing to ask an interview candidate to do. I was a consultant for a while, and made a living doing exactly what they’re asking me to do for free.

Have other lobsters experienced this as part of applying for jobs? Do you think this is a reasonable thing to be asked to do? I’m not new to the industry and this is definitely outside the realm of normal when compared to any other interview process I’ve gone through, but it’s possible that this is normal and I just haven’t experienced it before. The folks there have a lot of industry experience and have been otherwise very professional, which makes me worry that I’m the unreasonable one.

  1.  

  2. 35

    If they want you to do consulting as part of your interview, they can pay.

    1. 8

      This is how I feel as well. I emailed them saying basically this: that I would be happy to prepare the presentation for my standard consulting rate. We’ll see what they say.

      1. 3

        This is what we do in our hiring process. We give the candidate 3 options:

        • Pair-program/discuss a side-project of their own
        • Pair-program/discuss our codebase (which is open-source)
        • Pair-program an exercise like exercism.io (with follow-up discussion) We still didn’t decide on paying the other two, but we pay for the work they do on our project.
        1. 3

          This sounds fun, please interview me lol

          Honestly, I have found that companies that offer a slew of offerings like this are usually have some of the best workplace cultures.

          1. 2

            I definitely feel like we do. The tech team is remote and it’s still early-days in building team culture (company is around 18 months old), so we have a lot of challenges ahead.

            1. 2

              Good luck!

      2. 20

        It seems like there’s no winning strategy with interviews. I hear both of these regularly:

        “Boo! This company is asking me theoretical problems that have no applicability to my actual work”

        “Boo! This company is asking me specific problems that directly relate to what I’ll be contributing”

        To me the problems are when 1) the time investment is not commensurate with the company’s legitimate interest in you (the process should fail fast), and 2) the company doesn’t respect you or your time – you waste lots of hours answering the same questions, or the total time is just excessive (> ~5 hours starts to get excessive, although it can be longer for a higher level position).

        For context, my company regularly asks candidates to design our own system (so far we’ve never incorporated ideas from this into our systems – we’ve been thinking about the problem for years, so it’s unlikely someone will come up with something groundbreaking in an hour). It’s a great problem because we understand all the corner cases and can answer questions easily, and performance is directly associated with outcomes.

        1. 3

          “Boo! This company is asking me specific problems that directly relate to what I’ll be contributing”

          I don’t believe this is what the OP is saying. The issue is when the specific problems you’re being asked to solve are unanswered at the interviewing company and answers result in revenue for said company. I enjoy being asked problems in the specific problem domain I’m interviewing for, but not when my answers are actually solving company problems without compensation.

          we’ve been thinking about the problem for years, so it’s unlikely someone will come up with something groundbreaking in an hour). It’s a great problem because we understand all the corner cases and can answer questions easily, and performance is directly associated with outcomes.

          This is better. But I’m always a bit hesitant with these style of interviews because it’s easy for the interviewers to fall to knowledge bias. “This engineer isn’t a good fit because they suggested a design that is terrible, due to XYZ corner cases and performance implications [which we only know because we’ve spent years studying this problem domain. Sure we only gave them 30 minutes to come up with a solution, but how could they possibly NOT see all these ramifications that took us months to fully understand!].” It’s a dangerous road that’s only human to fall prey to.

          1. 1

            but not when my answers are actually solving company problems

            Is this just about the principle? Like in general you really have no way of knowing whether an interview is useful to the other party or not. To flip it around — sometimes candidates use an offer to negotiate on their current role (and I say good for them, as long as they went into the process in good faith).

            If the company is genuinely interested in hiring you, and you’re genuinely interested in working for that company, why does it matter if someone learns something along the way?

            1. 2

              Sorry, I may not have clearly articulated my thoughts. Yes, on principal. I’m not opposed to each learning something along the way. I think people should always be learning. I’m only opposed to the more blatant approaches, and only when uncompensated.

              I don’t think it’s morally right for companies to take advantage of anyone, especially potential employees! Maybe there isn’t true malice, and some of these companies are simply taking advantage of a situation to “make the most of it.” I.e. “well we have to interview, let’s see if we can also get some real work thrown in at little or not cost.” I think this is wrong. To be fair, as the interviewee there is no way for me to know this provided the interviewer is crafty enough. It’s easy to take a business scenario and make it look like a generic coding exercise.

              Some of my co-workers have stories of doing a full day of pairing “as part of the interview” without compensation. To me that’s terrible! It’s passed as, “Let’s just make sure you’re a good fit for the actual workload and team you’ll be a part of.” Which sounds noble, and better than your stereotypical whiteboard interview but then if that was truly the case, the company should be willing to pay a consultation fee.

          2. 2

            With one position I’ve interviewed people for, I’ve asked them to implement a particular functionality that was already implemented and released in our app, and I encouraged them to use it as a reference (although by no means a perfect one, they could feel free to improve on it).

            1. 1

              If you want to work for free you can do it, nobody is stopping you.

            2. 11

              You attain more successful working (and personal) relationships if you start with the assumption that the other party is trustworthy until they prove otherwise. Because statistically speaking, that is likely to be the case. When optimists and pessimists compete for success, the optimists win. Every. Single. Time.

              I definitely understand the concern, nobody wants to be taken advantage of, but I don’t think anything you’ve suggested is proof that they’re out to get free work from you. It is absolutely possible that this could be their motive but any sane hiring manager or business professional understands that these kinds of practices hurt their reputation in the long run.

              The first interview also involved a lot of very specific questions along the lines of “we’re trying to solve this problem right now; how would you do that?”, which made me feel like they were just pumping me for solutions to their current problems, rather than interviewing me for a job.

              They’re trying to gauge your knowledge of the technology they use and there simply isn’t a better way to do that. They’re trying to see whether you come up with some of the same ideas that they have had so far, or if you have any novel ideas that could be worth looking into. Is there any chance that they will take a few of those ideas and run with them, without hiring you? Absolutely. Any time you give advice for free, that is a risk you take. Most of us will gladly make this trade-off in exchange for the chance to strengthen a potentially valuable relationship.

              There’s a common misconception that as tech professionals, our most valuable assets are our skills, knowledge, and experience. This is incorrect. Our most valuable asset is time, and our expertise is what makes the time valuable. Anyone can learn what we know, we are not special snowflakes. The only reason the hiring manager cares about your expertise is because it makes your time more valuable to them than if they had to train all of that knowledge into you. Thus, you have to demonstrate your knowledge to them to show them that your time is more valuable to them than the other applicants’ time is.

              Are there even any other ways to demonstrate your expertise as a software architect than to, you know, architect some software? Chances are, if you do a good job on this, the person hiring you will say, “great job solving that problem, we have many more that we would like to pay you to solve.”

              1. 2

                Amen! I think people tend to overevaluate their ideas, what is important is the capacity to turn them into concrete artifacts. The prerequisite, though, is to be able to articulate your vision clearly, as an architect can’t build a cathedral by himself.

                1. 1

                  Well put! :)

                2. 7

                  I don’t think it’s at all reasonable. However, I think it’s so relatively common that many firms that have a takehome assignment tell you beforehand that the assignment you get is not “real work”, so, it’s ok to do it for free over a weekend. Yeah… No, thank you!

                  Any time I get these that require more than an hour of my time, I ask how much they pay for it. Although usually they don’t, I think it’s still a good practice of all of us to start asking this, because it shouldn’t be the norm to be doing these 4h assignments on our own clock. The most annoying kind is when you have to do a pull request, because, as we all surely know, pull requests over GitHub are really special, and is how all real software is developed — bar none — and if you cannot play along with a pull request, you’re not a worthy developer. I’ve tried these takehomes a couple of times, and settled at the practice not really being worth the effort in most circumstances.

                  1. 5

                    Seems like an unreasonable request to me.

                    1. 5

                      For my current position I had to fix a (small) bug, submit a pull request, and get it committed - but most of my work there is on an open source project, so it seemed reasonable. And even if I hadn’t got the job, I’d have another OSS contribution…

                      I think it can be taken it too far, but the concept doesn’t seem unreasonable. Better to use something real than “fizz buzz” or the other make believe problems some companies use.

                      That said, I don’t know the details in your situation. I’m curious about the “prepare a detailed, technical presentation on what I think the architecture of their system should be” part. I’m skeptical that’s how they phrased it… Maybe you misinterpreted the request?

                      In any case, it wouldn’t hurt to ask them for more information or voice your concerns to them.

                      1. 4

                        If it’s a reputable organization, they’re serious about hiring, and you want this position then do the exercise.

                        I ask folks all the time in interviews how’d they build something practical that I’m currently in the process of building. Or more precisely I’ll ask about a difficult piece. I want to know how the applicant thinks compared to myself.

                        Now I don’t believe in giving homework. Any coding/design exercises done onsite.

                        1. 1

                          That makes sense to me, and I’ve done the same as an interviewer. I was willing to go with the questions that they asked me during the interview, because I understand that I need to demonstrate my expertise. I wonder, though: do you feel like there’s a line where that sort of questioning (pointed “how would you solve this problem that we’re stuck on” type questions) becomes unethical, or at least questionable?

                        2. 2

                          I wouldn’t do it, personally. There are a lot of jobs out there, and any of them that require more than 1-2 hours of my time aren’t really worth looking into at this point. I have a lot of experience and a ton of code available so you can see how I write/commit.

                          I actually just posted a job for the startup I’m at recently and came up with 2 assignments: one for UI and one for API. Both of them are aimed at junior-to-lower-mid developers, and both of them explicitly say not to spend more than 1-2 hours on it. It’s not a show stopper if someone refuses to do it if they have code that I can look at.

                          1. 2

                            You mention this is for an architect position. That’s pretty high up the ladder. This process sounds in line with what you’d encounter when interviewing for a VP or C-level position.

                            Is it possible that they view this position as a senior leader at the company, and want to make sure not only that you have the ability to perform the role, but that you have a strategy that is in line with their vision and that you’re able to clearly communicate it and hit the ground running?

                            1. 2

                              Ask them to pay you.

                              1. 1

                                We’ve had this discussion at work.

                                The argument for this style of question is that we want to both give the engineer a clear view of what they will be working on, and that we want to see how they approach real world problems that we had to think about fairly deeply.

                                It’s partly a reaction to the silly algorithmic problems that don’t really test for the abilities we value.

                                The intent is that it’s a more honest interview, and should be better for the candidate.

                                That being said, this is all done on site, in a 1hr window. We don’t give homework.

                                Personally, I don’t think homework assignments are reasonable, and it would take a lot of interest in the company to get me to do one.

                                1. 1

                                  I say no thank you and go to the next interview.

                                  1. 1

                                    I see a slight contradiction: How can you develop a “detailed architecture” if you only have “one in-person interview” of data? Half of the presentation would be describing assumptions about requirements, stakeholders, processes, competencies, etc. That is unless they are doing something standard (CRUD web app), but then what is the point of a presentation? Ok, maybe your job is to fill some process gap because of an upcoming government contract?

                                    If an interview goes along the lines of “we’re trying to solve this problem right now; how would you do that?” then I would interpret that as “Interviewer did not have the time to prepare properly”. For a developer position that would be a minus point because the lack of a proper interview process means it is very random and you will probably have incompetent colleagues. Since software architect roles are more rare, I would be more forgiving here. Anyways it sounds more like a startup than an established company.

                                    The intention behind such “homework” is usually noble. They want to see your performance outside of a high-pressure interview situation. Personally, I consider something like 1 or 2 hours of homework (one evening) as ok. That is not enough for a what I would understand about a “detailed, technical architecture presentation”, as outlined in the arc42 structure, for example. Especially if they expect some shiny Powerpoint slides.

                                    1. 4

                                      I’d treat the requirement for architecture to be expressed in PowerPoint as a red flag.

                                    2. 1

                                      I think it depends on the time and solution(s) they are asking you to provide. I doubt, but could be mistaken, that anything you come up with and present in an in-person is going to be directly implementable. I also hope assume that the company already have some ideas on how to tackle their current problems, and just want to see if you a) come up with some of the same solutions or b) come up with new, alternative solutions (which can be both good and bad).

                                      If they expect you to spend more than a few hours (an evening of thinking + creating the presentation) for the technical presentation, they can pay for it. And if they want it detailed, perhaps with a project plan, they can most definitely pay for it.

                                      I have asked for (as an interviewer) and done (as an interviewee) “homework” tasks, but only high-level architecture or simple technical tests (FizzBuzz+), and I would only accept it could be done within a few hours (and was expected to take that at most).

                                      From interviewing experience, nothing beats having a specific task that you wrote to talk about, both in terms of having a starting point with a known problem you have had time to think about, and also in determining what your programming proficiency is.

                                      If your gut feel is that they have no clue what they are doing (to whatever extent), then I would not bother and simply turn down the job. Again, it’s not a luxury everyone can afford, and if they seem reputable I would still do it per the requirements mentioned above.