If you are a master developer, all I want to say is...
public class KKovacs extends Human implements Developer, ProjectManager {
/**
* Use the contact form below to call this function
* @param you A talented, agile and self managing individual
*/
public void receiveResume(Developer you) throws NoobException {
this.meetForCoffee(you);
while (you.hired == false || you.deserveBetter()) {
Project project = this.everyknownproject.waitForNeeding(Human.DEVELOPER);
if (Collections.binarySearch(this.ourprojects, project) {
you.hired = true;
} else {
Client client = project.getOwner();
boolean response = client.sendResume(you.resume);
if (response == true) {
client.employs(you); // Sets you.hired = true;
project.toSuccessfulProject();
client.toHappyClient();
}
}
}
}
}
Yes, you get bonus points for sending me a better implementation of the algorithm, in the language of your choice. :-) (Even if you don't want to change jobs right now. See, it handles that, too!)