Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Most contracts always have a clause about IP which usually states the work done for the project is the clients' IP regardless of you got paid or not. The smarter thing to do without violating this clause is to add "Fuck you pay me" sort of notices inside the application that doesn't allow the user to use the software until you get paid AKA kill switch. Kill switches are pretty easy to implement and you usually obscure key parts of your code. The other way, which is the best way is to use some complex programming language that the client will require a LOT of effort to understand that he might as well pay you. Eg. Haskell, Elixir, Scala, etc. Generally speaking, functional programming languages can be designed to look complex. Eg.

    def validate(_vin, vin_arr) when length(vin_arr) != 6, do: {:error, "VIN has incorrect length."}
    def validate(vin, [_, "ma3", _, "0", "0", _] = _vin_arr) do
      case String.length(vin) do
        17 ->
          {:error, "You must include the full VIN. Including the last two extra digits. It may not be included in your RC book. You may need to get it from your chassis."}
        19 ->
          {:ok, :valid}
        _ ->
          {:error, "VIN has incorrect length."}
    end
Normally, the whole app I develop usually will sit inside my Google Cloud account and the handover is done only when payment is made. The types of clients I work with normally don't care about source code, they just care about the working app. These days I avoid clients who are pretty nosy with asking for source code access upfront as it's a huge red flag for me, as like the OP, my personal experience also has been bitter with these clients running away with the source code.

I run an IT shop, not a restaurant to serve you first and wait for your cheque. Sorry.




I run a dev shop and that's not how our contract works.

Here's our transfer of work clause:

"Transfer of Work. Except for any portion of the deliverables subject to license terms (collectively, the “licensed materials”), Stratosphere initially owns all rights in the work created. Subject only to Stratosphere’s receipt of the fees and costs described in the applicable SOW, Stratosphere assigns all of its right, title and interest in and to the deliverables (other than the licensed materials) provided to you by Stratosphere under that SOW. Licensed materials are copyright of their original authors and provided subject to the terms of their applicable licenses or the license terms described in the SOW. You may not use licensed materials other than as described in the SOW or their applicable licenses."

In case you're wondering, our lawyer is Gabe Levine, the same lawyer in the famous "F*ck you, Pay Me" talk by Mike Monteiro.


> In case you're wondering, our lawyer is Gabe Levine, the same lawyer in the famous "F*ck you, Pay Me" talk by Mike Monteiro.

Wow, that's awesome. And thanks for sharing that clause :)


Ouch. There's a good chance this might be considered hacking under some interpretation of US laws. I wouldn't do it.

Set up frequent milestones and get paid for them.


Not familiar with US laws, but thanks for sharing!




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: