In addition to the standby of
-Don't distribute your program (SaaS)
I'll add to the list:
-Only distribute your program to people too non-technical to
consider reverse-engineering
-Don't document your program (or even better, *mis*document your
program)
-Write Lovecraftian code ("import goto" comes to mind) designed
to make reverse-engineers go insane trying to figure out what you
were thinking
-In your Python, drop to in-line assembly language "for
business-logic optimization". Only targeting specific models of
obscure processor architectures helps minimize your audience.
-Write software that does nothing of interest/value/use
Just a couple ideas to get an enterprising young coder off on the
right track
-tkc