What is the convention in AngularJS for prefixing providers with $? Should I prefix all custom services in my own code?
Looks like all things that come with angular
Use PascalCase for controllers and for functions which return a constructor function that's supposed to be newed, e.g. var user = new User(). Controllers in Angular are viewed as scope constructor functions--thus the PascalCase.
Controllers should have Controller appended in their name. See http://demisx.github.io/angularjs/2014/09/14/angular-what-goes-where.html for naming examples.
Use camelCase for everything else.
These follow important Javascript conventions that dev around the world got used to.