I think you're on the right, niche, track in a way: design and program. You're missing something else too: Operational Support (i.e.: Sys-Admin, Net-Admin). These days people are looking for a creature by the type of "DevOps": can program and do operational support.
The future is definitely a little bit bleaker for coder generalist because the current trend is leaning toward making sure everybody can code to some degree (which surprisingly is led by Microsoft Sharepoint, InfoPath, Access, VBA, Excel, LightSwitch and not Rails + JavaScript) because let's face the fact: hiring is expensive, hiring a software developer is even more expensive.
Soon the requirement would probably be: to design (UI), to program, to test, to maintain, to support operation, and to understand business.
Maybe you should explore the market a little bit further than the two skill set you mentioned because of 2 things:
1) There is a possibility that one day that making a good looking software is not as hard as it used to be once people catalogue the patterns and best practices. Once these patterns, best practices, and the tools exist, suddenly the bar of creating good looking UI and decent usability becomes lower and cheaper.
2) Not everyone wants to pay premium on good UI. These days, programmers can come up with a decent workflow and minimal UI and people are OK with that as long as it solves their business problem.
The future is definitely a little bit bleaker for coder generalist because the current trend is leaning toward making sure everybody can code to some degree (which surprisingly is led by Microsoft Sharepoint, InfoPath, Access, VBA, Excel, LightSwitch and not Rails + JavaScript) because let's face the fact: hiring is expensive, hiring a software developer is even more expensive.
Soon the requirement would probably be: to design (UI), to program, to test, to maintain, to support operation, and to understand business.
Maybe you should explore the market a little bit further than the two skill set you mentioned because of 2 things:
1) There is a possibility that one day that making a good looking software is not as hard as it used to be once people catalogue the patterns and best practices. Once these patterns, best practices, and the tools exist, suddenly the bar of creating good looking UI and decent usability becomes lower and cheaper.
2) Not everyone wants to pay premium on good UI. These days, programmers can come up with a decent workflow and minimal UI and people are OK with that as long as it solves their business problem.