Open-source the project code before or after publication?
Double-blind reviews are usually more common in conferences. For example, I don't know of any journals using double-blind review in my field (machine learning). I'm going to assume revealing your identity is not an issue (if it is, circumstances differ).

Whenever relevant I provide an implementation along with a paper. This also helps reviewers, in case they want to fiddle with an algorithm under slightly different circumstances than those reported in the paper (which is a good thing!). When an implementation is provided, the option is there. 

The pros are increased visibility, reproducibility and (in my opinion) credibility since you allow everyone to try for themselves instead of taking your word for it in the paper. On rare occasions, your software may become quite popular during the review period, which may positively impact the paper under review.

A potential con is that someone may discover a critical bug in your implementation. From the perspective of software engineering this is always helpful since you can then improve the software. For the associated paper this may be a good, bad or irrelevant thing, depending on the type of bug:


One that does not influence the results reported in your paper: no big deal. Simply fix and move on. Best case this improves the user experience of your software, worst case you lost a bit of time fixing something unimportant.
One that does influence the results: big deal. This will at least delay a potential publication. Ofcourse it is better to find such errors and fix them instead of publishing erroneous conclusions, but this may have an impact on credibility.