5 hot specialties for software developers

Want to escape the outsourcing axe? Today's IT trends are creating lucrative niches for ambitious developers

American businesses say they can't find enough programmers to fill their software development positions. Yet coders say they live in constant fear of their jobs being shipped overseas to outsourcing contractors. Can both be right?

There's no denying that software development is still a very lucrative profession. But rote coding and code maintenance are increasingly considered low-value functions -- and ones that are easily outsourced. Developers who want to maintain an advantage in today's job market need to specialize.

[ Neil McAllister explains how to solve America's programmer shortage and reveals the ugly truth behind programmer hiring quizzes. | Speaking of quizzes, see if you can pass InfoWorld's programming IQ test, round 1, and programming IQ test, round 2. | Get software development news and insights from InfoWorld's Developer World newsletter. ]

Fortunately, IT moves so quickly that there is never a shortage of unique niches for shrewd engineers to occupy. Here are just five examples of specialized skill areas that are sure to experience rapid growth in the coming years.

1. Cross-platform mobile developer

Customers choose smartphones for many reasons. Mobile network coverage varies throughout the country. Smartphones differ in features and capabilities, and not every carrier offers every model. Budget is a factor, too.

The smartphone model a customer buys usually determines which smartphone OS that customer uses. The upshot is that although leaders are emerging, the smartphone OS market is considerably more fragmented than the PC market and will probably remain so for years to come.

Smartphones all work more or less alike. The trick is knowing how to access the APIs that enable their various features, regardless of platform. That isn't easy when each platform makes you write apps in a different specialized programming language using a different set of tools. Even HTML-based apps need considerable UI tweaks before they feel like native ones.

I've said before that mobile tool vendors should do more to help facilitate cross-platform app development. Until that happens, developers who invest the time to become versed in two or more mobile ecosystems will find themselves in high demand.

2. Mainframe/cloud integration specialist

Cloud computing platforms are all the rage for Web applications. They're catching on in small business and enterprise IT departments, too. But for other market segments -- including big retailers, finance, banking, insurance, and telecom, among others -- the mainframe is still king.

In some ways, multitenant cloud computing platforms are a lot like the timeshared mainframe environments of yesteryear. In other ways, they're very different. For example, cloud applications scale horizontally; mainframe applications ... well, they scale.

This isn't to say the kind of organizations that still use mainframes aren't interested in cloud computing. They are. But expecting them to migrate their mission-critical transaction-processing applications off their mainframes is unrealistic.

That presents a significant opportunity for developers who can bridge the two worlds. Traditional mainframe developers are becoming a rare breed. Developers who speak both Java and Cobol, or who know their way around mainframe databases and cloud storage systems alike, are virtually unheard of -- but companies will be looking for them. Fill that niche, and you can write your own ticket.3. Cloud migration engineer

Companies that are investing heavily in the cloud face a different problem than ones who are sticking with mainframes. Mainframes are time-tested technology, while cloud platforms are anything but. Amazon Web Services, arguably the most mature general-purpose cloud platform, celebrates its tenth birthday this year.

Naturally, the market is still experiencing growing pains. The cost advantages of public cloud offerings are not yet clear. Offerings differ on features, security, and stability. Outages are not uncommon. Network bandwidth may soon become a bottleneck with some services.

As the novelty of cloud computing wears off, customers will expect to treat their cloud providers like any other vendors. When they aren't happy with one vendor, they'll take their business to another.

That's where specialist developers come in. Moving an application from one cloud storage service to another isn't as simple as switching phone companies. A developer who knows the ins and outs of various cloud vendors APIs, SLAs, services, and supported technologies will seem like a godsend to companies looking to jump ship in a hurry.

4. RIA portability specialist

Remember RIAs (rich Internet applications)? Web developers aren't moving away from rich content applications -- far from it -- but the days of using plug-ins to deliver sophisticated graphics and interactivity are over.

Flash has been on deathwatch ever since Steve Jobs barred it from Apple's iOS platform. Silverlight's future looks similarly grim (if you ever saw any future in it). HTML5 and its related technologies are the way forward.

But what about all of the Flash and Silverlight applications that have already been deployed? Some of them are marketing and advertising materials with short shelf lives, but others power valuable education, data visualization, and e-commerce applications. Preserving that content for tomorrow's Web users will soon become a key concern.

Automatic conversion from Flash to HTML5 isn't easy, as Adobe's own attempts have demonstrated. HTML authoring tools for rich applications are emerging, but only slowly. In the meantime, demand is growing for Web developers who are ahead of the HTML5 curve -- but particularly for those who are also firmly grounded in yesterday's plugin-based technologies.

5. Parallel computing architect

Today's applications scale out, not up. Clusters and other distributed systems spread applications across many systems, not just one. With the rise of multicore CPU architectures, even desktop software must be written with multiprocessing in mind. Unfortunately, parallel computing is still one of the least understood disciplines in software development.

All the major development tools vendors have projects under way to help make it easier to build parallel computing applications. Some are developing languages -- such as Google's Go and IBM's X10 -- that make designing concurrent algorithms more intuitive. Technologies like OpenCL aim to help developers offload processing to multiple cores and GPUs. Other projects, such as Intel Parallel Studio, are designed to make existing tools more parallel-friendly.

The problem is that none of these efforts has yet made multiprocessing accessible to the majority of developers. Parallel programming requires more than just new tools; it calls for a new way of thinking. Developers who master the mental gymnastics necessary for effective concurrent application design will advance quickly to systems architecture roles.

Do you see other unique niches emerging for developers? Weigh in with your comments.

This article, "5 hot specialties for software developers," originally appeared at InfoWorld.com. Read more of Neil McAllister's Fatal Exception blog and follow the latest news in programming at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.

Copyright © 2012 IDG Communications, Inc.