Currently, I am in the process of searching for a job as a software developer. In this field, technical assignments are a popular way for employers to assess candidates. I like this process, but I have a concern.
I get the feeling that interviewers (understandably) have specific subjective preferences that relate to programming paradigms, architectural choices, and so on. These preferences may affect their review process.
As for me, I do have my own subjective preferences as well, but I believe that I am quite adaptable and can write code in dramatically different styles — it really depends on what kind of project I'm working on and who my audience is.
The problem is that when I'm submitting code for technical assignments, I don't know who my audience is. The choice of technology often doesn't tell me a lot, because some languages are multi-paradigm (e.g. C# and Scala) and there may be two equally valid ways to use them (e.g. the Java way and the Haskell way). And, overall, I'm terrible at assessing another person's preferences without asking them.
So, whenever I receive an assignment, I run the risk of submitting a solution that the interviewer will dislike, even though I could (and was willing to) submit a solution that they would have liked. This is not the end of the world, of course, but it makes the entire process feel like gambling and a waste of my time (and theirs).
Can I politely require a clarification from the interviewer before I invest time and effort to the assignment, or would that be considered rude? (That clarification would be about what paradigms and practices their ideal solution would follow.) And are there any points I should be careful about in my request?