Job Search Process

Preparation

Write down what kind of job you’re looking for – web application development? Enterprise software engineer? Testing / debugging? Low level kernel programming? Finding out what you want is an important first step and one that a lot of people neglect.

Next, think about what kind of environment you’re looking for. Take into account the size of the company, flexibility of hours, amount of responsibility (both technical and managerial), and level of compensation. Set a hard limit for the minimum you want to earn, and back up that number’s feasibility by doing some market research for the type of position you want. You should also look into the corporate culture by using sites like Fuel For Hire or Glassdoor.

You can find out about average salary ranges on sites such as www.salary.com, www.payscale.com, or www.indeed.com/salary. Another good place for information is the Bureau of Labor Statistics.

Finally, make sure to clean up your social networking profiles (Facebook, MySpace, etc.) and do a Google search on your name to see what comes up.

Networking

It's been proven time and time again - the best way to find a job is still through word of mouth networking. A lot of jobs never even hit the public market, because they are already filled by those with contacts in the company. Take advantage of this fact and ask around! Alumni from your school are usually very helpful.

If someone vouches for your resume, it will be looked upon much more strongly than random resumes from strangers received by the company. Also, your contact usually stands to gain by referring you; a lot of companies pay a bonus to an employee that refers a successful hire.

Job Boards

Job boards are also a great place to look for jobs because they are fresh leads. However, because there are so many different position names for essentially the same responsibility in the software world, it might take some time to go through all the synonyms to find all the suitable positions.

I don't recommend general purpose job boards like Monster or HotJobs because I got a lot of spam and unwanted phone calls when I put my resume on there, usually from weird companies that weren't software oriented or in faraway places. My friends also had similar experiences, so this seems to be a poor choice.

Instead, you'll want to focus on very niche job boards, depending on the type of position you're looking for. Look for groups that work in the same software stack as the position you want; for instance, if you're looking for Ruby on Rails jobs, there are great posts for Rails developers on many of the Ruby User Groups.

Here’s a partial list of online job boards for technical positions:
• Dice: postings are generally more for those with industry experience
• Joel on Software: wide range of programming jobs
• 37 Signals: mostly web based development

I've actually had great success on LinkedIn - there have been many potential employers who saw my account and emailed me inquiring whether I wanted a position at their company, so it's probably worthwhile to set up an account there. My guess though is that in the future, the signal to noise ratio on LinkedIn will worsen and it'll be like Monster, but for now, take advantage of it.

Recruiters and Headhunters

Recruiters usually refer to representatives of a company who works in human resources. They coordinate your job application process and usually have no say in the hiring decision, except if you are unable to meet the company's logistical needs (unwilling to relocate, work certain hours, travel, etc.) Their job is to bring in qualified candidates and serve as the point of contact during the application process.

If you receive an offer from the company, a recruiter’s job is to acquire you as an employee for the least amount of money as quickly as possible. Usually, a recruiter’s pay is linked to the number of candidates signed, so be aware that their interests are not always aligned with yours. You should contact the recruiter for HR questions, but not for technical or work environment related questions. These are best left to the interviewers.

Headhunters are third party professionals who try to match qualified applicants with open positions at various companies. The term "headhunter" comes with a slightly derogatory connotation, so try to avoid the term; the preferred title is "Recruiter" but in order to separate the two types we will use the distinction defined above.

Headhunters earn money only when they place you at a company that pays finder's fees. As a result, your interests and their may not always align. Their goal is to place as many people into as many positions as possible, without much regard to fit. However, they are often a good source of job leads and can give helpful advice, so don't overlook them. Most headhunters will work extremely hard for you if you grant them an exclusive, meaning you promise not to use another headhunter while job hunting. The tradeoff is that using one headhunter exclusively will most likely result in you being aware of a smaller selection of companies.

You should never have to pay for a headhunter's services. Anyone who says otherwise is trying to scam you. Headhunters get paid by the employers when they refer a successful candidate, end of story. Apparently, they get paid a lot, too – they receive on average around 25% of your annual salary if they refer you to a company and you are hired. Some may reach out to you via LinkedIn or your personal website. This could be a good or bad thing depending on how you see it, but I think it's always nice to get a feel for the pulse of the market.

If you do choose to work with a headhunter, make sure that they do not submit your resume without your approval. They will often reorganize or edit your resume as well, so request a copy of the actual resume they are handing out. I've heard of unscrupulous headhunters changing resumes to meet company buzzword requirements, even though the candidate lacked the skills, so ask around for recommendations before selecting a headhunter. A bad one can seriously hinder your job hunt while a good one can give valuable advice and alert you to excellent opportunities you otherwise wouldn't know about; choose wisely. Word of mouth from previous applicants should go a long way, the good recruiters will be recommended highly by satisfied applicants.

Direct

If you find a company you're interested in but don't have any connections to, you can always apply through their website. Most companies have instructions for submitting resumes, so don't be shy. Try to send your resume in PDF format and make sure to scan for viruses. However, this approach is usually a long shot - they may not be hiring. It never hurts to try though!

Timing

Timing is crucial for the job search; because companies only give you a small window of opportunity to accept an offer, you should try to do your applications at the same time. This way you can schedule all of your interviews close together and hopefully receive multiple offers to choose from.

Webfaction is the ULTIMATE hosting platform for any serious developer.
SSH, WordPress, Rails, Django, cronjobs, compile and execute anything.
ProgrammingInterview.com is proudly powered by Webfaction.