Unrealistic. Impractical. I applied for an Application Developer(Full-Stack) role in Pune India. The interview process consists of 4-5 rounds.
About me: 7+ Years of Full stack Java Development (From scratch Development Projects only)
TW = Thought Works
Pre-Interview (Complexity- Very simple): This will be some small program they give just to check your basic programming logic (HackerEarth kind of test link). You need to submit your answers to a REST API exposed by TW.
Code Refactoring(Complexity- Average): They check your Junit/UnitTesting skills and see how you refactor code. The important point here is that one should write Junit/Test Cases properly before refactoring the code. The test cases serve as a checkpoint to ensure that your code even though after being modified/enhanced still yields the correct results.
Also, they market one of their own legendary programmer’s book Martin Fowler, though is a very good read I must say.
Technical Depth( Complexity- Hard): This is around where they check how much you know about your “CORE” skill. Mine is Java. I had no problems here. I’ve mastered the language over the years, worked on several Java frameworks. If your core is strong you’ll clear it.
No code solving here, just they check your approach to solving questions.
Eg. If I were to design a Content Delivery Network (CDN) on my own what would my design be, what data structure I would use etc. and a lot of cross-questioning happens to check why you chose something in your design.
Technical Breadth(Complexity- Hard): This is the worst round. And the most impractical one. They check what other languages one knows apart from his core skill.
I knew none other than Java(my core skill).
So they asked me to take a break and learn a new language like GoLang or Python and also explore some NoSQL databases. I had experience in Java, Frontend, and RDBMS(SQL databases).
I took it to heart and self-learned GoLang(backend language like Java) and Apache Cassandra(NoSQL Database). After 3 months I gave this round again and was REJECTED.
The reason given was I’m quoting the HR reason. “As for feedback, we feel that your understanding of Cassandra and Golang could be improved”
So basically they rejected me for something that was NOT my core skill. I had three months time to study, it wasn’t really three months it was every weekend in these three months as I am working as a Lead in my current organization, I had a responsibility to deliver client work.
I took several leaves in between just to study for this. Whatever was physically and mentally possible I did with whatever time I had and tried to learn as much as possible, but they expected me to have knowledge i.e. at an expert level which is unrealistic.
Also, during all this time, I was under immense depression and anxiety due to all this. That is why I say Unrealistic and Impractical Interviews. If they ask you to study and come back after three months, I would personally not recommend going back to them, because as much as I have observed such Candidates are almost always rejected.
If all the interview rounds happen in one flow without them stalling you for 3 months then go for it or else don’t go through so much pain.
PS: I have tried to write just the facts without being emotional so that you may judge for yourselves what should be done.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course. In case you are prepared, test your skills using TCS, Wipro, Amazon and Microsoft Test Serieses.