During Desember last year I created an open source project called DoubleCache. It's a cleaner version of a cache pattern we use at work, written from scratch.
- Great source for a conference talk
- Helped me learn FAKE and Appveyor
- Made me reason about handling pull requests, figuring out a how I prefer to do this (blogpost coming).
- Showcase skills and thoughts for potential customers and employers.
The first benefit my open source project gave me was backing up a talk I had planned for the Norwegian .Net user group. The talk was about Redis and our experiences of moving to a centralized cache. Backing the talk with my own implementation provided very clear samples.
Truth be told, DoubleCache wasn't yet public when I did my talk, but it became public a couple of days later. Pushing code out in the open forced me to setup a proper build and test setup, something I might not have done had it been a private project. With an actual need to learn FAKE it was easy to get the Instant Gratification Monkey out of the way. I prefer xUnit and shoudly when writing C#, and this meant I had to dig into FAKE to a degree where I now feel comfortable with it.
It did not take long time before I had the first pull request, this one from a colleague but never the less I learned how to use AppVeyor. Well, not much to learn really when using FAKE. Having all your build configurations under version control is just great.
After yet another talk, I got the first pull request from someone I did not know, Clayton Sayer. He's done some great things, fixed a few configuration issues, added delete functionality and synchronous support. After looking at our repository at work and reading a few blogposts, I was sure that I wanted single commits when merging pull requests. I needed a way to do this, and at the same time be able to make modifications such as bumping the version number in the build script. More on this in the next blog post.
Finally, putting code out in the open forced me to think things through more than once. Not just because it's public, but it will serve as part of my resume. It will without doubt be a discussion point when talking to potential customers or future employers.
It has been, and continue to be, a great experience.