10 ms·
Developer open-sources 200+ hr project after client refuses to pay
- alok-g 15y agoDoes 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 15y agoI 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.
- Sandman 15y agoWithout the license specified, the author still retains the copyright. Just one minor correction: The author holds the copyright regardless of whether the code is released under a license (open source or proprietary) or not. The fact that he is the copyright holder is what gives him the right to release the code under any license (and change the license later, should he wish to do so).
- byoung2 15y agoAfter 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 15y agoWhere 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.
- shaggyfrog 15y ago> Where is a good place to learn the ins and outs of contracts? Law school. ;) Okay, okay. Seriously, besides getting a lawyer and have them draw you up a standard contract, there isn't much you can do to "wrap your head around [contract negotiation] for good" as there's just too much to learn. Some of it comes from experience (you'll start getting a radar for certain kinds of clauses), and there's no quick fix for getting experience besides the passage of time. Specifically, make sure there is a provision in there for getting some of the payment up-front (as grandparent suggests), and specify a late fee % for any overdue bills.
- RexM 15y agohttp://vimeo.com/22053820 http://vimeo.com/22053820 This is a good video about contracts. It's targeted for designers, but I think most of it still applies to developers. I think the best point in the video, have a good lawyer.
- PedroCandeias 15y agoNice! And it applies to all kinds of service providers, really, from freelancers to BigCo.
- dkersten 15y agoWhen I saw the title of this submission, I immediately thought of this video. Everybody should watch this video, at least twice. And never ever ever start work without a contract in place! Also, the magic words to avoid the described scenario are "intellectual property will transfer on receipt of payment". The parents video covers this in more detail.
- startupfounder 15y agoDevelopers blog: http://fredwu.me/post/8254974029/its-year-2011-why-arent-people-more-open-minded http://fredwu.me/post/8254974029/its-year-2011-why-arent-peo...
- gte910h 15y agoI 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.
- chopsueyar 15y agoYou could always copyright and register the code with the uspto for $35 as a collection. I believe statutory damages are $150,000 per infringement.
- dkokelley 15y agoPublicizing 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.
- bmelton 15y agoOn the contrary, I would think people would be be quite inclined to commission this developer so that the work would be done, and then they could just leverage the open source version he releases when they don't pay.
- kenneth_reitz 15y agoDebatable 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 15y agoThe 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.
- deleted 15y ago[deleted]
- MercuryCreative 15y ago
- molecule 15y agoFor 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 http://vimeo.com/22053820
- jpadilla 15y agoOne of the best videos I've seen about this kind of things
- daimyoyo 15y agoAwesome video. Not safe for work, but if you're freelancing, I'd HIGHLY recommend watching it.
- megamark16 15y agoWhen this video was first released I forwarded it to my attorney, who laughed and laughed, and then said "everything they said in that video is true".
- driverdan 15y agoHow is it not work safe? If you can't say fuck at work it's time to find a new job.
- AppSec 15y agoIf you were in a day care center or school, it might not be a good idea ;-)
- jpadilla 15y agoThis is one of the best videos I've seen about this kind of things!
- donw 15y agoFantastic video, but doesn't apply in the case of the OP, who was doing work for a client in China, where the legal system doesn't work the same way. In China, if you have an ironclad contract and no other leverage, you have no leverage. In cases such as this, it's best to take payment up-front for a portion of the work, either in the form of a deposit (for fixed-bid), or a retainer (for hourly work). This means you get money up front, which is nice. More importantly, you get something I like to call fiscal inertia -- namely, if a client has paid once, they're far more likely to pay in the future.
- robtoo 15y agoThe client wouldn't pay, so he gives it to them for free anyway?
- danielharan 15y agoThe client likely can't afford to pay anyone to continue (and they should ask for payment upfront now, knowing their reputation). They probably can't maintain it themselves either.
- tsotha 15y agoHe also gave it to the client's competitors for free.
- mbrzuzy 15y agoIt's probably pretty much useless to them if everyone has it.
- dotmanish 15y agoNot 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 15y agoThat'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.
- musket 15y agoIf someone is interested enough in such a system, they can employ him to branch the project for their needs.
- kaffeinecoma 15y agoHe's trying to make the best of a bad situation- he put in a lot of time for which he was not compensated, but perhaps he can get some good PR out of it. Maybe down the road someone else will use his software and throw him some billable hours for customization.
- igorgue 15y agoI love this since it's a Rails 3.1 application :-)
- petegrif 15y agogenius - what a guy!
- yllus 15y agoThe 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.
- latchkey 15y agoI 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?
- clarkevans 15y agoHe 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 15y agoTempting 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 15y agoWhy would excluding his deadbeat client from using the code put him in an unflattering light?
- wtracy 15y agoRight now he can claim the moral high ground, even if he is kind of being a jerk about it: "I didn't get paid, but I gave them access to their work anyway! (I just gave it to some other people, too.)" If you added the proposed restriction, you demonstrate that you will take revenge on deadbeat clients by trying to give their competitors a leg up.
- kaffeinecoma 15y agoBecause it reeks a bit of airing dirty laundry, similar to the guy who added a "my client John Smith hasn't paid his bill, so I'm uploading this message to his website which I still control, in order to publicly shame him" which we saw a few months back. Don't get me wrong- I think he's totally within his rights to (publicly) exclude him from the license. And as a developer who's been stiffed before, I sympathize. I think the restraint he's shown so far in that README is noble, and I hope he gets some good PR (and thus new clients) out of this.
- tptacek 15y agoHe 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 15y ago... 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 15y agoIf 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 15y ago>If the deadbeat client was using his work, he had recourse. Not in China.
- jtdowney 15y agoThat is assuming the deadbeat client cares about following license restrictions.
- apgwoz 15y agoSeems fairly enforceable and easy enough to prove. It just might take a while.
- dotmanish 15y agoYou could have auctioned the project's code. Even on HN.
- shuri 15y agoI 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.
- dfischer 15y agoHoly shit the code is clean. Good job dude. I'm impressed by your .SCSS too. Good quality dev right here.
- jawngee 15y agoMy 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.
- jdavid 15y agoThis should be standard contracting policy, with net terms and in the base contract.
- jeremyarussell 15y agoSeems 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.
- tomkarlo 15y agoSomething 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.
- yariang 15y agoI 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?
- fredwu 15y agoOld Sprockets beta gems were yanked - not a cool way of doing things.
- sean12345 15y agoIn 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 15y agoThe 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.
- Don_Wallace 15y agoAsking 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.
- harishreddy 15y agoFred - 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 15y agoJoin 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.
- mgkimsal 15y agoThis sham agency isn't in New York city by any chance, is it?
- badclient 15y agoI wish(I'm in NYC). They are in San Francisco.
- tjmc 15y agoHave 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 15y agoThis 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.
- KrijgDeMeuk 15y agoI 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.
- vilda 15y agoThis 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 15y agoI 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.
- cyphersanctus 15y agoWhere can we see an online version of his project? The end product.