In the hot field of software engineering, a competent programmer wanting to switch jobs will be able to apply and interview easily for at least a half dozen jobs. However, coordinating the speed at which the interview and eventually offer process occurs can be a nightmare.
For example, I interview for companies A, B, and C, all of which I have a serious interest in. Companies A & B move quickly and both have offers on the table within 2-3 weeks. However company C was slow getting into the game and just began interviewing me. If I am interested also in company C, how do I appropriately stall companies A & B for more time without upsetting anyone?
What is the professional manner in which this should be handled? You can't just aggressively push company 'C', but at the same time you can't just tell companies A & B "Thanks for the offers. I need 3 weeks to think it over please."
What is the proper and professional way to handle/coordinate/juggle the interviewing and offer process when pursuing a new job?