Now that you have a rough idea of the kind of job you’re looking for, it’s time to begin smoothing out the edges. Firstly, you’ll need to start making some more focused decisions about the problem domain you find most interesting. A problem domain is a more general classification of the work you’ll be involved in, devoid of specific tools and technologies like the IDEs, programming languages or frameworks you’ll be using. Example problem domains could be: audio/graphics engineering, web development, or game programming, with subdomains such as: low-level audio/graphics engine development, client-side user interface design, and game physics engineering.
A really great way to discover what kinds of domains are available is to have a look at what the companies around you are doing. Even if you don’t end up working for any of them, this exercise can give you a pretty good idea of the types of companies you could work for, and the services they provide. Just as important as finding out what interests you, is finding out what does not. You may have a preconception about your interest in a specific domain, but find by looking at its leading companies, that you wouldn’t feel at home in any of them. Perhaps you don’t share the views you read in their mission statements, or perhaps the products they make downright bore you. The point is, if enough companies within a particular problem domain don’t interest you, it’s likely you’ll struggle to find one that does.
As far as company directories go, I found LinkedIn.com to be the most complete and user-friendly directory on the web. You can start by typing a few keywords that describe your target domain into the search bar, such as: “web development” or “audio engineering”, then filtering the results by “Companies”. There are a lot of other useful filter options available such as: company size, industry, and location, but again, the companies you’re researching here don’t have to be companies you end up working for, nor do they even have to be nearby. The purpose of this exercise is to find the types of companies you’re interested in, not necessarily the company itself.
You may need to adjust your search criteria a couple of times in order to nail down the domain that most interests you, but once you do, pick out a few companies that catch your attention, and start reading into what they’re all about. Open their LinkedIn profiles, follow their website links, and if you happen to come across any open source companies, browse some of their code. As you encounter any interesting technologies and subdomains mentioned on these pages, add them to the list of job characteristics we began in the previous step. If you see them showing up across multiple companies, mark them with an asterisk to note their particular importance. It’s also worth taking the time now to update and filter out any items on the list that you may clarify or change your mind about during this process.