This is the first public post I have made outside of my own website so here we go๐ค๐ป. I recently started looking for work after being at the same place for 6 years and making my way up to a senior/lead Android developer. As a senior Android engineer, one of the biggest challenges I face is navigating the interview process. In addition to the usual stress of interviewing, we often face biased expectations from interviewers, especially when it comes to take-home assignments. These assignments are frequently longer than 2-3 hours, require a significant amount of work, and are expected to be completed for free.
Take-home assignments have become increasingly common in the tech industry as a way to evaluate a candidate's skills before inviting them in for another interview. Many times, you wonโt even make it past that take-home assignment and a lot of your time was wasted that you could have spent with family & friends. They can be a useful tool for both us and the company, as they allow the us to showcase our abilities and the company to get a better sense of our technical skills. However, when these assignments become overly burdensome or are used as a substitute for paying us for our time, they can become a significant hardship.
One of the most challenging aspects of these assignments is the amount of time they require. As a senior engineer, we have a busy schedule with work and life and finding 10-20 hours to complete an assignment can be a real challenge. Furthermore, the length of the assignment does not always correspond with its difficulty. Some assignments may require significant amounts of time and effort to complete, while others may be more straightforward but still require hours of work to complete.
Another issue with take-home assignments is the expectation that we will complete them for free and they want us to develop very similar experiences to their flagship application(s). Firstly, it's important to understand that this kind of request can place us in an ethical dilemma. On one hand, we want to showcase our skills and prove that we are the best fit for the role. On the other hand, it can be uncomfortable giving away free work for the companyโs app that can be used, especially if we are not guaranteed an interview or job offer.
Secondly, the expectation that we should provide polished, and production ready code can be seen as an unfair and unrealistic burden. Business logic within a flagship app is often complex and sophisticated, and it's not realistic to expect an engineer to be able to complete this kind of task in a very short amount of time and for free.
In addition to the time and compensation issues, another challenge with take-home assignments is the expectation that you will complete everything perfectly. Many of these assignments ask for a wide range of skills, including design, architecture, and coding. However, it is unreasonable to expect us to excel in all of these areas when normally this is a team effort months or years, not 2-3 hours. As a result, some may feel overwhelmed and discouraged if they cannot complete every aspect of the assignment perfectly.
This is not to say that no one should use take-home assignments or refused to do them, I love doing these assignments when I am applying for my next workplace. Get to create something new, try new things, show my skill, and have fun building applications with requirements someone else made and be challenged. Some of the best interviews I had, whether I got the job or not, was I was able to still interview after the assignment. They wanted to see what I did, why I choose to do what I did, and why I choose to not do some of the requirements based on the time block.
I am just hoping people will read this and see that we are all human and we all have lives even when applying for work. Asking for us to do a couple hours of work to prove we can do Android development is expected, asking for the world is unfair and honestly a waste of all our time.
Top comments (2)
These are all very valid points and as a developer and interviewer some times myself I have also found It like too much work to juggle on top of the already stressful interview process.
One thing that has helped me though was having a "template project" prepared in GitHub, as take home challenges usually involve consuming an API, displaying some sort of list and massaging the data somehow, you could have a project that consumes an API and has a clean architecture ready to be used. It could save a lot of time and allow you to focus In the challenge itself. ๐
Yes, after the first couple I did a light bulb went off to just have a template project.