We are going to start doing a reasonable amount of development on some customization of CKAN via plugins. 

Are there any CKAN developer recommendations, hints, tips and/or tricks that people use when developing plugins for CKAN? 

Things that we are specifically looking for help on are the following: 

Recommendations on how to do development in an IDE (like PyCharm) and move/deploy our code to a remote Vagrant VM (where we will have development instance of ckan running). 

How does debugging work in a remote Vagrant VM instance with WSGI? Does anyone do remote debugging with an IDE (like PyCharm) and WSGI? 

Then in general how do most CKAN developers do their programming? Do they use Vi? Do they do development in ckan on their local machine? Do they use remote VMs (like with Vagrant/VirtualBox)? 

We have tried looking for how anyone does CKAN plugin development and we have not been able to find any useful information at this time and any friendly recommendations would be greatly appreciated.