Thursday, 6 February 2020

Rest API best practices

Redis-an introduction

Hiring manager questions

HM Questionaire

Q→ Explain in detail the current team you are working in, the applications you are handling and the technologies involved? What are the current issues in your application?

Q→ What is your typical day like? Explain your overall responsibilities in a day to day basis with time breakup

Q→ What are the current tech debts of your application? How do you plan to achieve them?

Q→ What is more important to you and why- a high revenue business feature or a tech debt?

Q→ Tell me about your deployments and your release cycles

Q→ Describe in detail a production issue you solved under strict deadlines?

Q→ Tell me in detail about the biggest project you delivered in the last 3 years? What was challenging in it?

Q→ What are the common problems in a high scale system?

Q→ Can you tell me the importance of non functional testing? What do you think is important wrt non functional testing? What metrics would you consider?

Q→ Tell me an example of proactiveness?

Q→ What is ownership and leadership according to you? Give me an example of leadership

Q→ Do you have any experience with messaging queues? Where did you use them?

Q→ Do you have any experience in NoSQL? Where did you use them?

Q→ How would you debug if your clients are complaining of your API being slow?

Q→ What are the 1 aspect of your job you like the most?

Q→ How do you keep yourself technically up to date?

Wednesday, 29 April 2015

My story of struggle

Anonymous

Sunday, 15 March 2015

A Life without a job (and with a lot of interviews)

It was a usual day at my office. Last night watched Birdman with a friend. During the lunch break I was amusingly fighting with Ishant- a colleague and friend when he said he did not liked the movie much. We proceed for the lunch. I had put on a lot of weight and decided to go to Gym. It was just 2 days and I was trying my bit to reduce weight. At the lunch table, somebody amusingly asked "Howz your gym man?" I said "Yeah today is the third day".Another guy said your shirt buttons are trying hard to be in place because of your tummy. Amongst us there was guy from the QA team-a well build dude who doesn't hesitate to avoid whenever it comes to workouts.  The guy advised me to get operated like adnan sami else I would not be able to loose weight even in 5 years. Some others said I can gooble up 3 4 chickens in one shot. I did find any of those comments to my taste. I never made fun of anyone in such a large group. It was always one on one. Suddenly I lost control and told of them to shut his mouth else I will beat him hard. To that the guy replied "Even I have hands". I don't know what happened to me. I did not like that guy and felt extreme urge to slap him. It took another 10 mins by the time everybody finished the lunch.

As the guy came out in stairs, I slapped him hard 2 3 times. He was in shock and so was I. A friend shakir pulled me off him. I told the guy I slapped not to talk to me ever and left from the scene. I was a sudden reaction that happened- an accident that I did not know the thing it would bring. I was at my seat again thinking about it. By the time I realised that the guy had complaint about the confrontation to my senior director who took it up with HR. The director and HR director called me to the cabin to discuss the incident briefly and then asked me to leave home. My manager called me to a meeting room and told me to be prepared for even job loss. A sudden fear gripped me. I left early for the home. There was no one at home. My wife and 1.5 year old daughter were in mumbai with my inlaws.  I created a linkedIN account and applied to lot of jobs. I even went to career section of  some companies and applied online. It was hard to take rest. I was not able to sleep that night. Next day I went to the office and was barely able to work. I talked to the engg director about the circumstances I slapped the guy and pleaded him to do something for me. He told me that it is the panel to decide the fate. He could do little in this regard. Late that day I was called by the HR director and engg director to tell in detail about the incident and I told them the truth. I confessed of the mistake I did and pleaded to forgive me. They asked me to send a mail stating the incident which I did. I felt they might leave me with a warning. After 2 days of weekend I was called to the cabin. The HR director told me that they discussed this with the management and the decision is termination. I did not feel anything. No fear no emotions. He said that they do not want my career to suffer because of this one incident that happened so they will not terminate me but ask me to resign. I asked them if there is any way I could be left this time. He said no. He had the resignation paper with him that I signed and within 10 mins I left the office with all my belongings.

********************* I was unemployed********************************************

Up next, upcoming 2 weeks were filled by tech interviews. Here is my experience with them.

1. Vizury
1st round: Data structure questions on sorting. He asked me a tree question using recursion that I did. The guy interviewing me was not able to trace it in a recursive way. I explained to him how the control would work in recursion.  I did pretty well. You know it when you have.
2nd round: Asked me to write a queue implementation with linked list. I made a program and told him that it would work in uni threaded env. For multithreaded environment, i can modify. This round was also good as per the understanding.

The HR came and told me that the response is not very positive about me. I was shocked. Both round were quite easy and there was least chance of any error. I told him that I wanted to talk to the interviewer to which he said he will give me detailed response. He was very angry but then left the scene totally baffled.

Result: Not selected and did not know what went wrong.
Interview experience: Very negative

2. souq.com
1st round: A guy came in and asked me to summarize my education and career. He then proudly told me that he was from IIT delhi, M Tech. I was not impressed. He moved to ultra regular style of asking me java questions since my initial half years of my exp was in C++. He wanted to even check the syntax while I am writing code. He asked me about collections, how to iterate them. Talked about private, public stuff. Asked a couple of data structure questions including reversing a linked list, sorting etc. He had a hard time understanding my code which I felt was plain simple. I had a hard time answering his school like java question which included some question like "can you call a constructor from another constructor". By this time he was sure that I am no good in java and ok in data structures. Honestly had a hard time with this guy. He was immature and was quick in having conclusions about the person.

2nd Round: This interviewer was an experienced one. He asked me to design an LRU cache. Asked me about odd even alternate printing thread question. Grilled me on multithreading and distributed systems, high availability, fault tolerance. Overall I was ok in this interview but his questions were pretty good.

Result: Not selected but learned how to expect in interviews for my 7.5 years of exp
Interview experience: Neutral.

3. Thinkvidya.com

Just a single round on multithreading and distributed systems-which was little tough. He asked me why I was looking for a change. I told him a stupid reason that company env is not very healthy though company is good technically. He knew my manager who worked with him before. I then told him the truth.
Result: Not selected
Interview experience: Neutral

**************************To be continued************************************




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.

Tuesday, 27 May 2014

The Siemens corporate research blunder[The end of machine learning in my life]

Days were going smooth at Informatica. Life was on track. After working for more than 3 years with the team, rarely I got something that I found difficult. When you're mind is not so busy it wanders a lot. My mind did too.
I started feeling what I was doing in this reputed product development company was not challenging enough. The guy in me was not satisfied. He wanted more...a lot more. Appraisal came and I got a salary hike of 18% and was promoted to Lead Software Engineer-6th year of my career-a good enough time considering Informatica was my third company. Strange I was not happy with my appraisal. 18% was not good enough for me. I felt underpaid and under learned considering 6 years of experience. That machine learning worm bit me again. I started reading articles about how cool data science is and how cool the data scientist are. I created my profile in LinkedIN-tweeked it a little to look good for a data science role.
Anyways I even applied to few jobs but nobody came back. Strange enough I was not even good at basic statistics and I dreamt of being a cool data scientist.

I changed gears-"Big data" is hot these days..I should try getting some serious research level work in Big data. After all I was the one who converted those data transformations in Informatica to map reduce. I have the experience with hadoop and that is what big data is all about. May be I can read a little "mahout". May be I can learn some "NLP" or "Data mining"-they looked more approachable to me than a hard core data scientist.
So I started applying to those "Big Data" jobs and I did recieve a few calls. Unfortunately I could not clear interviews from amazon, inMobi but I did clear a couple of startups who were willing to offer me a job with no hike in my salary. I could not summon up enough courage to join them. After all I had a family to support-what if they shut down?

Days passed and I developed a new fantasy-I want to work in Informatica, US. It's been 3 years and I was eligible for applying for relocation. I approached my manager and let him know. He convinced me a little but I was adamant. I reached out to all big guys including the hiring manager in US who had positions. He demoralised me and asked me to work in my current team for few more years. I was angry and sad and became very resentful of Informatica- a company that gave me a lot.

Days passed and one day I got a call from [24]7 iLabs for technical lead position.I thought of blackmailing Informatica if I get the offer.
I had a good interview with 247 and they said they will offer me what I expected-near 20% hike. I got a call from HR and he said my domain is little different from theirs and they might consider me for SMTS. I was ok since it was some data science + engineering work I was willing to explore and the company is known to use predictive analytics/Big data. If Informatica sends me to US I am good else I will join 247

I received their offer with almost no hike in my current salary(except that they made everything as fixed + 1 lakh joining bonus). Anyways I decided I would join them if they offered me work in the area of so called "Big Data". I discussed the work with architect who told me that they were hiring me for distributed infrastructure platform teams where I would be working mostly on non functional requirements like sacalbility, reliability, performace, high availability etc. That did not make sense to me and I rejected the offer.

Time passed and then one day I applied to Siemens corporate research. They had an outstanding job description related to research in the area of big data technologies - apache spark, hadoop, yarn, cassandra etc etc.Also they said 'Phd desirable' for the position. I immediately applied for the job without expecting any call from them.One fine day I got a call from the manager at Siemens research who said he wants to talk to me. I said ok and he started the phone interview without informing me prior. He asked difficult computer science questions. He asked me floating point representation and about 2s complement, 3s complement , statistic questions -something that I don't think ppl asked these days in interviews. I was impressed. However I could not impress him much. Finally he said he would discuss and let me know. I did not expected him to revert.

A few days later I got a call from Siemens research. They asked me to come and give a presentation on one of the projects that I did in Informatica. I went to their office- gave a confident presentation on the best project I did in Informatica. I had a couple of tech interviews after that that mainly concentrated on theoretical DBMS and some basic programming. Overall the interview was easy. I prayed to GOD in desperation that this is the ultimate opportunity that must be given to me.

Days passed anxiously. After a few days I got the offer from Siemens and I was happy.Again it was not a great offer monetarily-exactly same as [24]7. But I was happy that now I can pull off my last weapon-threatening the manager that I would leave if I am not given opportunity for US. I was happy that even if I don't get the opportunity atleast I would be a researcher working on some cutting edge technologies.

I went to my manager and told him that I have decided to leave. He was shocked and honestly I was too. INFA was a second home to me. My life was good here. He tried convincing me a lot but I was adamant. They informed the manager in US about my decision to quit if not given opportunity for US. Ultimately nothing happened and I left Informatica.

I joined siemens-the first 3 days were induction. The gut feeling was not good at the first day. This was a pretty big company-too much crowd and looked like a university with big canteen and free breakfast and dinner. I joined my research team which was busy preparing for a conference about Big Data in coming days. There was a lot of enthusiasm. Few asked me as to why I joined Siemens Research from Informatica. I felt awkward answering that. I soon realised the place was not the way I perceived it to be. It was a team with no clear focus on things-they had big data and cloud computing as their research area. However the research was just 20% of their portfolio and rest belonged to consultancy projects that they used to do for their own development team. I soon realised that they were struggling to convince the higher management about value addition of using distributed computing and big data for their projects. People were not buying their ideas. I soon realised that the company policies were stringent that for getting a necessary software installed you need to go through approval cycles.I realised that the company is not inherently into software. They are an industrial automation and healthcare equipment company to which software is just a part of operation. They don't sell softwares. Coming from a good product company I felt I was in some kind of TCS or infosys. I was frustated and felt cheated. Even their hiring standards were not upto the mark. They mostly hired M.Techs and few PHDs from a local college called - IIIT Bangalore. A couple of PHDs already left the company and a couple of them stayed with no idea what to do.

In desparation I contacted Informatica to take me back. I went to informatica to dicuss with a manager of another team. He asked me if I was still on US thing to which I honestly relied as Yes. Nevertheless they decided not to take me back and I  felt so stupid. Now the company I worked for 3.7 years and where I had high respect for my work denied to take me back.

2 months passed in all this. I felt so stupid...I soon realised that If I stay in this place for 1 year..nobody is going to take me and the only option that I would have is to either stay in company or be some kind of freelance trainer...honestly this so called research unit of siemens was the worst career decision I took..one fine day while I was thinking of my position-it suddenly struck to me that I still have an offer from [24]7.

I called them in desperation and they told me that they still would love to take me. I resigned from siemens and after 15 days of notice period relieved.

It;s been 4 months here at [24]7 at platform team. My team work on large scale distributed infrastructure for their chat software. I am happy with what I am doing and would be doing here. Beside me sits the Data Science team who use machine learning for building models for predictive analytics. I don't see them as a different league anymore.

I am content with what I am doing. This marks the end of machine learning in my life.