

Developer open-sources 200+ hr project after client refuses to pay - audionerd
https://github.com/fredwu/angel_nest

======
byoung2
_After spending 200+ hours developing the system, not a dime has been seen or
given_

Freelancers should always try to get at least a deposit upfront. When I was
freelancing, I would get 100% upfront for projects under $500, 50% upfront for
projects between $500 and $2000. For projects over $2000, I would get 25%
upfront, and then set milestones with payments attached. I had a $7500 project
once where the guy made the first 25% payment, I completed the first milestone
(graphic comps and UX flowcharts) then he disappeared for a year, not
returning phone calls or emails. He then contacted me out of the blue and made
the second payment, and I completed the second milestone (HTML/CSS/JS coding),
and then he disappeared permanently. Clients like these are exactly the reason
you need to get some payment upfront.

~~~
thebigredjay
Where is a good place to learn the ins and outs of contracts? Is there a
comprehensive website or book that you can recommend? I am early in my career
and have been on both sides of writing contracts. While I am figuring a lot of
things out as I go it would be nice to sit down and wrap my head around this
for good.

Also, to the OP, is a few weeks really enough time? If those were 200 billable
hours it seems like it's worth a tad more hunting.

~~~
vaksel
contracts usually aren't worth the paper they are written on. Because even if
you win in court, it doesn't mean the guy will pay you...you'll still need to
chase after the money.

~~~
stel
Contracts are useful for spelling out the rights and responsibilities of each
party so there are no misunderstandings later. But I agree with you, if the
person you're contracting with doesn't want to pay you, you may well waste
more than the contract is worth trying to get your money.

~~~
tptacek
If your client ends up not using your work product, either because their
business falters or because they reject your work, you stand a good chance of
not getting paid --- contract or no contract. That's life in the big leagues.

If your client ends up using your work, your contract is going to end up
plenty enforceable.

If your client ends up using your work and you don't have a contract, don't
expect to get paid this year, and expect a painful obstacle course of
unreasonable support demands. They'll pay you eventually, but since you've
reduced the worst case outcome to "amount we agreed on" from "treble damages
and site downtime", they have every incentive to drag things out.

------
molecule
For those who would like to avoid this situation, Mike Monteiro (@Mike_FTW)
has humorously useful advice for contractors:

F*ck You. Pay Me. <http://vimeo.com/22053820>

~~~
daimyoyo
Awesome video. Not safe for work, but if you're freelancing, I'd HIGHLY
recommend watching it.

~~~
driverdan
How is it not work safe? If you can't say fuck at work it's time to find a new
job.

~~~
AppSec
If you were in a day care center or school, it might not be a good idea ;-)

------
tptacek
He should have AGPL3'd this code, and put a standing offer for a royalty-free
unencumbered free license to anyone who contacts him directly. The net result
would have been the same, but his deadbeat client wouldn't get the code for
free.

~~~
pilif
... because the AGPL would for sure stop them from using the code without
giving anything back considering that they didn't even pay the author for his
contract work.

~~~
tptacek
If the deadbeat client was _using his work_ , he had recourse. It might take
forever to chase his money down, but it's much easier to shut a site down.

By releasing the code under a permissive license, he gave up that recourse.
His client's right to use the code is now a grey area. Technically, he has the
same recourse in court as he did before; contracts. But he's severed the
connection between that and the deployment of his code.

I'm not expressing nerdly outrage at how he did it. I'm simply suggesting a
tactical refinement for the next person who decides to dump dox to Github when
a client doesn't pay.

~~~
alnayyir
>If the deadbeat client was using his work, he had recourse.

Not in China.

------
clarkevans
He could have been a bit more vindictive, perhaps a non-osi compliant license
like:

"This code is licensed under MIT license with one exception: for 5 years, this
license excludes any use which benefits directly or indirectly the current
owners of UnPayingCompany, Inc. On Aug 1st, 2017, the license for this code is
MIT without any restriction."

~~~
kaffeinecoma
Tempting and amusing, perhaps, but it wouldn't exactly put him in a flattering
light as a contractor. It might even scare off potential future clients.

I think he's doing the right thing by releasing it as OSS. Hopefully he'll
pick up some support hours if anyone actually ends up using it.

~~~
tptacek
Why would excluding his deadbeat client from using the code put him in an
unflattering light?

~~~
kaffeinecoma
PS: I once got stiffed for $6500, so I put up a "client hasn't paid" notice on
the (demo) website for my code. I later learned that the guy I was accusing of
non-payment was very likely a stolen identity. Some guy from Eastern Europe
was using many fake identities and scamming lots of developers. So I ended up:

1) out $6500

2) feeling dumb for getting cheated in the first place

3) feeling bad for having pseudo-publicly excoriated a likely innocent

I wish in retrospect that I had taken the higher ground, open-sourced the code
and just moved on.

------
dkokelley
Publicizing your work may be a fun way to 'get back' at an nonpaying client,
but is it good for business? Would the professional thing to do be to simply
drop work on this client and move on, or is any publicity good publicity for
the coder?

This is damaging to the client. Yes, they may have deserved it, but will
future clients be discouraged by this behavior?

 _Edit_ : To be clear, I'm not saying the coder was in the wrong in any way.
That is to be determined based on whatever agreement existed between the coder
and client. I'm asking if as a business decision it was wise to release the
work. The client now has all of the work, and there is no possibility of
reconciliation.

~~~
kenneth_reitz
Debatable that it's bad for the client, since he didn't disclose who the
client is.

It sounds to me like the guy was trying to scrape together funding while he
was commissioning a developer to work on his "great idea". I was almost caught
into a same situation once.

I'm vary wary of anyone who calls himself an entrepreneur.

~~~
dkokelley
The client's name doesn't need to be released for this to be damaging. This is
work that the client wanted (and maybe already received beforehand). Now it's
publicly available. It dilutes the value of what the client may have had. It
may open the door for competitors.

NOTE: I'm not saying the client doesn't deserve any of the harm this may
cause. I only want to show that there IS a potential for harm.

------
robtoo
The client wouldn't pay, so he gives it to them for free anyway?

~~~
mbrzuzy
It's probably pretty much useless to them if everyone has it.

~~~
dotmanish
Not necessary. If you had the source code to FaceBook, most likely you won't
be able to do much of it.

The one who is focused on running a business on it - yes, would make a lot of
it. Irrespective of who else has the raw code.

~~~
mbrzuzy
That's true, but the whole idea was to enter a market with very little to no
competition. You would have the advantage with being unique. However, entering
a market with 12 other people with the exact same product wouldn't be ideal.

------
dfischer
Holy shit the code is clean. Good job dude. I'm impressed by your .SCSS too.
Good quality dev right here.

------
startupfounder
Developers blog: [http://fredwu.me/post/8254974029/its-year-2011-why-arent-
peo...](http://fredwu.me/post/8254974029/its-year-2011-why-arent-people-more-
open-minded)

------
alok-g
Does someone know under which license is this released? Could not find this
anywhere. Without the license specified, the author still retains the
copyright.

Also, assuming this was a work for hire, not sure who the copyright belongs to
(the author or the client) given the non-payment.

~~~
mmahemoff
I wish people would include licenses even on first release, and Github could
help with this. It's probably one area where Google Code has an advantage, by
making the license explicit metadata.

I've generally had good results from mailing the creator when there's no
license mentioned - they usually didn't bother and will add a license, and
often quite flexible about which license.

------
jawngee
My standard contract terms:

* Deposit required, typically 25%, depends mostly on the estimated length of the project.

* Payment on milestones (typically first beta and completion, possibly more depending on length of project)

* I own the IP until paid in full

* 50% kill fee less deposit

Though, honestly, I prefer day rate over project based fees. If I do a day
rate, payment is due every 15 days.

It's worth the $1-2K of going to a lawyer and getting a contract boiler
plated.

It basically boils down to this though: You are in business, act like it. I
don't do favors for clients I don't know. Once we establish trust and
relationships, I become a lot more flexible.

I thought when I started implementing these terms that I would lose business,
and I have lost a few projects because of them, but honestly if they can't
respect the terms, they probably aren't going to respect your work and you'll
be caught in that endless freelance/consultant cycle of hunting down payment.

It's your money though, do as you wish.

------
vilda
This is abandon-ware. I saw a lot of similar projects leaved open sourced
which died quickly in no-relevance. What a difference between healthy open
source project where you get support and bugs fixed...

------
ajhai
I worked on a project around a year back (something like fetch.io, but a
stripped version) and had a deal with the employer that we'll be sharing the
profits that are made from the service. He invested on the servers and the
premium accounts with various file hosting services. I took care of the entire
application. But he scrapped that project even before the beta is launched
saying that the operation costs are more and he see no point in launching the
service and also partly because of the legal issues involved in downloading
and distributing content from other services. After reading this post, I feel
like I should open source the code that I'm not using now.

------
latchkey
I don't get it. So instead of trying to get paid for your work, you give it to
them for free because they won't pay you?

------
gte910h
I suggest incremental payments and a deposit for any work of any size (which
this definitely counts of). We do 20% upfront, 50% on adhoc reasonably
functional demo, and 30% before uploading to apple/releasing code.

My company's iPhone fixed fee contracts state that you surrender all rights to
the work after a (long) term of non-payment and still owe the amount due so
things just like this can be done when people just disappear off the face of
the earth but yet salaries and contractors and artists still need to be paid
for all that time.

------
Don_Wallace
Asking for a deposit for a project does something very important: it pre-
qualifies the party asking for the work in multiple dimensions.

Here's what I mean. If they can get you a check cut for a portion of the
amount of the project, then you just learned three important things about
them: (a) they take you and the project seriously and are committed to your
doing it; (b) they have both the signing and check writing authority to
commission the project; and (c) they are able to control their organization
from their end in order to make the project happen.

If it is not a major corporation and you don't get a deposit up front and you
just start working, then any number of bad things can happen:

\- You find out that they never intended to pay and they consider your demands
for payment a joke. \- It turns out that they are powerless smurfs with no
signing authority \- It turns out that there is absolutely no support for the
project internally

In any event, it then becomes a crap shoot for you. If you get a deposit it is
_possible_ that you may be stiffed on later payments, but it becomes highly
unlikelier by orders of magnitude.

A signed purchase order from a large company should be enough to go on, I
guess. I have always asked for deposits.

------
chopsueyar
You could always copyright and register the code with the uspto for $35 as a
collection.

I believe statutory damages are $150,000 per infringement.

------
tomkarlo
Something not noted: he's turned a negative event (getting stiffed) into
positive exposure for his work with hundreds of HN readers. At least at a
glance, it seems like solid and clean Rails / Ruby code (and I think I've seen
some other commenters noting that as well.) I'd be surprised if this post
didn't result in at least one new client down the road... nicely played.

------
yllus
The only time I've been stiffed on a contract job was, surely enough, the one
time I took the "project manager" I would be working for at her word and
didn't require an up-front payment.

------
shuri
I wonder if he has the rights to use the code himself and/or allow others to
use the code. The code is likely a product of a combination of specs,
discussions, and his own work.

------
harishreddy
Fred - thats an awesome move! Also, just realized that this project is now
literally at the first position in today's trending repos on github.

------
badclient
Join the party. As someone who was recently ripped for $12k+, it's nice to see
folks fighting back. In my case the work I did continues to remain online and
in use by the original owner while I try to get l my client(who runs a sham
design agency) into jail for writing returned checks--and having a history and
a prior conviction of doing so.

~~~
tjmc
Have you considered using a debt collection agency? On the first consulting
gig I ever did, I was owed $10K by a client who refused to pay. After months
of patience, including offers to let them pay off the debt over time I went to
a collection agency and got the lot back in a court settlement less $1k in
fees for the agency (which at least was tax deductable).

I should mention that this was in Australia and I had a pretty solid contract.
So this may not apply to you, but the debt collector took the hassle out of
chasing it up and I didn't have to get involved in the court proceedings. It
might be worth a look.

For anyone who's contracting I'd recommend a few things:

1\. Always have a contract and make sure you get advice before you sign it.

2\. Don't be afraid to change or negotiate terms if you need to. Look out for
excessive IP restrictions and restraint of trade clauses.

3\. If you're doing per-diem work, get signed weekly timesheets. They're a
legal record of work done.

4\. If you're building a product for a fixed price, contractually define
milestone payments and ideally get a partial payment up front.

5\. If a client can't or won't pay at any point, stop work until they do!

~~~
badclient
This guy is _far_ beyond the reach of debt collection agency. He has multiple
active civil cases re: money owed. His _own_ former lawyers have been owed
money to and have obtained default judgement against him and yet _have not_
been able to collect money as of my last conversation.

~~~
jcrites
Was this all stuff that had happened before he contracted with you?

Perhaps the real lesson learned is: check out your clients before working with
them.

------
cyphersanctus
Where can we see an online version of his project? The end product.

------
KrijgDeMeuk
I once came close to opensourcing an applicaton because the client refused to
pay. I was making preparations for the opensourcing, but he came trough at the
last moment.

------
jeremyarussell
Seems to me like this was as good a solution as any. Plus now everyone can use
the code, and I bet the individual who didn't pay will think twice about that
again.

------
yariang
I keep getting a "Could not find sprockets-2.0.0.beta.10 in any of the
sources" error when I try to bundle install. Anyone know what may be causing
this?

~~~
sean12345
In the gem file change the rails version to gem 'rails', '~> 3.1.0.rc6'., then
run bundle update. I also had an issue with the rake gem and resolved it with
gem uninstall rake. Evidently the rake gem gets installed twice or something.
Note, I am using Ruby 1.9.2, rvm.

~~~
sean12345
The project is pretty good but not quite polished. For example the UI could be
improved. There is no indication that anything has happened after signing up
an account other than by checking the server log. The messaging system could
use some work. Entering in a user name for the message recipient is kind of
buggy.

------
jdavid
This should be standard contracting policy, with net terms and in the base
contract.

------
dotmanish
You could have auctioned the project's code. Even on HN.

------
petegrif
genius - what a guy!

------
igorgue
I love this since it's a Rails 3.1 application :-)

