Developer tip No. 7: Wow the crowd
Figure out how to give presentations and learn how to speak in public. Research a topic and make yourself at least an expert, if not the expert. Presentations to the public are generally better if they are in part entertaining. It takes a lot of embarrassing mishaps to develop this skill, but an engineer who can explain the matter in plain English to management and give an expert talk on a topic will almost always command a higher salary than one who doesn't.
Developer tip No. 8: Be realistic
Sure you like Erlang, but the market for Erlang isn't big. You should know more than one language, as well as "new" or newly hyped topics, but avoid such immature statements as "I won't code unless it's in Erlang" unless you've truly considered the business issues. It can pay to be a narrowly focused expert, but even that has a cost -- you'll be typecast according to your specialization, which may leave you high and dry when it's out of fashion. Sure, NoSQL is a better fit for your little project, but the company won't invest in it for a small one-off system. The RDBMS will work fine for this one.
Developer tip No. 9: Solve the hard stuff, know the tools
Put in the time to learn a few tools other people don't commonly know. What tools do you have that few know/use/understand and make you more effective than the people next to you?
For example, Aspect4j is not for everyone, but it sure as heck is for me. I use it for things that are wrong -- very wrong. I've rewritten .class file operations to make them run in Tomcat instead of WebSphere, though the original source was missing. I've fixed memory leaks in proprietary software. I've implemented a poor man's Wily Introscope. At each point, I looked like some kind of supergenius because I had a tool that few people had grokked yet -- and bothered to keep going when others decided to wait for the vendor. I live/breathed eclipse.org/mat so that I could not only fix leaks but tell you what struts action and parameters caused your OOME. There are others, but these simple tools for complex problems put a shine on a developer.
Developer tip No. 10: Practice humility
This is the least common skill among developers. Sometimes it means you get your hands dirtier than you want. Other times it means you don't let it go to your head when you pack a room. Geek fame comes and goes, but remember, it's what you did recently that brings them in. Next week, it could all be gone. In the words of Tyler Durden, "You are not special." Yes, trolls, I'm fully aware of the irony.
How do you know you're sought after?
Look left, look right: Is there a row of people doing basically what you're doing? Then you're not there yet.
Here are some signs that you've arrived: You're sitting in a row of people and they're all looking at you. People take their picture with you and you're not an American traveling in Japan. Your speaking engagements fill the house, and people tell you about how much they not only enjoyed your talk but also the last two you gave. The sales and marketing people actually value your opinion. Does that sound like you? Congratulations, you've made it.
That said, fame and success are fleeting, and you have to keep it interesting. Ironically, as you become a more sought-after developer, you code less and less. It becomes more economically efficient to communicate to and motivate others, as well as to delegate your "tend to" stuff. That may or may not be what you signed up for.
There will be times in your future when, once again, not every software developer who wants a job can get one. Particularly when the atmosphere becomes Darwinian, effective self-promoters do better than quiet toilers.
This article, "10 steps to becoming the developer everyone wants," was originally published at InfoWorld.com. Keep up on the latest developments in application development and read more of Andrew Oliver's Strategic Developer blog at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.