Showing posts with label Interview. Show all posts
Showing posts with label Interview. Show all posts

Wednesday, October 5, 2011

Few good links on Resume & Career

IT Professional's Resume Makeover Guide

Ref : http://whitepapers.zdnet.com/abstract.aspx?docid=3499799 is excellent pdf which gives useful tips on writing effective resume.

Good ReaDs:

  1. Careers are like nature: Only the fittest survive Ref: http://www.techrepublic.com/blog/tech-manager/careers-are-like-nature-only-the-fittest-survive/6722?tag=rbxccnbtr1
  2. Three ways to turbo-charge your tech career Ref: http://www.techrepublic.com/blog/career/three-ways-to-turbo-charge-your-tech-career/344
  3. Nine tips for getting hired Ref : http://www.techrepublic.com/blog/career/nine-tips-for-getting-hired/3135 
  4. Know when it's time to change jobs Ref http://www.techrepublic.com/blog/career/know-when-its-time-to-change-jobs/3062
If you have more links which you think are useful , do post them here for others to benefit...

Tuesday, August 24, 2010

How did I made entry into architecture world from designing

I remember in early days when I had been doing lot of technical projects. I had been successfully leading and designing the complex problems which lead me to believe I was now ready for the architect position.

However, I was still at the designer and tech lead stage and did not know how to break into the architecture world. I did not know how to prepare for the architecture position. I did not have people around me to guide me. Architecture was still a new position and not much literature was available for it. Books gave a little theorectical knowledge of architecture.

With no other options, I started to apply for the architect position. I prepared some based on the job descritions. And then armed by all the knowledge I had of technical designing a project and OOP I went through many interviews which were largely unsuccessful because of my lack of deep knowledge in that area.  In the interview I was asked 50% design questions (some of which I could answer) and 50% architect questions. Design questions were to judge how well do I know my subject and how well I have been at things I say have been doing.

During firsts few of my interviews:

I was asked about the architecture styles and pattern.

I could answer few like Client-Server, Layered and PAC (Pseudo Abstraction Control) but did know about the architecture patterns like blackboard, pipe and filter etc. So I could not answer these questions satisfactorily. Here I learnt my first lesson that you need to know you subject before going for an interview.

I could solve the complex problems by my persistence and problem-solving skill, but these skills are not demonstrable in an interview unless interviewer himslef takes a special interest in forming questions to judge it. It was expected from me that I should know architecture pattern and styles otherwise I would not know there are existing styles and pattern which can solve lot of common problems.

In current context, I would be advising people to learn about the SOA, integration patterns, Architecture patterns like blackboard, pipe-filter etc.

I was asked how do I decide on a design of a class.

I started with my usual gyan of the class should be maintainable, easy to use, flexible etc. etc. But, I could not answer logical questions like "what do I mean by design easy to use class?". 

All this is part of the five basic patterns of OOP and Design which we usually tend to forget while designing the classes.
SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) http://en.wikipedia.org/wiki/Solid_(object-oriented_design)  by Robert Martin.

We may be using these principle knowingly and unknowingly during design but it should be a habit to apply these principles while deciding on the class design.
Lot of tools automate these by refactoing the classes. So we apply these using a tool without knowing the actual intent or what problem did the tool solve for me.

When I am learning something I make a practice of not using the design tools (like eclipse provides) but code moslty using the notepad so that I am aware of all the complexity by manually adding each imports and class method and doing the changes. However, duing the project I use the Visual Desing tool becuase there the motive is to attain the high productivity.
One of the examples to explain the use of principle would be asking a questions like:
Which type of Robot would a user prefer?
A) Robot which comes with a single command like cookPasta?
B) Robot which comes with many basic command like “put pan on fire”, “pour water in pan”, “put pasta in pan”, “add ingredient” etc. And these command can be used to create a bigger command cookPasta?

I think robot (B) is very flexible because I could make him cook pasta, cook rice, cook pulse.
However, Robot (A) is very easy to use because user can give a single command to cookPasta and does not have to know insider methods and other complexity. This also explains about why we should use access scope(public,private,...) of methods .

Hence, Robot (A) is preffered by the users because of ease of use.

I was asked what I do for performance.

I had not done much work on performance. I have been only coding and designing keeping in mind the performance, best practices. So I answered with the caching, clustering stuff but could give the satisfactory answers to the actual measure of the performance like 999 (4 9s), 9999 (5 9s). Or how do I measure and  make changes in my code for giving a required performance.
Clustering is not just  a deployment/adminstration domain but require a careful desiging of the classes and strategy for achieving the horizontal scaling and coding changes for deployment for avoiding SPOF (single point of failure).

This gave me an awareness of the realm of performance, capacity planning stuff which I had been ignoring till now. I went on to understand about little’s law, capacity planning using for response time, concurrent users, transaction and about performance testing. A very complex and challenging area for to master….

So my entry into architectural world from designing world was very gradual. It actually pays to take on interviews so as to understand what is expected out a person in architecture and what is happening around in the world even if we are not looking for a job.

Interview actually leads to a meaningful learning and discussion (free of cost) with a master of those fields who actually guide us into our choice of path. He asks us relevant questions about that area which helps us to know what is expected out of an architect and what kind of questions to prepare for. Provided we come out of an interview with well aware of our weaknesses and with broad scope of what my target of next learning should be.

Wednesday, July 28, 2010

Interview Process - scoring sheet with weightage of many areas

Interview Process continued from my earlier posting ...

This blog is in response to the questions from people asking questions like:
• I answered all questions but why did I not got selected?
• I fared well in technical but still could not succeed?
• I was asked managerial questions not related to technical?

Let me explain what happens in a normal interview happens to better understand what is happening and why?

Every interviewer is usually given sheet which he uses for interviewing. This sheet is usually like a checklist which indicates the areas in which the candidates has to be evaluated and scored. This checklist is according to the job description or role for which company is looking for recruiting.

Every area also is given a weight age. This weight-age is according to the role again. Some things like fresher may have higher weight-age in syntaxes and knowledge of language/platform and learning abilities whereas senior developer moving into leader role may have higher weight-age for management, version management, estimation, tools, testing etc.

Soft Skills are also very important. Attitude, Communication Skills, Learning abilities is highly important. So if candidate does not know anything because he has not worked in it but shows a general aptitude that he is fast learner will be high on selection list….


Let me explain more with a fictitious example of a scoring sheet:
Interviewer usually forms his own set of questions to judge each area…

I have put the weight-age at main area level for simplicity but it could be sub-area level. This weight-age is different for different roles and projects etc. Like a project may need more of web programming or some project may need more of Windows programming accordingly the weight-age will get adjusted.

Like for learning ability can be judged by how good a candidate is in taking hints and analyzes a scenarios.

This is just a rough example to give idea of how could a person answering everything right in .Net area gets still rejected. It is also to show that demonstration of soft skills and learning ability can be very important…

So you see Candidate A even with lower technical rating got selected with 900 over 810 because of better rating in other areas and scored over Candidate B.

Sunday, March 28, 2010

How to get Interview Calls

This blog is in response to questions like:
- I am fresher and I have applied at so many places but I am not getting any calls?
- I have been away from industry now I want to enter but not getting any calls?
- I used to work as senior person but after layoff I am no longer getting similar positions?
This is typical questions asked to me at our career counselling site. I will try to answer this question in this blog.

Interview/Recruiting is a process for getting people recruited for specific skills in the company. Lets understand the interview process to understand the how it works.

The Process

Company gets a project which requires specific skills. Project Manager tries to find people with those skills inside the company first. After he is unable to the suitable person from inside company he decides to get the people from outside. He raises resource requisition to HR. In this requition he typically mentions skill required like .Net, C#, Frameworks like openMVC, Nunit, NHibernate, Transaction management ADO.net, tools like studio ...

This is typical copy of the project technical requirments as mentioned by sdome of his team members or as per RFP response. Idea is to get people who have maximum skill matching with skills required and who can be productive from the day one. The HR forwards it as it to the recruitment agency.

Recruitment agency does not understand most of the things written there and start the searching in job portal using those keyworks. Most of the portals allow the keyword search at their site. The search is not very intelligent. The search will be made with exactly same words. If you are searching for .Net you may miss words like DotNet, C#, Vb.NEt, CSharp, etc. though may mean the same things.

The Preparations

So first step is to include in your resume words with all associated meanings so that your resume does not get filtered in this automatic search. More words it matches with in your more chances are that your resume wil be in the shortlisting. So your resume should have words like .Net, NUnit, NHibernate...

So if you are a fresher or away from industry for long then you need to survey industry and look at current available job descriptions. You must find out what is being demanded acrosss industry now. Learn and master it with tutorials, handon pratice. Includes it as project work in your resume, include it most popular "keyword" so you resume gets horlisted. more keyword your resume it matches with more it is short listed. Also include common and de-facto standard tools like Microsoft Studio... .

Idea is to indicate that you have not worked on it but in case they do not get people with exact matching skill which is usually the case; you are next best option. You have already learnt tricks of the trade at your time and could become productive from day one given proper guidance.


If you are already in job and wants to change into other field, you resume should again include words other fields common keywords and terminology. For that you may need to tweak your CV with changing the project description which highlights how you have used the other field technology. Or show how could use the other technology to give a prespective that using the current experience how you have extra advantage. Also learn and master new technology and include experimental projects which shows your awareness of new technology.

Again, Idea is to indicate that you have not worked on it but in case they do not get people with exact matching skill which is usually the case; you are next best option. You have already learnt tricks of the trade at your time and could become productive from day one given proper guidance. In fact you could indicate you also have more skills and you already have experience of other valuable things which would add advantage to project and is better than other person.

In case you are already working as Senior person you need to objectively look at Job Descriptions and figure out what you what to do. Change Resume to reflect how you are suitable for that job. Postion and Job Designation are immaterial because every company has its own hierarchy and job designation.

Banking industry has starting point as Vice Presient, after 3 years people become Director or Asscoiate Director.So it is job description not job designation that matters.

Second Step:

Once you are short listed, next step is you get call from Consultants. You need to be very frank with Consultant about what you want, salary range, etc.

Only after you are convinced about the compnay and job do you move to next step of Interviewing.

Get information about what is being asked becuase consultant are also broker between you and company, it is in their advantage to get you selected so taht they can earn thier money of commission.

Fresher need to be more humble as they interact with Consultsant. They also need to develop a relation with Consultants becuase consultants have information which companies are hiring freshers, and which are willing to take in freshers.

Third Step is Interview itself. 
Be prepared to know what you have written in your resume. Basckup it up with knowledge. Go into depths and prepare. Try to handon to understand more subtle things. Also know more and advance things. Because in interview people may ask anything which you may think is irrelevant but indicates your mastery and awareness.

More on this in another post.