I'm a web developer and I've always been doing some personal projects to learn new technologies and keep myself busy. I also did some minor freelance work (create a website for the small association Y, for the artist Z...).
As time passes and I build up my network, skill set and resume, I get a lot more offers that could take more of my time and I'm not willing to be only a freelancer since I need to have to go to work to avoid going crazy and asocial... so I'm asking myself this question: is doing a bit of freelancing while working full time a good idea?
The obvious pros are:
And the obvious cons are:
... but I'm sure some of you are in this situation on thought of it more than I have. So, what do you think? If given a freelance opportunity, should one turn it down because of a full time job?
Maybe there are some kind of freelancing job that I should refuse and other I should accept? How can I tell?
I just started doing contract work on the side. I found out from my immediate boss that my company really frowns on "moonlighting" for software developers as it interferes with productivity, and was told not to tell anyone else.
And I have to say, so far it kind of does interfere with my productivity, since a lot of software development is thinking through problems. The time I used to spend thinking about work problems outside work is now consumed by my contract work, and also sometimes I can't avoid thinking of contract work problems during my full-time work hours.
I am not really doing it for the money (not that the extra money isn't nice) but because I find the contract work far more interesting. But I can't say if it's ultimately a good idea or not. Maybe if you are the kind of programmer who can really divide your time it will be okay.
Check your employer's policies on moonlighting, particularly in areas related to your work. If these are not favorable, you can check your local laws to see if such restrictions are legal, if you're willing to challenge your employer's policies. Bear in mind that if you use any of your employer's resources they have grounds to claim the work and all revenues from it.
As far as the time demands go, if you have too little time you can always raise your rates some. Not too far, or you'll price yourself out of the market, but raising them a little will give you more money and reduce demands on your time.
As your employer I would be concerned if you competed with me, used my equipment, or approached my customers. But if not it is none of my business.
I'm a consultant, and a few times now I've taken on side projects. I don't do it anymore.
Sometimes it isn't that big a deal, but in two cases I found myself spread way too thin and it was a source of much stress. The problem is that software projects are never just 'done' and most people end up needing support.
Make sure you have an answer to how you're going to handle that without letting somebody down - your customer, or your employer.
Or yourself, frankly. To me, my free time is just too rare and valuable these days.
It sounds to me like you've already done some good thinking on the idea. I'd say first you have to figure who you need to please and how much you care about pleasing them. For example there is:
And that brings me to the next point -- you can make a freelance job whatever you want it to be, provided you're not relying on the income. There may be freelance jobs out there that are OK with long deadlines, so that you have the flexibility to get the job done slowly, while work or family takes higher priority.
A customer may be very happy to have you working only a limited number of hours if they know that ahead of time. For some customers, it can be a win-win if the customer doesn't have a lot of money to throw in your direction, they might favor a cheap-and-slow approach. The thing is, you want to be clear. I'd suggest figuring out your limits and then communicating the following before you commit to a job:
If you've got a good rep and you're a good communicator, I think it's quite likely that you'll find customers willing to work under your conditions. Just be sure you keep them in the loop as things change - so that you have a fair balance between life and work.
If all three are a go, then go at it to your hearts content. Remember to keep repeating steps 1 & 2, though. Stop when it's no longer worth your time and energy.
I see that most answers so far have focused, quite reasonably!, on not breaching any contract (or law -- jurisdictions vary greatly!) with respect to your employer's rights -- including some unwritten expectations that your employer may have. Employers' attitudes may vary greatly based on what kind of outside activity you're doing -- for example, some will look benignly at work done to help charities or other non-profits, and/or open-source work, or such things as writing programming books, being active on Stack Overflow or other programming venues, and the like -- perhaps up to the point of benignly tolerating the use of work-related resources for such activities that bring reputation and goodwill but probably not much money (I guess some technical books do make money, but typically it's not much anyway;-).
Employers are less likely to smile and nod approvingly, at the other extreme, if your freelancing is (or is perceived to be) in direct competition to the employer's business (and they're quite likely in such cases to have laws on their side, even apart from plenty of employment documents they've probably been careful to make you sign). Of course, there's a large gray area in the middle. In general, asking your manager may be a good way to get specific information on whether any specific activity would, or wouldn't, get you fired, sued, and/or otherwise penalized (formally or informally) at your place of work.
But, making sure that no official or unofficial penalties will come from your outside activities is just the beginning, of course -- the lack of such penalties is a necessary but not sufficient condition to make such outside activities worthwhile. To make them worthwhile, in addition, you need specific motivations -- such as, such burning passion for programming that you can't get enough of it at work, or fierce love for some specific technology that you don't get to use at work... and/or, a strong attachment to something good that you think will result for your programming, rather than for the programming itself.
For example, say that you'd like to volunteer some hours every week to help at your local soup kitchen -- I don't know of any employer who'd object to your doing that in your spare time! -- and after spending a while volunteering for such duties as kitchen cleaning and serving, you find out that they're spending an inordinate amount of volunteers' time to manually keep track of inventories, donations and warehousing. You consult with the folks managing the kitchen and they agree it would be great to have an inventory-tracking program running on their old beat-up PC, they just don't think there is any such program, suitable for their needs and resources, that's available for free. There may not be, but, if you used to be good at DOS programming, you could make one for them, and they'd love you to. Now what?
Now, dusting off your ancient DOS-programming skills and doing a totally mundane, text-screen inventory management application for the soup kitchen is definitely not the sexiest programming work in the world -- but then, neither is serving food and cleaning kitchens, but, they're no less needful and helpful kinds of volunteer work: here, the motivation for your "freelancing" would rather be a selfless one... using your spare hours, that you decide are available for volunteering, in the most effective way to help keeping needy people decently fed. Whether you WANT to do this, just like whether you want to do any other kind of volunteer charity work, is obviously totally up to you, but if that's the way you choose to help your community, I don't think anybody could gainsay that, and I'd be astonished if an employer did (though, again, checking w/your manager is still advisable).
Sure, it IS more work and less "personal life" -- just like any other charity volunteer work you might be doing -- and it would be very wrong to express any disapproval of people who choose NOT to spend any of their time this way, and would rather relax, chill out, spend time with friends... perfectly natural and normal preferences. But, if your choice IS to devote some time and energy to volunteer work, programming may in some cases be a way you can leverage your specific skills to be most helpful and effective in your volunteering.
Other motivations you bring into play, such as learning new technologies, could also be combined with non-profit work in some cases (e.g. you could do the inventory app as a way to learn Google App Engine -- as long as that old PC can run a browser and has net access, that might actually work better than running it locally, AND give you a chance to learn GAE which you might not get at work). Only "making more money" seems to be a desire you could satisfy exclusively with commercial engagements... and I suspect it's also the one that's likeliest to put you in trouble with your employer. Unless you're really hurting for more money (in which case looking for a new job or finding out what you'd need to do at your current one to get a promotion and a raise might be safer and more effective approaches), I do recommend you consider opportunities that can give you "everything except" the "more money" bit!-)
Just to add to the discussion above, be sure to check every document you may have signed with your employer. I once worked for a company that had an obscure clause in its employment contract that prohibited employees from doing outside for-profit programming, regardless of whether it was on work time or using work equipment or competing with the company. That sort of clause may not stand up in court, but I doubt you want to be the one to test it!
Of course you have to turn down any freelance opportunity, if there are any legal or ethical constraints. If you have signed a contract that explicitly prohibits you of doing any moonlighting activity or if the freelance job comes from a competitor of your main employer, you had no option other than denying the offer.
Apart from this obvious bit, I'd like to extend the cons list. For me the most important reason not to take any parallel activities is that job satisfaction will greatly diminish. We as programmers enjoy our job because we are building interesting products and applications, constantly learn new things and fight hard to stay up-to-date with all emerging technologies. Most importantly, we enjoy our job because we are good at it. And if you try to have both a regular job and run parallel activities at the same time, you can't be good at it. The day has only 24 hours and the human mind can stay alert and make good decisions for only a small fraction of it. You also can't be at two places at the same time and you are soon going to discover that this is needed in properly to support both activities. And you may think that getting involved with new projects will increase your knowledge and experience, the truth however is that job fatigue and heavy schedule will prevent you from doing the necessary reading and staying up-to-date with upcoming technologies.
So my advice is, if you aren't planning to move to full time freelancing at some point in the future, it is not worth starting it. You may be tempted to start a "small" or "with a very flexible timeline" activity, but in our business you can never be sure about the duration and effort needed to complete a project.
Running parallel activities for a small period of time would make sense, if you were really considering to become a full-time freelancer in the future. This way you could test your skills and endurance in no-programming activities and make the risk of transition lower.
Perhaps you could also consider the alternative of modifying the status of your current employment. You could discuss if it is possible to keep your current job as a part-time employer or as a freelancer. This way you will be able to start working in other interesting projects without taking the great risk of fully abandoning your current job.
Support is the main problem IMO, your customers will want responsive support in case of problems, but you wont be able to because you'll be at your day job.
Due to the divided focus, you may not perform as well as you could in your day job or in your freelance projects. In the long term, the effect in reputation between being good and being great may compound.
Of course do it, if you have the time and capacity to do it, and it doesn't effect your performance on your day job. Do it.
Many professions, the professional classes, the skilled and semi skilled, politicians (here in the UK) legitamise secondary work, and outwith primary day job, do additional work at weekend and night. For the professional classes, I know one Lawyer who sits on the board of a company as a non exec, out with this day job, and sometimes at the weekends creates contracts, legal notices, etc for other client on the fly. Politicians have been doing secondary jobs for centuries here, working as directors, non execs, business advisors for decades.
For the non professional classes, like plumbers, joiners, and electricians etc, have been doing homers (That is the name of it here in the UK) for donkey's to supplement their primary income.
As regards the question of primary employee contracts prohibiting secondary employment. I don't know about US, but those types of contract of employment restrictions are illegal in the Europe and by extension UK. An employee only owns you for that time, defined as your work day. What you do outwith that is your own time. All yours. Generally employee contracts are never read by a lawyer, but my lawyer read my first one. Apart from case described here, their was a clause that declared that you couldn't work in any location within 100 miles of the busines sdoing same type of job. Utter nonsense. Really designed to try and intimidate the employee.
But there is one limit to it, is that you need to seperate your primary job from your secondary freelance work, and keep them seperated. One problem which has been flaged above, was the question of support. You really need somebody to take support calls and have a nice clean process of ensuring they are handled at a suitable time. Experience counts here, and you find that after a few months, you will get used to boxing your time for particular job, and ensuring it never encrouches on your primary job.
Good Luck dude. Bob.
If you can do it on the side and it doesn't relate to your current employment, in today's economy I don't see why not.
I have been tried to do that, and am trying to work on that again, but from what I experienced, it would really matter if:
a) you have (at times, more than) enough time to allocate to it, as most freelance projects require more than the time needed/agreed, and of course your full time work require your 100% all the time
b) you would need/have to cross the "conflict of interest" line, when employers require your skills to be given/used only for them, which would require you to be willing to do such
there are some more points I could give, but I'd like to keep mine short and straight. you would need to check if the points mentioned matter to you, before you can say it is a good idea...
My instinctive response to this is "Don't do it!" But then I realized I should clarify.
Check your contract with your day job. Most employers enjoin you from directly competing, from using their resources or property (e.g. a work laptop or work patents)
Think more carefully about how much time you're really talking about. Will your free lance clients be happy with no more than five hours a week? Three hours? Counting support?
Why would you be doing this?
How happy are the other people in your life about this idea?
Just a few thoughts.
I would check to make sure the freelancing stays within these three princples:
It does not negatively impact my full-time career (freelance work doesn't occur during business hours, no being too tired from late night coding projects, etc).
The work is not for a company in direct competition with the full-time company.
No private information from the full-time company is used in your freelance (coding or design skills learned on the job can be leveraged, but knowledge of company financials cannot be used to modify constants in your financial prediction algorithm)
I understand that everyone has a different ethical measuring stick and I'm not trying to sell my personal values to anyone else. But my opinion is that if the freelance work doesn't cheat your full-time company, go for it. Don't overlook the fact that you can learn new skills through freelancing that can be directly applied and benefit your full-time job.
Lastly, as others have mentioned, check your company's policies to learn their stance on employee moonlighting. If your freelancing violates company policy, it's up to you whether you want to risk it.
I'm currently doing a freelance project and am finding that even though I love programming, programming for 8 hours a day and then coming home to program some more isn't that appealing. I think having down time is important. I think the experience gained from freelancing is important, but is a not a factor for me since my job allows me to try new technologies.
Contribute to an open-source project.
Most of the pros you mentioned:
And the cons:
Being a volunteer, you can tailor the amount of work you do without the worry of alienating a customer. Contribute when it's convenient, blow it off when it isn't.
The "no money" facet, while a shame, could save you from your employer's ire. Where I work, for example, I cannot engage in any personal work that my employer "could otherwise have done". Since they cannot do work for free, any unpaying/opensource project is fair game.
Also, the impact on your personal life will be minimal, or even positive. It is well-known that open-source developers are a hit at parties.
There are legal, personal, and professional considerations which have already been well stated. I think they can be summed up as:
But, ask yourself what your end game is, define done.
If you're doing it for the extra money, and more interesting opportunities, why do you work at a boring, underpaying job?
Perhaps the goal shouldn't be to find more interesting freelance work, but to find a more interesting full time occupation. The right job is out there, are you willing to find it?
On the other hand, if freelancing appeals to you because you like the dynamic fast paced nature of that type of work, go 100% freelance as soon as you can.
Most of all, be honest with yourself when you try to answer these questions. The reality that work is boring and you need to find a new job can be tough to stomach, but finding the right job is a lot more fulfilling than sticking it out at the wrong one.
You also need to make sure that your employer does not have property rights to the work you do one the side. I am pretty sure that employers can have contract clauses that claim rights to any work you do while employed with that employee. It would be bad if you were selling your services that your main employer had rights to.