If I was a sculptor and a client commissioned me to create a work of art, then didn't want it, surely nobody would fault me for donating the work to a local school instead of destroying it.
It does sound like there was no proper contract between the coder and client, which means there were probably no NDA or IP contingencies, which also explains why the coder was able to work for 200+ hours without seeing a dime. I believe the coder is in the right here. I just wonder if what he did was best for his career. It looks like most of HN agrees that it was.
Considering he release something that he created on his own from SCRATCH, he can release it all he wants since all the code belongs to him. In this case, he is doing something within his rights.
If his work is derived from the "client" codebase, then its an entirely different case.
Potential for new contract work - either extending this or creating new work.
Having more code out on github is also a good way to get more employment opportunities.
If diluting the client's competitive advantage is harmful to the client, then wouldn't anyone who releases a free product with equivalent functionality be responsible for hurting the client? Is in unethical to, say, release Apache because it dilutes Microsoft IIS? That doesn't seem like a reasonable standard.
Now, if the client provided proprietary information to the contractor (wireless toothbrushes are going to be big next year!) and that information was somehow baked into the now-open code (automatically flag all startups building wireless toothbrushes and move them to the top of the pile!) that would be less than ethical. I see no indication that this happened in this case.
I have seen a friend of mine retaliating on her blogs against clients who didn't pay on time, etc.
And I also know at least 4 prospective clients (honest ones, they always paid in full and on time to their contractors) who got discouraged because they had witnessed the "worst" of this friend when things might not work out between her and the clients.
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.
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.
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.