Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I came across this article Work for Free that got me thinking.

The goal of every employer is to gain more value from workers than the firm pays out in wages; otherwise, there is no growth, no advance, and no advantage for the employer. Conversely, the goal of every employee should be to contribute more to the firm than he or she receives in wages, and thereby provide a solid rationale for receiving raises and advancement in the firm.

I don't need to tell you that the refusenik didn't last long in this job.

In contrast, here is a story from last week. My phone rang. It was the employment division of a major university. The man on the phone was inquiring about the performance of a person who did some site work on Mises.org last year. I was able to tell him about a remarkable young man who swung into action during a crisis, and how he worked three 19-hour days, three days in a row, how he learned new software with diligence, how he kept his cool, how he navigated his way with grace and expertise amidst some 80 different third-party plug-ins and databases, how he saw his way around the inevitable problems, how he assumed responsibility for the results, and much more.

What I didn't tell the interviewer was that this person did all this without asking for any payment. Did that fact influence my report on his performance? I'm not entirely sure, but the interviewer probably sensed in my voice my sense of awe toward what this person had done for the Mises Institute. The interviewer told me that he had written down 15 different questions to ask me but that I had answered them all already in the course of my monologue, and that he was thrilled to hear all these specifics.

The person was offered the job. He had done a very wise thing; he had earned a devotee for life.

The harder the economic times, the more employers need to know what they are getting when they hire someone. The job applications pour in by the buckets, all padded with degrees and made to look as impressive as possible. It's all just paper. What matters today is what a person can do for a firm. The resume becomes pro forma but not decisive under these conditions. But for a former boss or manager to rave about you to a potential employer? That's worth everything.

What do you think? Has anyone here worked for free? If so, has it benefited you in any way? Why should(nt) you work for free (presuming you have the money from other means to keep you going)? Can you share your experience?

Me, I am taking a year out of college and haven't gotten a degree yet so that's probably why most of my job applications are getting ignored. So im thinking about working for free for the experience?

share|improve this question

closed as not constructive by Yannis Rizos Mar 27 '12 at 5:39

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

3  
Should I work for FREE? –  Jarrod Roberson Aug 16 '11 at 14:51
2  
Obligatory Mike Monteiro video - F You, Pay me: vimeo.com/22053820, VERY good, interesting, useful, but NSFW with naughty words. –  StuperUser Mar 16 '12 at 13:01
3  
@Adel: I'm not sure what the point of the bounty is. Are the existing answers insufficient? What are you expecting from any new answers? –  Robert Harvey Mar 26 '12 at 19:27
5  
I haven't been so offended by an article in years. –  user16764 Mar 26 '12 at 19:33
2  
@RobertHarvey Caught my eye quicker with the bounty than it would have otherwise ;) –  Izkata Mar 26 '12 at 21:00

21 Answers 21

up vote 82 down vote accepted

No. Never work for free for anyone but yourself. You'll get more out of good open-source credentials and personal projects, in the way of job-hunting, than you will out of working for some son of a b__ who thinks that your skills aren't worth paying for.

Of course, if no one is willing to pay for your skills, you may need to find another career: software development is wide open right now, so (depending on where you live, of course) it should be possible to get a job where you actually get paid.

Pro bono software development is theft.

share|improve this answer
30  
Right at the end of that article, he does suggest possibly working for free for a non-profit organization. That's something that I could get behind. But otherwise, I'm with you: if you want to boost your credentials and are willing to do it for free, work on your own project or an open source project. Don't make money for someone else in the hope that it might make you look good. –  Carson63000 Nov 20 '10 at 11:33
11  
What the article suggests isn't just theft, it's voluntary slavery. –  World Engineer Jul 31 '11 at 23:35
2  
+1 for the "some son of a b____ who thinks that your skills aren't worth paying for". Had my share of that and the "son of a b____" actually had the nerve to say he did me a favor. –  user7197 Sep 17 '11 at 18:07
1  
i've read that it may be an 'ok' idea to work cheaply for one project on elance or odesk and explain that you are lowering the price in order to get a good reputation. I'm not sure how I feel about that though. Haven't done it. –  Lyndsey Ferguson Mar 26 '12 at 19:54
1  
It seems most people are missing the point. This certainly doesn't apply to experienced people, but most new-grads don't even get considered because they have no on the job experience. So, if they volunteer to work for free, they will gain some experience. They then can put it on their resume. Now they have real on the job experience. They don't have to mention that they worked for free. It is definately a strategy to get your foot in the door. Whereas, if they put that they worked on an open source project, that isn't much better than saying I worked on a home project. –  Dunk Mar 26 '12 at 22:15

What do I think? This article sounds like class warfare propaganda. The sort of pamphlet a boss would pass around before he announces pay cuts while company profits soar.

I understand the goal of an employer. If they didn't make money employing people, they wouldn't. But the part about the employee's goal starts in the wrong place.

Conversely, the goal of every employee should be to contribute more to the firm than he or she receives in wages, and thereby provide a solid rationale for receiving raises and advancement in the firm.

No, the goal of the employee is to maximize his pay, benefits, etc. (both long-term and short), while putting in the minimal amount of effort and resources to achieve that. FROM THERE you can rationalize that "working for free" be it overtime or straight up pro-bono will secure better long-term rewards, but that's a pretty shoddy argument and it ignores the short term goal. Most companies today have very little loyalty to their employees. Pensions are a thing of the past. When profits slump, layoffs are quick. And if there are problems they'd rather bring in temporary contractors than hire someone full-time. Unless they contractually owe you for your extra work, why would they reward you? That goes against their stated goal.

The part of the story where the previous boss is the primary decider of future employment is downright tyrannical.

If you need experience to help your resume, contribute to or start an open source project. I've had potential employers request to view my projects. I couldn't show him anything I've done for previous jobs because it was proprietary. My single open-source project was all I could legally show him. And it was * cough * a little rough around the edges.

share|improve this answer

There is nothing substantially different between working for free, working for very little, or even paying to work for someone! You have to decide whether you come out ahead in the end, and if you have any better options. That's all that matters.

While in college, I created a few websites for dirt cheap or even nothing to get experience and to look good on my resume. I could have made more money flipping burgers with the time I spent, but for me, working for "free" was more valuable because it allowed me to earn more in the future. Money isn't the only benefit of a job, so worrying about working for "free" is a red herring.

In the real world, if you're salaried, any time you work above the amount you need to not get fired is time you're working for "free". If you can get by working 35 hours/week, why would you choose to work 45 and get paid the same amount? Are you being exploited? Of course not, you know that you won't get promoted if you don't work hard.

For those who argue that working for free for open source projects or charity is different are wrong. Whether somebody is profiting from your work is irrelevant to the algebra of whether it's a good idea from your perspective. It's irrelevant how much your employer benefits, all you care about is how much you benefit.

The one point to note is that if somebody wants for you to work for free, they're probably going to be a terrible employer, so make sure you factor that in.

share|improve this answer

I read through every answer and this is why I'm adding my own:

  • OP didn't mean will you work completely for free and assuming somehow you have money for gas, food and shelter. The question seems to imply this: If you are salaried (or hourly but capped) and are only paid for 40 hours, would you give your employer anything on top of that? Would you work 50 or 60 hours even though you won't see a single cent (or whatever your local currency is) increase in your paycheck? His example was +11 hours for 3 days = 33 free hours.

  • The word "free" seems to imply money/cash and that is only a small part of total compensation.

So here's my take: to all those people that violently stated "NEVER" would they ever work for free. More than likely that's just a bunch of BULLCRAP. At one time or another all of us have to stay extra 5-10 hours (sometimes more) and finish things up. Would you be doing it consistently for a duration of a full year... that's a different story. In OP's example the guy only did 3-day stretch of extra work. Don't tell me you've never had to work longer to finish a bug or a feature that had to go into some fixed-schedule build.

As for the second point. When I look at my place of employment, this is my total compensation formula (yours should be very similar):

Total Compensation = Salary + Quality of life
                     + Other benefits(vacation, insurance...)
                     + non-financial factors (flexible time, choosing work...)
                     + having fun + learning/gaining skills
                     - management treating me like a "resource"

Ever since I was a co-op I've often worked extra hours but I do not consider that being "free" just because my salary part of the equation didn't go up.

  • While still a co-op, I was promoted to a team lead. Sure, someone here will read this and say, "ha, sucker, you are a lead and doing more work for free". But I've learned a ton of new skills: managing requirements, working with people, driving product architecture and design... list goes on.
  • Every year I've always been at the top end of salary increase range. This pays back for some extra time, which is nice, but doesn't really come close to covering all of it.
  • I love coding. I used to code my projects for free because it was fun and sometimes I do find myself not being able to stop writing code just because it is time to go home. What is wrong with that?? I've written some really nifty things, which my employer ended up using, but my compensation was simply the fun aspect of it.
  • I will put in extra time if that improves quality of life (at work) for myself and my team. I've spent extra outside of normal work hours to ramp up our transition to TDD. I did projects which were not part of "requirements" but saved everyone a ton of time. Sure, I never got financially compensated for it, but if that means I spend that much less time in QA fighting bugs and that much more time writing new code, I'm all for putting in a little extra effort.
  • With the extra hours, if I want to go kayak or go camping for a few days, I do not need to request or even ask for vacation days. I just go. My boss knows I'm gone but it's never been an issue and yeah, I love this extra flexibility. I'd rather code at night and then go to the beach the next morning.
share|improve this answer

I was once in my life working for free: A local company provided a topic for a students project that was mentored by both the company and the school. The company did not offer any payment, since I was a 17 year old kid with not much experience back then. I accepted nevertheless, since the project was rather interesting and I saw it as an opportunity to get experience and contacts. After finishing the project 10 months later, I was asked if I wanted to work for them after finishing school. Since I decided to go to university, I didn't accept the full time position but have been working part time for them every since.

However, I would not work for free anymore now: I do have a bit of experience now even if I've not yet finished university and I'm skilled enough to get paid.

share|improve this answer

I used to be a fresh graduate, with no real job experience and who only thought he knows something. In my country many graduates are in this position. Fortunately for me, programming is one of, if not the only one industry, where unemployment is no threat. Unless you’re over 40, that is.

A lot of my friends are working for nothing or next-to-nothing, only to have anything to show off in their resumes. They are not programmers though. But I've also been there. And IMHO that is okay only if it’s compulsory traineeship, that you have to do to finish your degree. Or I would accept being paid less to be able to learn some new technology, since in starting months I wouldn't be much help. But there needs to be a boundary. One needs to support himself.

I agree with lot of points here. Working for free is like a slap in a face. And usually, if someone gets something for free, doesn't appreciate that. But there are situations, where you can be so desperate that you will agree to anything just to get a job.

share|improve this answer

I think working and gaining experience is valuable. If the only way to do that is for free until you can make money at it, then I think there is room for people to work for free. I think working for free is just as much a service from the employer to employee, as the other way around. (Stated in a post above, so many costs in on-boarding, managing, and training.)

share|improve this answer
1  
@Philip, I hear what you say, but in this day and age, it is possible for the employer to discover a lot about a candidate and figure out technical lies (if any). Most claims can be verified even without the deep technical Q&A - Just hire me for this job :) –  Emmad Kareem Sep 5 '12 at 21:07

Every time programmers with no experience say they think working for free is reasonable, I tell them it's not worth it unless they're really desperate to have something on their resume and have no financial problems above all.
An inexperienced person would probably feel pressured to produce something for the company to prove they are worth something. However, they should face the fact that whenever someone hires someone for anything, they expect results really soon. This might not be enough time to learn about a certain framework or technology, how things really work, etc and both parties end up frustrated. Of course, it might work out alright, but why risk it and end up ruining your reputation? It's always a good idea to take the time to try to produce something for yourself first. That's what I did and it's going well.

share|improve this answer

IMO, Working for free is totally wrong and I cannot even find a good example for that (except for the charity)

I started programming when I was 13-14 years old and I worked for some of my friends (whom were 24-25 years old) and I really have bad experience about that.

share|improve this answer

work for free for the experience and for the reference if you're desperate

better, work for free on your stuff so that you own it

share|improve this answer

I've never worked for free, but have worked almost for free, and can honestly tell you, the less somebody pays, the less they appreciate you.

Besides, you don't need an employer any more, the barrier to entry is so low, if you have a computer and an internet connection, you can start your own company.

If you are willing to work for free, I recommend (in order):

  1. Build your own app (free or for profit) that people need and will use.
  2. Find an existing startup and work for equity.
  3. Start or become a serious contributor to an OSS project you are passionate about.
  4. Participate in a charity you are passionate about.
  5. Participate in an industry association, where you will make legitimate industry contacts.
  6. Participate in a non-profit where nobody is benefiting financially (I have no examples, but suspect many of these are a little deceptive about anybody financially benefiting)

But what ever you do, make sure it's engaging and something you have a strong interest in, otherwise you're going to burn out on a project for which you get nothing.

I would absolutely NEVER recommend you work for free.

... oh yeah, and make sure you get the credit. Your name is on it, and can never be removed by anyone other than you!

share|improve this answer
25  
+1 for "the less somebody pays, the less they appreciate you." –  Malfist Nov 20 '10 at 19:14
5  
I have for a long time made my living by severely undercutting the competition. Once, someone told me "you have such problems getting your clients to listen to you because you undercut so badly. You must charge enough to convey your authority." That was several years ago; suffice it to say that in the time since then I have learned that he is correct. –  Michael Trausch Aug 1 '11 at 2:08

No. If this young man was such a genius, he would made his ẃay anyway. Fact is: working for free is, for obvious reasons, not sustainable. You may get some references, you may get some experience, but it will be a gig of (say) 1-2 months, because sooner or later you will run out of money. Unfortunately, a 1-2 months gig doesn't look too well on your resume.

share|improve this answer

Sort of.

I'm finishing a government contract that a friend botched even though there is no budget left - and I'm doing it for free. There was money in it earlier, and I made some money from the project, but for the past year I've been doing it part-time for free to get the damned thing finished.

A friend I have known for 6 years was over his head with this project, and since it had some interesting things that I thought would help my current job, I helped him on the side. Helping him with his projects is something I had also been doing off and on for about 3 years. Sometimes it is interesting, sometimes same old boring stuff. Sometimes there is money, sometimes, all I get is dinner. Shortly after that I got brought on to the job officially. When the folks at the government agency saw that I was getting the work done, while my friend was screwing around and billing 40 hours for no work (and working 2 other jobs remotely and billing each of them 40 hr/week), they fired him and kept me on. The contracting company then got into trouble elsewhere and decided to foist the contract off onto his longtime friend (but only after all the money in the budget was gone). I had this stupid idea that I could somehow redeem my friend's reputation, and when all the money ran out the government agency was making threats to blacklist the new contracting company. This "new" contracting company only does government contracting, and if I walked away, about 40 people would lose their jobs.

This was a simple conversion of a coldfusion site (which can no longer meet government security standards) to a .NET site. Making a website FIPS and PCI-DSS compliant is a skill needed for my main job anyway. It brings in $250,000,000 in tax revenue per year. There is no dev nor QA environment, so all code changes have to go live immediately. The site has been live for several months, so I'm just fixing bugs at this time. When they admit the site is working to spec, I will hand in my laptop and tell them "don't call me ever again."

I had an idea that maybe as some sort of payoff, since the network admins and DBAs will be retiring over the next 2 years, that I could swing some sort of pay-off from getting hired to replace one of them. As a government agency, I've since found out that cannot happen as all permanent hiring has to go through OPM. And with veteran's preferences (of which I am not one), I don't stand a chance of making it through the initial selection process to get to the interviewing stage.

Also, my initial idea that "hey I made $20k already, that's plenty" was also stupidly naive. Basically, I am married to these people at this agency, and it has been hard pushing back on the boundaries so that they don't call and email me at my day-job which could get me fired.

Working for free is a bad idea.

The customer won't recognize that boundaries exist, the value of what time you sacrificed for them and you'll never be finished. If you've been suckered into fixing computers for family and friends, you've come across this mentality. You touched it once, and now you're stuck with it forever. Likewise, if you own a pick up truck, you're everybody's greatest friend when they need to move something.

I leave this as a cautionary tale to others. If I knew then what I know now, I never would have taken this gig. While my friend (who burned through about $110k of the contract) and the first contracting company (who burned through about $60k of the contract) would have been sued into bankruptcy, perhaps they deserved that to happen. My friend got into a lot of financial trouble (mortgage resetting and going up 100%) and he made a lot of bad ethical and moral decisions to try to save his house. He has basically burned his reputation here in Denver and can't get work around here, so he's moved to the Baltimore/DC area where older contractors are common enough for him to fit in.

share|improve this answer
2  
If 40 people would have lost their job, maybe that consulting company should have paid you inorder to keep their business afloat. You are not responsible for their failure. –  Malfist Nov 20 '10 at 18:50
2  
here is a hint, you will never be finished with these people and this project, ever, not in a positive way. –  Jarrod Roberson Mar 20 '12 at 16:51

When I graduated my resume was fairly sparse. Whilst looking for my first job, I approached a local charity and built them a web site.

Doing this had many benefits:

  • Firstly volunteering your skills for a good cause feels good
  • It was a valuable addition to my portfolio/work experience
  • I gained valuable experience
  • I had additional experience to discuss in subsequent interviews for paid jobs
  • The charity also nominated me for the Volunteer of the Year Award (I didn't win it :) ), but even the nomination was good addition to my resume

I'm glad I did it.

I would have been less inclined to work for a company for free, but it depends on the organisation. You have to weigh up whether offering your services for free with the chance of a good job/career is worth risking your time.

Contributing to open source projects, or even starting your own, is another good way to hit many of the points I listed above.

share|improve this answer
10  
Gaining experience when you have none is the only valid reason to work for free –  Robert Harvey Nov 20 '10 at 18:37
5  
+1 For helping a charity to gain experience, rather than a commercial venture. –  Programming Enthusiast Dec 13 '10 at 15:19

People regularly offer to work for me for free. (Explaining their reasoning just sounds like bragging, so I've removed what I wrote. Let's just take that as a given, ok?). I ALWAYS refuse.

Even if I don't pay a salary, taking someone on costs me in both money and time. Here's what I write to people who email me making this offer:

We never take on volunteers: everyone who works for us is paid. Taking on a staff member involves expenses for hardware, software, office space, management time, training, and so on. Putting a new staff member on a project may slow that project. Before we take someone on we need to be convinced they will contribute at least as much as all those costs. If we are convinced of that, paying a salary is no problem. If we're not convinced, not paying a salary is no help.

I have to tell you what to do, check to see if you did it ok, fix it up if you didn't, train you on how to do it our way, pass on feedback (good or bad) from the client, and so on. An employer who won't take you on for a salary but will for free probably hasn't thought this through.

share|improve this answer

I am currently working for free to gain experience and I don't mind working for free. I get to do something I really enjoy and will have a finished product I can call my own (my own projects always seem to stall). The problem can become the spouse/significant other. There have been a number of times where we get into arguments because I'm spending many hours doing something that will not pay out financially.

share|improve this answer

This cuts across industries, but working for free might seem like a way to gain experience and earn goodwill, yet often enough ends in bitterness and resentment when the parameters of work aren't clear. I've seen too many people do a favor and develop a simple website for friends, or colleagues, only to witness their relationships deteriorate because of unrealized expectations that the website would be further developed, supported, etc...

The point isn't that doing the work in and of itself for free is bad, but that working for free usually means working outside of a clearly defined scope. Contracts and employment agreements are invaluable resources when things go wrong, which they often do. When you work for free you're working in a realm of colliding and sometimes contradictory expectations. If you are considering doing it, and the project or opportunity seems worthwhile, I'd suggest you draft up a scope of work, or some document to which you can refer back to if your time starts being taken advantage of.

share|improve this answer

I'd answer your question with questions.

What do you expect to get or achieve in return for the free work?

and

Can you get the same results in a more cost effective or reliable way?

In short, if you can program, someone will employ you. If you don't know how to program, then no company will want you around stopping their programmers from delivering.

share|improve this answer

I was able to tell him about a remarkable young man who swung into action during a crisis, and how he worked three 19-hour days

However, if this "remarkable young person" instead worked six 9-hour days and billed them per hour, I am sure he wouldn't get such "remarkable" comments. Each and every employer tries to get as much free lunch as possible.

I had an employer who made a big fuss about me taking a half a day off for a private event, even though I regularly did overtime without being paid for it.

I once had a guy literally call me a "genius" because he was trying to get me to make him some software for free. Of course at the risk of not being referenced as a "genius" (yeah, right) to other employers by this guy, I refused.

If you need a reference, why not develop a project on your own and show it to potential employers (I mean those who can actually pay a decent wage). Plus you keep the IP rights and don't have to go through the hassle of working with a customer (requirements change, etc).

share|improve this answer

There is nothing wrong with working for free, given a specific objective, of course. That's how I got my first programming job, by letting my potential employer know what I was capable of. I was lacking a degree in anything, so I could not very well simply persuade someone to hire me.

However, as with all things, so it is with this: Moderation will serve you well. It's up to you to decide whether you're obtaining experience, demonstrating your work, or slaving unnecessarily. I would propose that you work for free for a limited time, and then consider discussing your performance and your fee with your employer, if it's possible.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.