This article was authored by me for Indian Student' Association newsletter when i was in graduate school at UMBC.
It’s that time of year again. New students looking for a summer internship and graduating students looking out for full-time positions. This article is more biased towards a full-time job search techniques though I will point out optional steps for internship search techniques too.
If you are looking for a full-time job, you can expect to spend roughly 1 month for every 10000 dollars a year you earn. That means expect to spend approximately, 5 months for 50K job. Your job search will consist of various stages
¨ Identifying areas of specialization
¨ Building resume and cover letter
¨ Posting resumes to job search sites and companies
¨ Soliciting interviews
¨ Preparing for telephone and on-site interviews
¨ Acing the interviews
¨ Negotiating offers and applying for EAD card (Applying for OPT)
What are your specialties? What are your top 2-3 skills? Your field of research is one place that you should definitely include. You might be surprised how many companies would be interested in someone with your expertise even during a stuttering economy. Your odds of landing with a job in your research area are better than you might think. For computer science graduates other areas might be Web Application Development, Object Oriented Programming, etc.
A cover letter needs to be included in every job application you send, period. A good cover letter should state the position you are applying for, and it should show one to one mapping of skills you can bring to the company and skills required to be competent to do that job. Always ask for an interview, and don't ask for a job right away. You will be asking for a job during an interview anyways. It also helps to have a professional looking letterhead. If you know the person your letter is going to be read by, use his/her name and designation. It’s important to follow formal writing conventions even though you might be sending it by email.
Once you identify the areas, go through the skill sets required. Can you write code in that particular language without use of a reference book? (Certainly true for C/C++ programming). Are all the skills up to the mark? If not, what can be done to increase the knowledge base? Make milestones to reach desired proficiency. I would suggest not using time-line to determine milestones. More often than not, one tends to allocate more time than necessary. Remember software engineering principle “Time taken to develop takes all the time assigned for that project".
Make a list of project-related information, one line project statement, a 30-second summary (Kind of elevator speech), skills used, number of project members and your role in it. What were the design options faced, why you chose some options, what were the obstacles and what did you do to overcome them. Write it up and save it safely in a folder or writing pad. This ensures you don't miss any points when you talk about your projects with different people.
When writing up a resume, it is imperative it has an objective. Your objective should mention the area and level of position you are applying for. It is often useful to write "To seek a position as a software engineer" than to mention "To seek a full-time/internship as a software engineer". If you have a prior work experience or you think that your project related experience plays as much a role as your formal degree, don't be afraid to put your projects above the degree.
Now you need to post your resumes. You can start with job search sites. Once you finish putting up resumes, don't wait for the telephone to ring. Start applying to jobs in small companies (having 5 - 25 members). The rational is simple, everybody applies to IBM etc. It’s too easy to lose your resume in database. Big companies look for very specific skills, whereas, small companies know that you will be working on more than one thing at a time and you will have to learn new things anyway. More often, small companies want to judge you as a person. Being enthusiastic, systematic, looking at various options and every now and then thinking out of the box helps. It also makes sense to apply to higher up in hierarchy than to the recruiter. Imagine if your resume passes from CEO to CTO to Technical Human Resources Director to HR Manager. HR Manager is more likely to look at your resume with positive attitude.
Now you finally get telephone ringing! Do some research about the company, the recruiting practices etc. If you know what the recruiting process is, the questions asked, and better still why do they ask those questions, you are better prepared for interview. Always ask questions. If recruiter says "Any questions?". Always have 2-4 questions. You can ask about how many people you are competing with. What are the current projects? What are the potential problems faced? What are the common mistakes done by a newly hired in your position? Now you can bet that they won't have time to ans all of them! Remember, by end of each interview your recruiter has to make a decision "Hire or No Hire". If you can't convince them that you should be in, then you are out! Now how can you make your recruiter believe you are indispensable? You should be able to convince him/her that they cannot afford to have you in their competitors company. How can you do that? Couple of ways. One way is to make sure they learn something from you. Other way is if you and he/she connect mentally. If you ask them questions about their projects/ problems and how you can solve them, they have an impression about you as smart, quick thinker, enthusiastic and having ability to take up roles voluntarily. Once you prove that, they are more inclined to hear from you. Always remember, don't think that when you have an interview you are there to answer questions. Imagine that you are meeting an interesting stranger. Both of you want to know more about each other. Don’t be afraid to say, "I don't know". Never ever, blabber. Try to show them how you think you can get ans to the questions you don't have ans currently. Please don't stop applying when you have some interviews going on. It’s too easy to lose time when you start waiting for companies to get back to you after an interview. Don't be disappointed if things are not going your way; re-evaluate your resume/cover letter/ approaches regularly. Ask them for a job. Show them that you want to work right away!
Don't be afraid to negotiate once an offer is made.