Three years ago this May, I quit my job and started being an independent software developer doing contract work. I decided that I was tired of my IT job and wanted to go back to writing code all the time (which was a change from a year and a half before that where I was tired of writing code). Working for my last company made me realize that I no longer wanted to work for anyone else and I wasn’t going to work for a large company again (I worked for Qualcomm at the beginning of my career. I wanted to be in charge of my work and control my own destiny; I believed that I could only accomplish this being self employed.
About six months after that, I was offered a full time position with eBay and took the job. This, of course, went against me not working for someone else and not working for a large company. Many factors went into the decision, one being getting to work with a lot of really good people; something I hadn’t done in years (I had worked with good people, but only a handful).
One of the keys to job happiness, I believe, is good management. Management has to balance overseeing employees with giving them the freedom to do their jobs. I’ve been quite lucky to have a manager that does this well. I’ve also been giving the opportunity to work on a number of projects and put my finely tuned skills to work. While I’ve had some difficulties on some projects, my manager has helped me through them and put me in a position that some say is enviable. At the moment, I control a lot of what I do; based on high level goals, I get to decide what to do on a day to day basis. This is what I believe I wanted when I told myself I wouldn’t work for anyone else again.
As for the large company, I work in a group that is fairly small and almost acts like a small company so I don’t feel like the big company is constraining me.
I’ve come to realize my flip flopping on not wanting to write code and then write code has to do with a good mix of work which I haven’t had until now. I was either writing code all the time or not writing code at all; I’m now in a position that I get to write some code, but I also get to do other things such as think about high level application architecture. If I want to write code, I have the flexibility to do that.
So, while I’m not saying that this is the perfect job (there is no perfect job), I’m quite content and plan on sticking around for awhile despite the constant recruiters contacting me from companies whose products you use everyday.