I fear that opening sourcing my personal projects would work against me. The code that i develop in my spare time is done for my own benefit, and just for fun - no documentations, no unit tests, and there are hacks there which i'm proud of.
I fear a future employer would look at that code and think that is how I write code in professional environment.
I do have private code that I'm working on in my freetime that is not public and most likely never will be.
Most of it is an incomplete mess, intentionally over/under engineered or created to learn a new tech / development philosophy. It served it's purpose and is not going to get "finished".
Other projects are personal and are tailored to my specific needs making liberal use of hardcoded assumptions.
None of it is a good representation of my professional work 99% of which is not open sourced.
As a freelancer/indie dev when someone asks me to share a codebase I wrote, I get worried.
Freelance projects are bounded by NDA. And my personal projects are bounded by shame.
If I am worrying about credentials, code cleanliness, documentation etc I wouldn't have any time or energy to turn my stream of free flowing ideas into code.
I wouldn't be comfortable sharing code I wrote for a previous employer because I treat that as confidential. I'd be happy to show my personal code with the understanding that it tends to be improvisational and done a bit more casually than production code. But along the way I'm sure I'd show enthusiasm discussing the architecture of my personal projects as well as my home infrastructure: everything running on VMs, control panels, private git server, Jenkins, and everything deployed to containers.
I write open source code to benefit others and to put more learning material in to the world. If I was so paranoid about other people using it I would have made it proprietary.
This is also one of my fears, and my strategy has been openness - I share my analysis/code with colleagues/Github/as supplement. Maybe they can spot errors or reuse some of it, and I feel that there is some "protection" in it
Thank you, I have thought about this before and might do so in the future.
At work I routinely make things which I know are used by millions of people and I've never had a problem with that. In fact, I'm quite proud of my work. And I've long since gotten over worrying about others reading my code. I'm also a big proponent of code reviews.
But the code being public still feels really scary, even though there's so much worse code out there which doesn't get sneered at.
Why would you fear 'failure' putting up code for people to look at (and maybe run) for free in case it helps them? (Put a good MIT/BSD/Apache/etc licence on your code and you are not legally liable for anything idiotic they do with it.)
Are you worried about being laughed at? Being embarrassed at some future interview/meeting? If you do stuff for the right reasons (and follow the law, etc) then anyone laughing at you is someone you don't want to work with.
You are saying that you only have code which is entirely private. This is most likely code you wrote for your employeer, which you can't show me anyway because chances are that it is NDA private. Or, you have code which you wrote for say, an iPhone app which you are probably never going to show to anyone. That is all fine.
However, you are also telling me that you've never integrated any open source projects into your code or relied on any non-commercial external libraries. Or, maybe you have done that.
But then I have to wonder why you've never contributed back to any of these projects that you've depended on. If you are a great dev, I'm sure you found them lacking in some way and wanted to contribute a bit back to them.
Thus, we've come full circle. Any developer that I would want to hire, has figured out that there is a massive ecosystem of open source projects out there. They are integrating them and contributing something back to them. They are drawn to these projects like flys to sh*t. These projects teach them new tricks because they are studying others code. They are drawn to give back to these projects because they are taking so much good from them. That is what makes a good developer in my eyes.
Here is a really good case in point example. Last night I was working with the amazing Underscore.js library, which I'm fairly new to. I found that I wanted to do something with it, couldn't figure it out and made a suggestion on how to improve it [1]. Someone from the community responded quickly, we had a bit of really positive back and forth and in the end I learned something new about the library. I expect that anyone I hire has the gumption to also be doing similar work.
1. Unfortunately, you are choosing to work somewhere where your work is "kept secret". In other companies, this might not be the case. You should consider this and how it may or may not affect your future job opportunities.
2. Is it possible to take chunks of your code and "scrub" them so they are not revealing anything proprietary by sharing? (still need permission of course) I do this on the business/prototyping side a lot, not sure if it transfers to the development side.
Writing code in an open source environment can be extremely intimidating. There is an unfortunate element of elitism around writing code and this can be very off putting for many people. Being able to code, learn, and get criticism in the privacy of a private repository is a big step toward open sourcing your code
Which is your home country? Because it's the same in mine and the reason is the local market here sucks.
I've applied to many companies that required opensource and just flat-told them that I only have private projects to show. So I have a couple private projects that I can share the repo (ask the previous employer about it) and have not been rejected for this. The reason is they just want to see your code, how you write docs, readmes, commits, tests, schemas etc.
The "all your code are belong to us" clause is just a negative side of a company. Either don't work for them, ask them if you can use their source only to show to other clients, or lie and also work on something else behind their backs that you can show to your next employer.
I fear a future employer would look at that code and think that is how I write code in professional environment.
reply