I never thought about counter offers as "buying my dreams off". For your managers you are probably mainly a resource like the computer you are working on and the coffee machine in the kitchen. For them you are a machine that eats "benjamins" and spits out code. If the code you spit out is good they are willing to feed more "benjamins" and if it's not they throw you away. They don't care about the dreams their printer might have, why should they care about yours?
I think you should understand yourself in this way and you will see that there are also a lot of options for you.
I mean, if you are good enough, that Joel wants to hire you and your old boss offers you 2 times your old salary (I never even heard about such an offer), you must be good enough that most companies want you. So you can still work for Joel later on. You might also be able to work for Google or Facebook (applying would be worth find out about that, wouldn't it?). You can tell your old boss your requirements for your dreamjob and you can ask Joel for the same number on your first paycheck.
My point is, you don't have two options: "money" or "dream". You have a wide range between them and can find out how much you can get of both. Be more flexible, Jason!
I think you should understand yourself in this way and you will see that there are also a lot of options for you.
I mean, if you are good enough, that Joel wants to hire you and your old boss offers you 2 times your old salary (I never even heard about such an offer), you must be good enough that most companies want you. So you can still work for Joel later on. You might also be able to work for Google or Facebook (applying would be worth find out about that, wouldn't it?). You can tell your old boss your requirements for your dreamjob and you can ask Joel for the same number on your first paycheck.
My point is, you don't have two options: "money" or "dream". You have a wide range between them and can find out how much you can get of both. Be more flexible, Jason!