I know this decision may not be popular around here, but I think the quality of advice that I'll get is good, so I'm going to ask for it. I'm a talented programmer who is now considering
leaving a startup and moving back into the big-company fold. My savings are near zero-- that rules out another startup-- and a part of me thinks that a big-company job for a while might not be the worst thing in the world.
I've decided to leave a startup in which I was a founder, although the partnership was always a bit unequal (I'm the youngest and don't have any contacts to potential customers or VCs) and our CEO often takes the attitude of it being a one-man show (i.e. he tends to get "set" in decisions without appeal, he makes shitty comments if we take a long lunch, and we deal with 2-4 status checks per day). I've been treated enough like an employee that my motivation has crashed and I essentially am "just an employee" at this point. I don't have a sense of authorship over my work. At which point, why am I continuing to work for low pay? If the major benefit of being at a startup is autonomy, and I don't have that, then what the fuck am I doing?
It's been almost 3 years, and we haven't failed, but we haven't launched or secured funding yet and "just around the corner" syndrome has been ongoing ever since I started. I don't think our CEO would lie, but I can't trust his perception that things are "just about to heat up" because he's been wrong on that matter for so long.
I don't think, for the record, that our lack of success (to this point) is the CEO's fault, and it's definitely not mine: I'm just a developer. I'd prefer to leave details out, but we expended a lot of energy chasing features for customers who flaked on us, or that would/might appeal to VCs, and hence we are at Year 3 and have a lot of cool code but no minimum viable product.
I feel a bit disloyal and selfish for considering quitting, but I also feel like it's what I need to do. It's my career and I need to be selfish.
I also know that established, large companies aren't held in high regard here and I share that prejudice. On the other hand, I think large-company jobs, even if they don't lead to nine-figure exits, can turn out well. My view of large company jobs is this: sure, the default is to get bad projects and not learn much, in which case one leaves after 8-24 months for greener pastures; but they're great if someone powerful taps you as protege, favors you in project allocation, and makes you a "made man" (or "made woman") in the company. In other words, "startup" and "big company" are just two games with good and bad possible outcomes, with more variance in the startup scenario and, in both, with the "good" outcome being somewhat rare (1/5) and the "bad" being the norm. The career game is just about spinning the wheel, repeatedly, until you actually win. And I think it's time for another spin.
The question: what does leaving a startup-- one that a future employer won't have heard of-- do for (or to) one's career? Is it right for me to expect "career credit" for the 3 years I spent? Or am I fucked in that regard? Strategically, what should I be doing to maximize my chances of getting a decent big-company job? Also, what is the programmer job market like? When I last looked around (2008) it was horrendous. Has it improved?
The overall experience is that it's hard to foresee what workplace factors are important to you. Perhaps the ones you take for granted, but won't be at the other place.
After leaving the startup, I had high hopes for better organized workplace at larger company. Boy, I was wrong.
Untill I took a goot root at the large company, I never imagined programmers and managers could create so many, countless even, artificial problems. Every tool in our toolbox was inadequate, but changing that was next to impossible (decisions taken at the uppermost level). Most people exhibited the ``don't touch it if it works'' attitude that drove me almost crazy. The software would pass the tests but a lot of weirdness was swept under the proverbial rug with copious amounts of special-cased code. Software delivery took months. We were implementing features in an ungainly way, and had no way of reporting a much better implementation of very similar feature was possible on this hardware. The list goes on...
Now I'm happy at a 60 strong company. We aren't a software shop, but a small dev team builds software for internal use, marketing purposes and for our co-operants. We iterate quickly and deliver features in between 3 hours and 3 weeks. Every person in team has vertical responsibility -- oversees all steps of development of his feature. We are in touch with users (both internal and external ones) and work with them closely (that turned out to be an important factor to me I never appreciated before -- I thought I'm a lone wolf, turns out it's not the case).
But the best thing for me: people genuinely like using my software. Feels great! :-)