I am 42-year-old very successful programmer who has been through a lot of situations in my career so far, many of them highly demotivating. And the best advice I have for you is to get out of what you are doing. Really. Even though you state that you are not in a position to do that, you really are. It is okay. You are free. Okay, you are helping your boyfriend's startup but what is the appropriate cost for this? Would he have you do it if he knew it was crushing your soul?
I don't use the phrase "crushing your soul" lightly. When it happens slowly, as it does in these cases, it is hard to see the scale of what is happening. But this is a very serious situation and if left unchecked it may damage the potential for you to do good work for the rest of your life. Reasons:
* The commenters who are warning about burnout are right. Burnout is a very serious situation. If you burn yourself out hard, it will be difficult to be effective at any future job you go to, even if it is ostensibly a wonderful job. Treat burnout like a physical injury. I burned myself out once and it took at least 12 years to regain full productivity. Don't do it.
* More broadly, the best and most creative work comes from a root of joy and excitement. If you lose your ability to feel joy and excitement about programming-related things, you'll be unable to do the best work. That this issue is separate from and parallel to burnout! If you are burned out, you might still be able to feel the joy and excitement briefly at the start of a project/idea, but they will fade quickly as the reality of day-to-day work sets in. Alternatively, if you are not burned out but also do not have a sense of wonder, it is likely you will never get yourself started on the good work.
* The earlier in your career it is now, the more important this time is for your development. Programmers learn by doing. If you put yourself into an environment where you are constantly challenged and are working at the top threshold of your ability, then after a few years have gone by, your skills will have increased tremendously. It is like going to intensively learn kung fu for a few years, or going into Navy SEAL training or something. But this isn't just a one-time constant increase. The faster you get things done, and the more thorough and error-free they are, the more ideas you can execute on, which means you will learn faster in the future too. Over the long term, programming skill is like compound interest. More now means a LOT more later. Less now means a LOT less later.
So if you are putting yourself into a position that is not really challenging, that is a bummer day in and day out, and you get things done slowly, you aren't just having a slow time now. You are bringing down that compound interest curve for the rest of your career. It is a serious problem.
If I could go back to my early career I would mercilessly cut out all the shitty jobs I did (and there were many of them).
One more thing, about personal identity. Early on as a programmer, I was often in situations like you describe. I didn't like what I was doing, I thought the management was dumb, I just didn't think my work was very important. I would be very depressed on projects, make slow progress, at times get into a mode where I was much of the time pretending progress simply because I could not bring myself to do the work. I just didn't have the spirit to do it. (I know many people here know what I am talking about.) Over time I got depressed about this: Do I have a terrible work ethic? Am I really just a bad programmer? A bad person? But these questions were not so verbalized or intellectualized, they were just more like an ambient malaise and a disappointment in where life was going.
What I learned, later on, is that I do not at all have a bad work ethic and I am not a bad person. In fact I am quite fierce and get huge amounts of good work done, when I believe that what I am doing is important. It turns out that, for me, to capture this feeling of importance, I had to work on my own projects (and even then it took a long time to find the ideas that really moved me). But once I found this, it basically turned me into a different person. If this is how it works for you, the difference between these two modes of life is HUGE.
Okay, this has been long and rambling. I'll cut it off here. Good luck.
You know, it's hard to believe it, but at some point parents forget what it felt like being a teenager, and senior developers being junior. I know I'm going hard against the grain here, but I think you're better off doing as jblow did, not as he says.
Priority #1: survive, life gets better. In any organization that's large enough to have a pecking order, sh*t rolls downhill. Your CEO meets the customer's CEO and sees some fish on the office walls. He decides that an aquatic theme will increase sales, and passes it on to project management. PMs are slightly bemused, but figure out some web pages that can feature animated fish, and vet the idea with senior developers, who agree it can be done before the next trade show. The senior developer creates the fish_type, group_of_fish and fish_animation tables, grabs a few morsels that are fun to implement (new web technologies, yay!), and passes the rest to you. Congratulations, you're the junior developer at the bottom of the scrap heap! You not only have to deal with all the crap nobody else wanted, but will also explain it as lines of code to your computer. And, after re-implementing several times to address all concerns from meetings you were never invited to, it turns out the customer's CEO had borrowed the office and actually hates fish since choking on a herring bone 32 years ago.
How do you deal with all this? Well, maybe quitting will find you a better job as a junior developer. (Also, maybe an uncle you never knew suddenly leaves you his fortune.) But realistically, the way most people do it is the same as jblow's. You find ways to survive, improve your resume, and eventually move uphill to have more choice in kinds of crap you need to deal with. Sharing your hard-earned wisdom with junior developers will only be the cherry on top at that point...
What you seem to assume is normal is some kind of career hell I would never want to be in (nor have ever been in).
During my first internship at a "normal" corporation, I felt exactly like septerr does now. I can't imagine following the career path most programmers go down, even if it is going to pay well. How did you avoid (or is it even possible to avoid) going through that corporate phase and skipping right to working on something that you may love but may harbor more intrinsic risk?
I have gaps in between every job I've ever held, but those gaps are strategic. In them, I figure out what I really want to do, and whether I have the tools to do what I really want to do. I applied to YC's first class of S05, as I was finishing up college. I didn't get in. I figured that if investors wouldn't talk to me, I'd learn how to do a bootstrapped startup, so I went to work for a bootstrapped financial software startup. After 2 years there, I quit and founded my own bootstrapped startup, this time in Web 2.0 casual games. It failed too. In examining the failure, I figured that I lacked enough real-world experience to understand what the real markets were, I'd exhausted my pool of potential co-founders, and I had this continuing anxiety about how to do software development "the right way" and make programs that scale. So I moved out to California to work for Google Search. I'm on my own again, but I got everything out of Google that I hoped to get out of it (and more!).
If you're doing it right, each job is an opportunity to get a lot more than money. It's a chance to build technical experience, to challenge yourself, to look at how people with way more experience than you make decisions, to understand how an industry works, and to see how an organization fits together.
It reminds me of my favorite quote from one of the best books about building any type of "Professional Services" company:
"The health of your career is not dependent so much on the volume of business you do, but the type of work you do (whether or not it helps you learn, grow and develop), and who you do it for (whether or not you are increasingly earning the trust of some key clients). In any profession, the pattern of assignments you work on is the professional development process - you just have to learn how to manage it."
First, you'll want to become a expert in your company's product domain. This will make your creative flashes much more relevant, and therefore more likely to see the light of day.
Second, start small. Use your own time to create a new tool which you know your team will find useful, and use the opportunity to teach yourself something new while you're at it. After a few successive wins you'll be allowed more and more leeway to apply your creative energies during company time, and the impact of your successes will grow.
Third, don't ask your manager for permission to work on Side Project X, at least not until you have somewhat of a reputation for delivering useful innovations. It truly is easier to beg for forgiveness than to ask for permission.
Lastly, give your colleagues a sense of ownership. People tend to be much more supportive of innovations that they feel they're a part of.
As someone almost as old as jblow who has worked across a wide gamut of different companies from very small to very large, this is sometimes true, but is by no means universal.
You would rationally think that if you are directly improving team productivity, customer satisfaction and the bottom-line that'll earn you more autonomy, but office politics are not always on the same continent as rationality.
You have to remember that if you're not the owner of a company, you have no rights to the products that company makes. Whatever privileges you have you keep by the grace of the owners, and when they change ...
Ofcourse, if you're the owner you're unlikely to actually be able to write code all the time, having to deal with the soft parts of the business. The grass is always greener on the other side I suppose.
My first job was a 16 person company doing industrial automation. I was a first-year CS student. They let me write their TCP/IP stack. Second job, TA at the mechanical engineering dept. They needed visualization software for their work on the European space project. Third one, 10-person company writing one of the very first CD recording tools, with prototype hardware.
I was lucky. Each of them was willing to take what in retrospective looks like a huge risk on me. I was crazy and just said "sure, I can do this" to those jobs. I was learning a lot, fast.
But the beauty was, I had no career to consider. Had I failed, it would've been OK - when you're new in the field, that can happen. You'll have to find a new job, but nobody will be surprised if you have quite a few jobs when you start out.
That's when you take the risks, go for the crazy things.
When you're a decade or two (or almost three. Jeebus!) into your career, it's a different proposition. At that point, you get hired for the experience you bring. Taking crazy risks is something that most companies would like you to avoid. (I'm blessed. My current employer still lets me take risks. I just spent 4 weeks in a code base I never touched before and have things in production now :)
Did I love working on the things I started out with? Not really. But I loved being pushed to my limit. I still do. So how do you skip the "corporate" phase?
By taking a job that's outside your comfort zone. Your own startup or smaller employers are your best bet for that. But there are big companies that let you take risks, too.
Ultimately, it's a balancing act. How much safety in your income do you need, and how much risk are you willing to take? If you can push the risk side, it'll lead to more interesting jobs.
Maybe not exciting, but it never sounded "soul crushing". I never really expected to be having a blast at work; it's just a job. Should I be expecting more?
Starting a startup really sounds like more stress and annoyance than "fun" to me personally, after reading stories of them on this website. Are you sure the "more risk" one is worth it? Corporate programming work really doesn't seem that bad from what I've heard of it realistically, despite how derided it is here. Startups on the other hand sound like killing yourself by programming 13 hours straight every day for some company that's probably going to fail and getting below-market pay compared to the easier and better-paying corporate side.
I do hope you are wrong.
Anything else you get is a bonus.
Far too many people are concerned with the anything else part, and it reflects the enormous privilege we have today in western society.
Some of them are great employers. Some of them are terrible. But none of them will feel like working for a large corporation.
Do the least amount required in your current job to pay the bills, then, on the side, improve your skills. You don't need to climb up the corporate chain and suck dick until it's your dick being sucked.
The "Good HS grades -> Good college -> Good junior level job at a corporation -> stick at that corporation until you get a good senior level job" is firmly stuck in the 60s, 70s and 80s for a reason. The highest salaried jobs in programming are going to kids job-hopping from company to company in the Bay Area, graduating from average colleges (some minority not even having a degree) working at top companies who's HR departments publicly disavow the previously worshiped legitimacy of the GPA (word is, Google HR isn't even allowed to look at your GPA).
I recently glanced over this test Andreessen-Horowitz was giving out to recruit software engineers for some in-house development thing they were doing. In the description for the application, they said : "A resume is a plus, but you don't need to have it."
I know that, obviously, people with college degrees from top colleges have a higher rate of success in the corporate marketplace. Killer resumes and years of experience will likely get you very far. Sticking around at a successful company for a lot of years will likely get you a very respected senior role with really awesome stock options.
But the point is, for whatever very small but still existent minority, 19 year old college dropouts that have done 3 6-month jobs are still getting hired. Which means that a killer resume and corporate ladder climbing aren't hard-and-fast requirements anymore -- the only hard-and-fast requirement is merit. Obviously years of working within a single environment will get you a lot of merit, and obviously Google will start locations in Ann-Arbor and Pittsburgh just cause UMich and CMU are there, but that's just because Google values those areas for their high rate of merit, not for their pre-existing prestige.
And what OP is describing certainly shows that he is not properly developing his merit.
Now, in the 60s through 80s, there weren't really too many resources available to improve your merit on your own. So if you were in a shitty position you mostly just grit your teeth until you got in a slightly better position to improve your merit that involved less teeth-gritting and more enjoyable skill growth, and then used that skill growth to get into a slightly better position, ad infinitum where the base case is your retirement. So the best advice was to stick in a single corporate environment until you stopped being a junior and started becoming a senior because there was no more efficient way to develop your merit.
But nowadays, there are resources aplenty and much more efficient ways of developing merit. It's very easy to get cheap access to field-defining textbooks and online lecture videos and PDFs and ebooks and cheap personal computers with which to tinker around with and yadda yadda yadda, all of which can be done by any reasonably smart and dedicated but unexperienced young person, all of which is a much better use of said young person's time than climbing the corporate ladder until you got a job that didn't make you want to kill yourself.
So it's very possible to develop your skills and your merit without the prestige that you used to need in the form of a killer resume or long corporate history or stellar college grades.
So as long as you mastered your data structures & algorithms, your theoretical computer science, so as long as you mastered programming principles and can really say you're an expert in a language because you spent many man hours hacking away with that language at home, so as long as you know your OO, so as long as you prep up with the plentiful blog posts there are about mastering interviews (even for specific companies -- Steve Yegge has written a couple blog posts about mastering the Google interview, and for specific languages -- and I've very recently come across a very useful and thorough blog for knowing the ins-and-outs of Java for mastering interviews that demand expertise in that language), you can get an awesome job. Even if you never land a interview with Google or Facebook (because at that scale, so many hopeless hopefuls apply and you couldn't possibly scale HR with the rate of applicants, so you sort of have to rely on less-than-perfect prestige requirements like college degree from a decent college or networking with other good companies in the Valley. But I'm saying that the modern age allows for extremely low barriers for finding quality applicants and getting quality knowledge to become a quality applicant, and while there are certain institutions where you still sort-of need to reply on prestige, for the most part the industry is becoming a lot better) , you can definitely land a phone screen with an awesome software shop at least better than whatever shitty position you're currently in, and then you can get the interview after you display competence in the screen, and then you can land the job. And after that, it's all improving : improving your skill with awesome workmates in an awesome environment, and then eventually moving on to greener pastures at ... greener?... companies if it is your desire to do so.
Note that I'm not saying getting a more fulfilling job is easier by any means. Top companies will still only take top people. Just that, as barriers between companies and applicants lower and modern technology makes judgment of qualification more efficient, "top" is going to rely more on merit than prestige. And you do not gain any merit from staying at a shitty job.
Since then I've met some amazing developers who (unbeknown to them) helped me get past the mental block that the OP has described; people who could actually challenge me on a technical level, and who weren't jerks.
Take JBlow's advice, and I strongly advise you to take a month off of work if you can. You need that time to recover, recharge, and take a break.
I've been in jobs similar to OP. Sometimes I didn't agree with what I was asked to do and other times I knew I was being asked to do something simply to keep me busy. Fortunately for me, I had one good job to compare against my shitty jobs so I had a little more perspective. However, it was very easy to see everyone else slowly becoming content with their situation. As jblow said, they're letting their jobs slowly crush their soul and they probably don’t realize it.
I left an industry and a comfortable job to get into tech. I was excited. I moved to a new state. Then I ended up at the worst job I’ve ever had in my life followed by three months of unemployment. I never knew I could experience emotions like the ones I felt during that period.
I would talk with people who were the same age as me and it almost always came down to money. The money is nice here so I'll just do one more year and then go somewhere else. Guess what? They're still there. Another promotion, another bump in salary, and before you know it one year has turned into five. By then, leaving and starting something new has to feel very scary. I realized this could happen to me so I GOT OUT.
It is worth mentioning that you might feel some critical opinions about you. With today’s social networks, people can stay up to date with what you’re doing. Maybe it’s because I’ve only been out of college for two years but if you are the type of person who is actively trying to get yourself out of a bad situation, they’ll perceive you as unstable. You’ll spend your time looking for an opportunity that provides you with happiness and exciting work and they’ll think they’re better than you because of a title they hold at their job with promotions as predictable as holidays.
People have told me I wouldn’t be able to get a job if I kept switching jobs but I haven’t felt that. As long as you’re able to explain why you left certain jobs with valid reasons, it won’t matter - especially to the people who matter. Good employers will respect your decisions if you’re able to articulate why you left and what you’re looking for. Who knows? They may have done the same as you years ago.
Be extremely careful with that! Expectations change, fast, as you age. I keep getting asked about my foolish/unstable years, even a decade+ after.
It is expected of a young professional to hop around a bit... it could be argued that you cannot truly mature until you have seen a couple of different versions of "this is the way things get done around here" meme. But if you overdo it, your perceived value will take a hit and it will take some work to overcome the "unwillingness to commit" perception.
One thing I have observed in this industry is that nobody gets any sound information on how to recruit people; specially how to find and bring in people whose unique strengths will benefit the most to the current team. Under this circumstances, most programmers default to look "people like me, only more so" which tend to form teams with a sort of hive mind.
The relevance to job hopping is that by doing so, you are ruling yourself out of any job whose hiring manager and/or teach lead have had bad experiences with it. Since you do not know what kind of person you will turn out to be by age 40, or what the job market is going to be like at any point during your multi-decade career, it makes sense to not burn any bridges if this can be avoided.
I would not go as far as to say that you should suck it up and keep a job that is making you hate yourself or your art. I had one of those once and barely lasted 4 months there. But if you make an habit of quitting every time there is something to bothers you, you might find out later on that memories are longer than what it looks like at first sight.
There are times in your career though when sticking through a difficult challenge is absolutely worth doing. Flitting from task to task because something is "hard" or because a particular feature is not obviously useful is just as bad. I've seen a lot of programmers who aren't "closers". They can get a project to about 85%-90% completion, but can't manage to finish those last few things to get something out the door.
So the answer, I think, is balance. You need to have a good picture of what you're working on and why. If you don't really believe in the project, or if it's being slowly killed with thousands of absurd changes, it makes those difficult periods really, really hard to endure. In those cases, get out, and get out fast.
OP: If it is at all possible, and I mean AT ALL POSSIBLE, try and find a job that you will be motivated at. There comes a point where you have to take care of yourself in order to take care of others, and it sounds like that point is coming soon for you. If you can't get out (or even just in the meantime), try and do something in your spare time that is fulfilling. It can be programming your own (unrelated to work) project, it could be getting out and enjoying nature, it could be something completely different (writing music and stories are some of mine). If you can't get that enjoyment during your work, try and get some of it on your own time.
Ouch. Took me two years. Six months completely out of work and then the rest slowly building up to full time. My workplace bent over backwards to take care of me, which was fantastic. I don't know where you are based, but you may not be in a country where the employee has this level of protection.
I would agree 100% - don't let it go that far.
I just quit a job because the work was dull, unimportant and consisted largely in cleaning up other people's messes.
I'm replacing it with a job at a company with high values and strong ethics, a profitable and secure business model and it's a company I enjoy. I'll be working on a project from start to finish and code quality will be my driving force.
Quit your junk job and find a situation that matches your principles and values. Do it today.
Of course, there could also be a quagmire of corporate politics and sloth that won't get revealed for months. If that happens, I'll reevaluate periodically and open the door to change.
Even in the best case, I don't expect I'll work there for the rest of my life. 5 or 10 years would be fine and all I look for right now.
[Edit: added more thoughts below]
I think the crux is learning about yourself and what you want out of a job, and out of life. That takes time, it's a nonlinear process, and it's non-deterministic too. Make mistakes (embrace them, not fear them), be prepared for change (keep a few month's worth of cash in the bank), follow your dreams, and do the things you love as much as possible.
And try everything. Live life to it's fullest.
"Everything in excess! To enjoy the flavor of life, take big bites. Moderation is for monks." - Lazarus Long (RAH).
The problem is young programmers tend to be hot headed and emotional about their work. This is anti-professional.
While being motivated is great, and important for big projects, every job is going to involve tasks you disagree with or think are a "waste of time." Part of being a professional is doing them anyway, and doing them without getting bent out of shape about it. That's not a sign that your soul has been crushed or that you've lost your love of programming (or whatever), it's a sign that you're mature and realize that work is work sometimes.
If your job is an unrewarding nightmare and you're miserable, then by all means you should find a new one. I'd go so far as to say if you're unhappy with your job overall, find a new one.
But if you have to sometimes do tasks you don't agree with? That's just normal. If you go running for the hills every time you have to do something you don't agree with you'll never be anywhere for long.
Soul crushed programmer: The project I work on right now is a multi-year monstrosity, many bad decisions outside my control were taken, that I now must clean up… Except I can't, because next release ASAP, and budget, so I must rely on kludges. We also lose time to manual overhead (little automated testing, no automated installs, manual paperwork…). And by the way, much of my job right now is not programming any more. It's more like dispatching issues, customer support, and plan for the next release. I don't like nor am I good at this: I'm a programmer, not a manager or a tech lead.
Manager: I can't pull you out of the project. I honestly don't understand why you're under-performing right now, so it could be just as bad on the new project. Besides, it would be unfair to reward you, since you're under-performing.
Recruiter: You know, any job will require you to perform a few boring tasks here and there. Will you do those when they come up?
Wise old advice giver: You need to grow up and accept the world as it is (and maybe give up on changing the world, or your own situation).
(In case you didn't notice, this was a real situation with real people, and near-real dialogues. I was one of them.)
I think you get the idea: when someone complain about their "unrewarding nightmare" of a job that makes them "miserable", many people will either blame the victim, say it's not so bad, tell them to give up hope already, or use a subtler mixture of the three.
I wish it didn't happen so often.
If your job is making you miserable then by all means, find another job.
But every job has tasks you don't want to do, has projects that you don't 100% agree with the direction of, etc. Every job.
Anyone in the same situation - please listen to the previous comment, this is such spot on advice. You have to love what you do or don't do it, the damage can really be huge. Don't think of 12 years as an exaggeration, I'm 10 years down the line and still recovering. And there have been breakdowns pills and therapy, just because I kept forcing myself.
Pace yourself, do what you love, and try where possible to smell the roses along the way.
If this seems impossible it's just because you're heading away from this goal right now, try to make it your goal. Not money, prestige or cool companies. And as it informs your decisions you'll start heading in the right direction.
I'm not completely there yet myself, but I'm along way away from the soul crushing that got me into a mess and many steps closer to a sane life!
Good that you could ask and share, a lot of these experiences are so common and it's so easy to think we are the problem. It seems to be something that comes with the territory or our general personality type who knows, but it really is common.
And finally, don't forget what happened to Boxer in Animal Farm - he believed any problem could be solved if he works harder ;-)
I've stayed in jobs where I became complacent and stayed too long. When I had finally had enough it was incredibly difficult for me to find something new because my skills were so specific that people couldn't see where I would fit. I will never do that again. If I have to switch jobs several times over the course of a few years, I'll take that over droning away and having my skills atrophy.
One thing that's kept me relatively sane are my side projects. My side projects have also made me realize I won't really be happy until I'm doing my own thing (or at least taking a shot at it). With a family though, I need the predictable income and benefits that a "regular" job provides. I'd love to take a few years off to pursue some of my own ideas, but it's just not feasible for me right now. Or I'm too scared/stupid to figure out how to put myself in the position to pursue my ideas.
It's tough knowing what you should be doing, but not knowing how to get in a position to do what you should be doing.
The OP is a well-known game developer. Game development is very different from application or web development. I've known and worked with programmers who were brilliant but didn't understand that the feature they were working on was necessary for the client in question. That distinction is important; are you depressed because you care about the purity of the product, or because a client who actually uses said product demanded the feature?
It's important because then the question isn't about a programmer depressed, it's about a programmer who doesn't understand the product and for whom it was made, and that is an important distinction.
This is probably true. If you're happy with what you're doing, you're probably (but not certainly) going to be better at it than someone who isn't happy with it, all else being equal.
However, being happy with one's job is not a reasonable goal for most people. Or, to phrase it a little more flagrantly:
The idea that we need to be happy with our jobs is bullshit.
Among the programmers I know, many of them claim to love programming enough that they're happy to do it full time (AND work on side projects!) -- and to them, earning a paycheck is almost an afterthought; it's a nice side effect. The amount doesn't even really matter to them all that much because programming is just so much fun. (This is not a straw man -- I've personally listened to employees at Facebook, Google, and various Silicon Valley startups express this very notion.)
These claims are not easily proven true or false, but I suspect that most of them are false. I think that if a programmer represents himself as anything other than absolutely in love with programming, then they lose a competitive edge.
The truth is, I think, that programming is just a job. It has it's ups and downs, and it's certainly less terrible than many other jobs. Like most jobs, you'll be given tasks that you can't get out of and you just have to learn to deal with.
Not being in love with your job is does not constitute a very serious situation. It's simply a necessary evil for most people.
Perhaps you're one of the lucky ones who likes his job that you do it from a "root of joy and excitement" on a daily basis. But I think such persons are quite rare.
Once, when I was younger, I burned out completely on my club soccer team. I was 100% A-OK riding the pine and playing with blades of grass because I absolutely did not care. The travel sucked, I didn't like my teammates, I'd gotten sick of the coach and I didn't see the point.
Then, once high school soccer rolled around 2 years later, even though the game of soccer did not change one iota, the switch flipped back on and I super motivated again. I just needed a change of scenery (new teammates, coaches, fields, spectators), I guess.
So I'd say if you think things will get better once the current assignment is over, stick around. If not, move on to something that gets you excited. Life is too short to do otherwise.
When I worked in-house, I was massively productive, agencies I've just fizzled out and now feel that boredom and malaise. I've been offered an amazing in-house opportunity that I've been ignoring for a while now, I think this has spurred me to a decision. Thanks again!
Many times I've seen developers getting burned out because their management treated them like factory workers or, worse, cattle. Often what happens is that some of the better devs start leaving and then that creates a cascade where the working environment just gets worse and worse for everyone else (fewer good people to do the work so more work and more stress for everyone else, and fewer coworkers you enjoy working with) and more and more good people leave.
What you say is totally true about working on projects you care about. That's always the way it will be with artists. If you want to work on something that you don't care about, you can, but you won't be able to do so at your full capacity. You'll need to disengage with it enough to keep it at arm's distance, to disinvest much of your self from it. That too can be perilous because it risks becoming disinvested from development as a whole and losing your passion entirely.
I never thought about it that way, but this resonates with me. I recently ended a job at a pretty big company and I often felt like you describe. At the time, I kinda shrugged it off as normal; after all, weren't office jobs supposed to be soul-crushing? Plus, maybe I wasn't that good anyway. Maybe my team leads were right. Maybe this was just my role in the corporate ladder. I joked with my friends about how I was just mooching off the company, how a dog could do my work, but it felt kinda shitty and it was hard to care in that environment.
The difference between that and the passion project I'm working on now is striking. It doesn't feel like work. I can stay up coding until 4, 5, 6 in the morning if I really want to see the fruits of my labor. (And I often do.) I actually look forward to pulling out my laptop. I have enough good ideas to keep me busy for the next few years. And most importantly, I'm finally getting to the point where I can prove myself creatively.
(On the other hand, it was one year of great money for not too much spiritual trauma, and now I can travel the world and work on the good stuff for a couple of years without worry. So for me, definitely worth it.)
This is dead on. Very much reminded me of a slightly sensationalized article I read a number of years ago:
This is interesting to me -- I've been seriously "burned out" at least three times, and each time it's taken me about a month at the right job to recover. We'll see the next time, but I certainly hope/expect it will take a month or less again.
There may have been some jobs out there where I could happily and productively work, but I don't know, because I never encountered one.