I had been stunned a couple of times when employers asked me to show them a project that I'm proud of for a lot of reasons.
Such a question is wrong on so many levels. The question implies a lot of hidden messages that can be interpreted even as passive aggressive behavior rather than giving the developer a chance to project confidence.
Below are the reasons why you should never ask candidates such a question:
1- Not Every Developer has a Demo Project Sitting on Github
I'm one of those very few people who got into Development without having my own personal repository. It all happened when I was given the opportunity to work on a project that required a bit of coding skills. I was already accustomed to the idea of coding applications. However, as a fast learner, this came to me by surprise that I'm capable of coding and creating applications even when I had limited knowledge in the past.
Expecting a Developer to have a project ready to show is made on the assumption that every Developer started with an online Github or Bitbucket repo which is very narrow or shallow way of thinking about careers and how people enter into an industry.
Despite the fact that I worked on many projects, in the past, I couldn't show anything or any project due to simply NDA and companies' policies that prohibit sharing proprietary software or property.
Even in the case of Open-Source projects, there isn't always an opportunity to contribute to those projects in a meaningful way due to a lot of factors or reasons outside the candidate's control such as the project maintainers' and their strict guidelines.
2- No One Size Fits All
Today, it's pretty wild to see a project that utilizes all aspects of software development. While you can try to create your own project and try to show case CI/CD skills, you'll never be able to showcase everything sometimes specially at the level or scale of an enterprise software where you have 100s of Developers working on a solution in a company versus you alone trying to put in the same amount of effort for only the sole purpose of showcasing your skill.
Imagine that you're applying for a position for a Back-end Development but the project that you put too many hours and sweat to work on during your short weekend, is a front-end project with limited back-end development. It can also be the other way around.I know that many of you will argue that the whole point is to tell what skill level in general the Dev has but it's still considered a bit narrow-minded to try to sum a Dev's overall profile or skills based on a weekend project that they made solo.
3- Passive Aggressive Message
The question also implies that you view most Devs with a negative assumption that the majority of Devs aren't really that skilled/strong; on top of that, you're telling the candidate that you want "Top" talent depending on what does the top talent means to you.
An assertive and well aware Dev would view your question as projection rather than a question.
The question projects a negative attitude where you think that you're above and beyond all other Devs around you which raises the question about your relationship with your teammates or colleagues.
While it's not necessary to always agree on everything with your teammate, your question might imply that you have a hard time adapting to other people's views or solutions.
4- Job Interviews are Subjective
Due to the overall nature of the tech industry, there are so many metrics that makes any questions you formulated only draw a subjective image/picture of a candidate's real potential. Therefore, it's still considered a very reductive/arbitrary approach to asses someone's potential based on a single project or piece of code they wrote on their weekend.
5- The Job Interview Should Never Harm Candidate Emotional Well Being
The most important reason why you should never ask candidates such a question, is that your interview should not have any side effects that could impact the candidate's well-being regardless of the result of the job interview.
If the candidate is rejected because of #4, you're telling the candidate that their best project or the project they are proud of, is not good enough and that they are not worthy of being Devs or doing Software Engineering.
Let's admit it, there will be a lot of reasons of why job candidates will get rejected most of which are either subjective or external factors (e.g. position canceled or no longer available due to restructuring).
When you send the candidate a rejection email with generic responses which is the case most of the time, you're telling the candidate that their best is not good enough.
6- The Best Project Doesn't Exist
In real-life, most projects will have bugs, performance problems, technical debts, lack of unit tests, etc...
Most Devs aren't actually writing a project from scratch; most Devs, even senior ones, are merely making small adjustments to existing software and each task in an organized manner, most likely needs a business justification and prioritization by the project managers.
If there was a situation where a Dev single handily created a whole CRM from scratch and made it so perfect, you'd fail to assess their ability to collaborate with others in a productive seamless manner. Unless you're applying for the position of an Architect or Project Manager who will manage the whole project, neither a Software Developer nor Software Engineer will have a project that they worked on from scratch in most cases.
While there could be some cases where a Dev was entrusted to work on a whole project from scratch, it still raises doubts about their ability to collaborate/cooperate with other Devs specially on larger projects that require more man power to handle.
Not every interview question is a good question to ask. Just because others might be also asking those questions, doesn't mean that you also should. Quite the contrary, specially in the tech industry,where thinking outside the box is often a plus, you should be rather focused on approaching everything with question marks since nothing is black or white.
The job candidate, regardless of anything, they are people worthy of respect and dignity. Even if you do not see them as good fit for the role, you should respect the fact that they have given you their time and effort to engage with you in a meaningful manner.
You should view the job candidate from a more holistic point of view and even if things don't workout for whatever reason, remember that what you think is quite subjective and nothing predicts a Dev's potential more than actually working with them.
In reality, the most important factor you should be focused on, is their willingness to learn new topics they might not be familiar with and their receptiveness to ideas from others and/or considering others' feedback.
A good engineer, is not necessarily the one that has the "Best" project but in reality, they have the best willingness to learn and adapt.
Top comments (2)
Really? There is an argument that if you have a passion project that could well be something that you are most proud of. If you have a passion project you can prepare for the interview by creating a github repo.
I think you may have walked into the exact trap that that question is designed to catch. If you don't have a passion project on Github. Generative audiovisual art neatly ties together a lot of things which I am interested in. I used that to teach myself a lot about synthetic music theory as well as app design. The question gives you a really neat way of saying:
Here is something very simple that I made. It is however clean, and I have thought about all usability edge cases which are appropriate (aria tags for audio visual art may sound a little contrived, however a11y is a direct SEO marker. There is also an argument that you should always practice best practices.)
Other reasons I am proud of my work is performance. My work goes back quite a long time so this is where we may see the question quite differently. While I don't have one project to rule them all which I am the most proud of, I couldn't have too much performance overhead while using the web audio API. It just gives you a nice way of justifying yourself.
The how automated should a audiovisual synth be. Deaf people may find a particle engine interesting and see the resulting noise that they are making moving a mouse and interacting with a page on their friends faces. That said standard Aria and Alt tags won't be appropriate for an audio visual app.
This means you can still go very deep into performance and a11y while taking a completly custom and untraditional approach. I am proud of this, because I use no external libries. It is not something I can see myself finishing any time soon - there is always the chance to add a new filter and new ideas to take inspiration from.
See I would hope that any of the example which I am giving here would project passion, original thought and reasoning. It is something I am genuinely passionate about.
I do understand - you work coding and get home do you really want to keep coding. For you being able to present what you have done in the workplace and not wanting to just output a boilerplate copy is clearly frustrating but I think that you are overthinking things here. See it as an optunity to show original thought, and your thinking process. I am most proud of the work which will probably be never finished. I hope that idea might help you.
While I appreciate you trying to help, I still view such interview question as wrong and unproductive. I'm not looking for an answer on how or why I should answer such a question on an interview, sorry. I just don't deal with such companies/hiring managers to begin with because I think they harbor a toxic work culture.
If you are a Senior Dev with proven track record, references, qualifications, etc... , such an interview question is completely irrelevant. If you are a fresh graduate maybe because you don't have any experience, then yes, maybe; but even then, you shouldn't ask them such a question unless you've already decided to hire them. Otherwise, you're ruining their ambitions and putting them down.
If the goal or aim of such a question, is to find truly passionate Devs who love their job, unfortunately, being a Dev alone is more than enough to prove that you're passionate because of the amount of rejections that Devs get to land a job in general and the whiteboard humiliation tests that they have to go through; those who didn't give up, are truly passionate.
This boils down to the hiring process where the recruiters throw your resume to the hiring manager who most of the time neither willing to put in real effort to research the candidate nor willing to take the risk.
When I'm sent someone's resume, I actually spend at least 15 minutes going through their resume, Github, etc... . Yes, it's part of your job if you're in a managerial or Senior role.