I'm surprised no other commenter has brought this up yet but you do realize that short of working for the NSA Facebook is the most unethical job I can think of for a Dev.
Every other week they're being blasted on HN for another ethical violation and everyone comments on how their devs must have known what they were doing when "they did X fucked up thing to Y users", etc...
I'd take the offer to your current employer or literally anyone else you might be interviewing with and tell Facebook to suck a lemon.
I respect your ethics but if I will follow your advise then literally I need to leave my current company as well. We also do some unethical things to increase sales. It is hard to find any company which is totally ethical and ideal.
The FB offer looks like a great opportunity, but if you only stay there a year, you’re designing a resume that will get you labeled as a job hopper and screened out of a lot of future roles at the resume stage.
Whichever you choose - the current job or FB - I suggest you make sure you stay there for at least 2 full years before making your next move, whether to grad school or another company.
Thank you for your guidance :)
Given you have only been at the YC company 2 months you stand little to no chance of negotiating a higher wage immediately, so even if they do entertain it I'd say they would make it a future agreement. e.g. you do x, y and z then they will increase you to a new salary etc.
In general, don't go to any existing employer with another offer and say I am leaving unless. That is a bad move and makes you look bad and leaves a sour taste with people about you. Instead if you like your current employer and want to stay, go to them and say hey, I feel I am worth more and try and negotiate the increase. If they say no, then explain you understand but feel differently. Tell them it may change whether you can stay at that point because you have X goal, but don't say another offer. If they still don't budge then that tells you what they think of you or the companies health. If instead you do it with the job offer as an ultimatum what happens is they may temporarily give you an increase, but now consider you disloyal and will be putting you and every action you take, or day off you take under a microscope and will replace you in short order. If they instead gave you a raise because you negotiated it without putting them over a barrel with another offer then they won't have that same feeling. Also, sometimes when you approach an employer, as I have suggested, they'll ask if you have other offers already, I wouldn't lie, I'd say yes but I am not here trying to back you into a corner, however I have certain goals I want to achieve and needed to see if my opinion on my value would be validated in the market, as they were I was hoping to stay here but be compensated with T....
This said, your manager will have feelings about it, so you want to deal with that. Just be frank with him and manage his expectations: “Obviously I’ll help the transition as much as I can and I’ll always be grateful for the chance, and let’s stay in touch in case you need anything when I’m not here anymore.” Talk to the man, not the company. The company doesn’t care.
Take the chance dude, some boats only pass once. After you have “those” names on a CV, more doors will open.