Open Source

I had the opportunity to sit on a panel at the Nashville .NET user group tonight on developer careers. The goal was to open the floor and try to help tear down some walls between developers and recruiters. On the panel were several recruiters from our local area to represent that side. I got to sit up there with Elijah Manor and Derek Greer to represent the developers. Overall I think it was a good experience to let everyone ask some questions.

I was there to represent how I feel about developers contributing to open source projects. It's late, but I want to get my thoughts down in writing before sleep washes them away.

Contributing to open source software has had a positive impact on my career. I really haven't really contributed anything major, but my point tonight wasn't that you need to go out and write the next big thing. You see, there are gaps and voids all around us. Everyone is capable of finding something that needs to exist and creating it. I've benefited so much from open source software, it's only fair I give back.

There was a lot of apprehension for me leading up to pulling the trigger on my first project. Should I put it out in the open? Will anyone find it useful? Are people going to ridicule me on how crappy my code is? The answer to those questions turned out to be yes, yes and sometimes. When I put my stuff out there for people to see, I got feedback (both good and bad) and I was able to iterate on my project and make it better. Any feedback you get is a good thing because that means people care at least a little. It was really a learning experience to see how people use the thing you've created.

To potential employers getting a product "out there" means a few key things:

  • You care enough about something to take initiative  and make it a reality.
  • You are capable of finishing something you started.
  • You are detailed. There is a big difference between a proof of concept and live production ready code. A polished project has been tested and documented.
  • You love what you do so much that you used your own free time to improve yourself.
If you are a developer reading this I can only encourage you to open yourself up and throw some code to the wild. Writing some code that gets used is a very rewarding experience. You WILL get criticized by some, even if what you made is the best thing ever. None of that matters though, because you did something that you liked and shared it with others. Take that feedback and make your project better. I guarantee it will make you better.
  • Jared

    Josh, I agree 110% with your entire post. The single greatest thing you can do to help yourself find a job is to put code out on github or bitbucket, in my opinion.

    There is only upside to putting your code out there. If people look at it and say it’s not good, then you get a rare and awesome opportunity to engage in a constructive conversation about code.

    Another thing that I’ve personall had a ton of success with is creating a CV website and using it to promote myself.

    It let’s you get deep into the technical details on the projects you worked on, post samples of your writing – I linked to popular posts on my own blog – and include links to all of your open source projects, even the ones you pushed patches/pull requests to.

    Finally, start a blog. I can’t tell you how much this has helped me in interviews. Also, it’s a huge personal development aide.