Right I work in both roles, I work as a consultant for the big wall street firms, where I do technical strategy consulting. This is where I look at a potential merger or acquisition and tell the decision makes that the technology strategy of the deal looks good or it does not. It is a paperwork job and I consider it to be true consulting. On the other hand I am hired by companies to build apps, many times they only have a rough idea of what they want. I call that freelancing, I am brought it to help them get to an app in all manners that they need, advise, code, data, server setup, etc. I see freelancing as the closest to generalist. Finally sometimes I get a call in which they will say we have all the specs, the system is designed and we just need someone that knows X to turn the design into a system. To me that is contracting and it is my least favorite out of the rolls I do.