No, I get the point of the post. I disagree with part of it, and I object to its tone.
The notion that you will do just as good with a software job in Zeeland, or Grand Rapids, or even Ann Arbor as you will in a major metro area is simply false. Below some threshold, you will do worse in lower-populated areas than in larger ones, because of labor mobility issues and reduced competition. Employers in small cities get better deals than employers in larger ones; that is, in fact, a good reason to start a company in a smaller city.†
I cited Chicago because it's less than an hour and a half away from Zeeland. You could do just as well in Indy, in Cleveland, Minneapolis, or Des Moines.
My tonal objection is simple: Spolsky was dead on in this post. If you are a junior developer in a back office job at Herman Miller and you are asking questions that indicate you're trying to do career planning, you need to get the hell out of Herman Miller and into a real software shop. They're all over the place in the US, but, sorry, they're not so much in Grand Haven or Davenport or Carbon County, PA.
† Just to head off a tangential debate: if you're at a point in your career where you're asking how to impress your boss, starting a company is probably not your best next move.
Well, fine, let's all move to a major metro area then; what's the population threshold it needs to be above in order for it to be worth considering? Sheesh.
I'm in no position at this point to debate the macroeconomic benefits or handicaps for software industry employment in different locales, but it seems ludicrous to state with such authoritative certainty that "real software shops" can't be found in whatever towns and smaller cities you'd like to cite, presumably just because they're not big enough or not renowned enough to make the shortlist.
Regarding tone: I think Spolsky's intended point was absolutely correct, but the narrative was littered with entirely unnecessary backhand comments related only to geography and not Ashton's prospects therein. This lines up nicely with all sorts of "advice" doled out on the interwebs about how you've just gotta be in one of these 12 (or whatever) blessed cities if you're in software, and surprised and sideways derogatory comments that are made if you're not. If it sounds like I'm somewhat pissed and sick of the drumbeat, that's because I am.
Grand Rapids is a moderately big city. But if you're picking cities, it's too small to target for a software dev career.
Ann Arbor is slightly smaller than Grand Rapids with a much better ecosystem for software developers. I had the pleasure of working there for 4 years. My advice is, if you're picking cities, don't move to Ann Arbor unless you're starting a company and can afford to do that serially in Ann Arbor (it's hard to consult there!) or are prepared to move when your company fails. There are, like, 4-5 companies within commute distance of A2 that can hire you, and they all know it.
Don't move to Detroit. You'll be eaten by packs of wild dogs.
Milwaukee is much bigger than Ann Arbor or Grand Rapids. But you'd be hard pressed to find someone advocating it as a good town to build a career in. Lesson to learn: the smaller the metro area you pick, the more important it is that the area be on an upswing and not a downswing.
Chicago is a big city. So is MSP. It's not insightful to say "go work in Chicago" since, as your post points out, "big cities aren't a salve for your career" (pphrase).
Madison, WI is about 3x bigger than A2 or Grand Rapids. Madison is, by comparison to most of the major metros in the US, a small town. But it has a great ecosystem of developers, a university culture, and lots of employers.
So let's go for cities like Madison. Madison is my threshold. There's an answer. Feel free to debate it, but let's not handwave; I'm not making an abstract point here.
I think attributes of a town are more important than size. I live in a 30k population town (Northampton, MA), but we have a college (and others in neighboring towns) and great culture, restaurants, etc. The downtown is extremely walkable and has a music/bar scene. I know of a few great software companies in town or very nearby (e.g. cemerick's company). The best developers would have no problem finding a good job here -- my company has no problem finding great developers.
We may have fewer developers and companies, but it's the ratio that matters. When I lived in NYC, I could identify great developers, but the competition for them was fierce. The same went for the best jobs. It was about the same level of difficulty in NYC as Northampton, MA for me to find a great job and once there to recruit others.
Northampton also has the property that Boston and NYC are both within driving distance, which means that, if you just can't find a job close to home, you can go job hunting in either of the cities. That would make a big difference to me if I were considering moving there.
Within driving distance, but not commuting distance. Springfield, MA and Hartford, CT are within commuting distance though. They both have huge insurance companies where you could get an IT job. And both have better jobs than that as well. It's all about how good a candidate you are -- you'll have far less competition for the best jobs.
Ann Arbor is an interesting town. This is where I first did consulting while working for Sycor, at that time second largest employer in AA. One of my clients was local, Domino's pizza. Another was telecommute in Boston, and for a short time, one of the Big Three.
Ann Arbor is a bit unique in that it is at once in the ecosphere of the Auto industry (the EPA measurement facility was at the time there--may still be) and that of the University of Michigan. There were lots of very odd small consulting firms, some very specialized.
Since then, Sycor was absorbed by BNR, Domino's Pizza has grown up (I suggested to the owner that he get himself a computer department). And most relevant personally is that one of my clients, based in Chicago, became a FTJ.
Both Madsion (Go Badgers!) and Ann Arbor have major universities, which probably spurs the developer culture. It isn't just size that matters. Of course, Silicon Valley has Stanford and Boston has both Harvard and MIT which is part of what makes them strong.
Madison has two things: a sizeable metro area with diverse employers, and a tech university culture. Ann Arbor only has one of those things, because the "diverse employers" belong to Detroit Metro instead of A2.
Indianapolis does not have a notable tech university culture (I hope I'm not offending Indy people with that), but it's large enough that it's employer base affords opportunities to be selective about jobs. I've never seen anyone recommend Indy as a good place to start a tech career, but I'm agreeing with the original article: it's doable in a city like Indy.
It's not doable in Grand Rapids, I don't think. I know people who live in GR and they're happy and they've put down roots and it seems a lovely place to build a family, but setting up shop in Grand Rapids is unlikely to be your escape from dead-end coding jobs.
While you're right about Madison's culture, I couldn't find crap for work there. MPLS has been much, much better to me.
The tech community there is much too insular: web jobs are nonexistent and everything else is pretty much biotech or through the university (Masters degrees then are a minimum requirement). I say this having interned around the town at a top design shop, with no workable industry contacts resulting from.
I have an in-law who works in the Grand Rapids area for sourceforge. He telecommutes. If you limit the scope of this discussion to exclude telecommuting then your right. However, thats not your only option.
The only think I know about Michigan towns is what I read on Wikipedia and see on Google, so you have me at a distinct disadvantage. Totally FWIW though, a stupidly quick googling (http://www.google.com/search?q=software+ann+arbor) reveals a fair number of software companies doing stuff from factory floor automation to RFID to iPad apps to circuit design to network management and analytics. Your "4-5 companies" phrase was surely hyperbole, but it would appear that there's worthwhile stuff going on in Ann Arbor. ("Worthwhile" being entirely subjective, of course.)
Besides that, all I can do is offer my own anecdote. I started Snowtide in 2001, failed badly (via circumstances and my own stupidity), resurrected it in 2004, and it's been profitable ever since. Bootstrapped from the beginning (the products we sell and the problems I'm interested are largely of little interest to VCs), we've grown (and shrunk -- last year was not fun) in Western Massachusetts the whole time. While we had offices in Northampton (pop. 28K according to Wikipedia), we hosted a series of talks; Rich Hickey came in 2008 (http://cemerick.com/2008/03/21/western-mass-developers-group...), and Ben Fry in 2009 (http://cemerick.com/2009/04/28/snowtide-informatics-welcomes...). We regularly had showings of over 30 @ 7PM on thursday nights, and closer to 50-60 for the Hickey and Fry talks (something that I know fairly popular groups in Boston and NYC have trouble pulling off) -- all remarkably pleasant, talented people doing interesting work, either for other local companies or as telecommuting contractors.
Perhaps it's the universities and colleges in the area that make it work – it's Massachusetts after all, so you literally can't drive for more than 10 minutes without passing another one.
In any case, when I hear people say (or, more typically, imply) that vibrancy in software community and opportunity is somehow naturally limited to specific geographies, I get a little irritated: that attitude might keep someone else (more like, many someone elses) from starting a company or taking a job in a locale that isn't on the "shortlist", even when locale isn't relevant to their success.
I grew up in a small town in the Connecticut countryside. I now life in the SFBA. Why? Because there are no software companies in my hometown. None. Zero. Zip. Nada.
I briefly had a computer-related summer job in my hometown, changing backup tapes and inventorying hardware for a local racing school. They were in the process of trying (and failing) to replace an antiquated event booking system with something new. I might have managed to finagle an actual programming job there, doing the job that their existing contractor was failing to do.
Of course, I'd have been working alone. Instead, I moved to California. In the years since then, I've worked with and learned from many amazing people. I'm ten times the programmer I would have been if I'd stayed at home.
Are there software jobs outside the SFBA, Austin, Seattle, Boston, and the other big hub cities? Of course, and if you find one, good for you. But if you're sitting in a dead-end job in a city with no better prospects, your only choices are to stagnate or to move. And if you're going to move, there's much to be said for going where the jobs are.
I think you missed the point of the post.