On my Atalasoft blog I wrote that I thought programming job applications should become more portfolio oriented, and
that means working code that I can run, and access to all of it. Probably the best thing is a running website and a github repository. If the software is hard to run, then a video walkthrough or screenshots are acceptable substitutes.
To learn more about what I want this to be like, I am starting to prepare a portfolio for myself.
One issue is that it’s important to decide what license to apply to it. If you don’t decide, then the default license is all rights are reserved, and the code isn’t very usable by anyone else. Since this code is meant just to show others what I’ve written, I guess it could be ok, but I actually don’t mind others using the code.
Another issue is that I intend to post code for projects that will be for sale (iPhone apps). If I put a permissive license, like BSD or MIT on it, then I run the risk of anyone being able to compete with me with my code and my permission. But, not open sourcing real code would be against the whole point of making a portfolio. Fake code doesn’t represent programmers well.
I think Zed Shaw has the right idea about using GPL, not so much the why, but in what ways GPL helps authors.
Using GPL, I get these benefits
- Use of the code requires attribution
- You can’t put GPL code in the App Store
- I can still grant BSD licenses on a case by case basis, and perhaps only on portions. To do so requires the developer to get in touch with me
- Likewise, I can still choose to sell or give away commercial licenses, if I am contacted.
To me, github and the entire idea of a portfolio is to make code more social. GPL helps maximize that.