Here is a collection of all the different puzzles I have made. Let's call it the 'pessimal program' - pessimal means worst possible, as in furthest from the goal. It will search the entire graph of possible positions, if enough memory is available, and print the positions it finds at the edge of its universe as well as how many moves it takes to get there. My contribution to the computer side of things is a program that finds the longest puzzles with a given goal position or a given start position.
I use JSoko and Sokoban YASC and play on Sokoban Online. There are some very powerful puzzle solvers and solution optimizers out there, as well as a program called YASGen that uses a genetic algorithm to generate difficult puzzles. Solving and designing puzzles by hand is a lot of fun, and with computers, there is an added level of depth. Sokoban is an interesting and deep puzzle that I've been interested in for a couple of years.