The fact that solidity is for the first run a pretty easy language and provides the possibility almost to everyone with some javascript experience to write smart contracts is resulting some unexpected consequences: to program solidity is easy, however to write a code that is really capable to store a large amount of ether, without the risk of being hacked is far less trivial. This practically means that everyone writes smart contracts however most of them can be probably hacked. This provides the possibility for a new market opportunity: quality assurance and testing of Ethereum smart contracts.
Quality assurance would provide practically everything that can be regarded as software testing in highly secure and critical software context, like different stages of software testing, unit tests, formal verification of the code, programming best practices, penetration testing or competitions for white hat hackers to break the code.