Sunday 15 March 2015

Where is my career heading. Is preparing for tech interviews really worth it?


Any average developer knows it's not trivial to succeed in tech interviews of a lot of companies to the like of Facebook, Google,Amazon,Directi etc and all of other emerging startups who have stringent hiring condition. I am computer science graduate from MNNIT Allahabad. As an average student, I did not do much programming in college-just enough to pass. However I felt I was better at data structures and general programming than 80% of my batchmates. Got placed into one of IT mass recruiter(IBM) in my first interview, I had no idea as to how tough tech interviews can be if it is with Google or amazon. Anyways I am one of those guys who actually completed their engineering after the college. I bought the best books in computer science, read them. Gave 3-4 times interviews each in adobe and amazon. Also 1 time in google. I have worked with IBM, Huawei, Informatica labs, [24]7. These companies are average paying companies but they would never reject you in a tech interview if you somehow forgot to check a null pointer or missed an edge case in your interview. Neither would they give you a problem which requires dynamic programming etc. In fact my last company [24]7 was fairly good company in terms of technical skills needed still they did not had such stringent interviews.
My career like many of you went like below:
IBM --> Realised that I got into a company where a major chunk never sees a code ever and a major chunk includes people who want to attend guitar classes, people who want to crack CAT, people who want to go onsite and live happily ever after. Even being an average programmer it hurt me. The env was far different from the curriculum we as students were exposed in college.Brushed up my concepts in DS/OS/Algo and started giving interviews. Adobe, Amazon rejected, Huawei selected.
Left them in 1 year.

Huawei--> My first product dev company. Honestly I was very happy when I got an offer from them. This was a decent product company and I was working for one of the good teams. I spent half of my time preparing for tech interviews and other half on the work. The result was I was just an average guy at office when I could have been amongst the best. Did not find much of my interest in a work that involved a lot of telecom jargons-I started giving interviews. Adobe, Amazon, Directi rejected, Informatica selected.

Informatica--> I was happy here since I found the guys working in this company cs grads from some of the best of the IITs and rest from top colleges. I though this was end of it. I can start and end my career here. For 3.5 years I did not raise my head and worked real hard for the company. I got 2 promotions in 3.5 years and consistent and decent salary hikes. At 6th year of my career I was a Lead Software Engineer with around 15.5 lacs as my CTC. Recent freshers being hired were getting 11 lacs and this made me feel stupid.  I was mostly building data transformations(C++), developing mapping logic etc. I even contributed to porting some of the transformations to work on hadoop. I thought I was a part of the new Big data wave. I decided to open my resume to the world. I soon realised that the work I was so proudly doing all these years was not much valued in the market. Nobody understood when I told them I wrote thos transformations which find value frequency, pattern matching, found aggregates, candiate keys, functional dependency. Nobody cared even when they found that I contributed to rewriting of those data transformations to work on hadoop. People were not impressed even when I told them that there is bug code base I developed to do these things and I do not use sqls to find those information. I was working on the building blocks of the informatica engine. Shit nobody understood and nobody cared. Strangely I was getting far less calls than I would have got if I was from java development background. I did very less java and msotly coded in C++ in 6 years of my career. However I was quite good in C++.Old friend Amazon called me again, took all rounds and rejected. [24]7 gave me an offer that they would have never given me if did not clear their interview. Their domain had nothing common with my experience in Informatica. Still they gave me offer since I could answer their old and repetitive data structure questions. However they hired me as a SMTS instead of lead.

[24]7 - This was by far my best experience in terms of work. I soon realised that what I was doing in informatica was inferior to what they were doing as part of developing a chat platform. I struggled a little but was able to do decently well in the company for 1.2 years. Suddenly something terrible happened and I had to leave the company- a time when it was appraisal and possibly a promotion too. I was jobless.

I was again exposed to a lot of interviews-startups, small companies, big companies...companies which were possibly superior to even amazon. With my [24]7 experience I did call from every outstanding product dev companies. Interview procedures changed in all these years. I realised that these days companies were using hacker rank and other online coding websites as initial screen. Again companies did not really cared what I really did in [24]7 and how it matches their requirement. Everybody tested me on those DS/Algo questions. I was not really prepared. I never prepared after I joined Informatica. People asked me if I knew spring framework and when I said no-they were shocked as I it is something that you cannot learn and do.
I was exposed to some really stupid interviewers and some really smart ones. Eventually I got an offer from a company which again had nothing much in common to my existing skills but I answered their common DS/algo questions. My skills were C++, Java, Distributed Systems, server side development. They required angular js, scala, ruby, play framwork, full stack web development capabilities. They could have got the guys who knew them but they hired me since I cleared their interviews where I already knew most questions.
Eventually I am getting almost the same remuneration that I would have got in huawei with my experience if I was good there.

I think a lot about below:
1. Where is my career going anyways. Am I mad?

2. Is it really worth spending time in tech interviews because you want to join those companies who have stringent recruitment criteria even if most will not require those skills.

3. How can you really prepare for tech interviews without affecting your office work since I think both require different mindset.

4. Is there an end to these tech interview-honestly even the best guys from companies like amazon etc would require some preparation to clear tough tech interviews who ask you difficult and unheard questions.

No comments: