This is my own personal disclaimer, I don't believe in seeking "fun jobs." I believe in bringing fun into my work environment, whatever the hell it is. If I'm writing Cobol, Java, Python, a book, cooking or mowing the lawn. Find a way to make it a joy!
I also believe that you should make the most of the city you live in.
With that said, I'm in Detroit, having a grand time both in the city and with my tech job. :-D So, go find your best city and your best job!
Care to talk more about this. I know it might seem obvious, but I would really love to hear how you make the most of living in Detroit for instance.
There is an awesome tech scene here too, Detroit downtown is bubbling with a lot of startups, and we interact with the scene in Grand Rapids and Ann Arbor. Lots of tech meetups.
If nightlife is your thing, there are tons of places for that from Windsor, Ontario which is just across the river, to Royal Oak, Rochester, Birmingham, Dearborn.
If you're a foodie, there are tons of great restaurants out here, my favorite are the hole in the wall spots with great and cheap food. Tons of farmer's markets if buying fresh and preparing a meal is yours.
Lots of golf courses, Michigan ranks #6 by golf.com. If water is your thing, there are lot's of waters, boating is big. Michigan has always been the #1 country by boat registrations in the US until California just took over, we are still #2.
Big on sports, we have an NFL team, NBA team, NHL, MLB and of course college sports team, we have Univeristy of Michigan and Michigan state with great teams.
Proximity to other places is not too bad, 4 hrs drive to Toronto, 4hrs drive to Chicago, 3 hrs to Columbus or Cleveland.
Cost of living can be cheap, you can buy a $50,000 4 bedroom house or a million dollar 4 bedroom house. If you are wise and buy in the cheap areas, you can save a lot of money for your future.
Coming from a university where 90% of people go into banking (NYC), and as someone who has never really enjoyed socializing with computer science people outside of work, I prefer NYC to SF. It's nice to leave work and chill with people of a different variety than I interact with all day. No talking shop, just hanging out with friends.
There's no shortage of programming jobs in either city, and the salaries minus cost of living are roughly equal. The biggest difference to me is that SF is a monoculture centered around tech, whereas NYC has a couple different monocultures, banking being the dominant one.
I really despise monocultures in general so I like that NYC has options to choose from. Also, lots of my friends live there.
All that said, I'm now a "digital nomad" traveling the world and switching cities every month. I am 100x happier now than I was in either NYC or SF.
Digitalocean is a good counter example to your stereotype of NYC companies.
That said, Seattle has to be in the running.
Do you want to work on the web or on a mobile app then SF is the place to be. There is also tons of Machine Learning, and infrastructure companies in SF.
Do you want to work in financial services (market related, not personal as much)? Then go to NYC!
Can you be a web guy in NYC or a financial services guy in sf?You sure can, but each is the land of opportunity for a certain category of programer.
In terms of volume of jobs - definitely and as @lazyant mentioned, there's a great support network that comes with it.
If you measure 'best' by quality of jobs, I would agree as well.
Other cities which you may want to check out are Seattle, Austin, Dallas which have a chunk of 'good' jobs as well!
Which compares cost of living to wages to number of jobs.
You have medical and defense that is far from solely represented in the Valley and New York areas.