Main image of article Job Tips for Software Engineers
[caption id="attachment_37500" align="alignright" width="249" caption="Software Is Everywhere"]Software Is Everywhere[/caption] It's official: you love being a software engineer, and you'd like that to continue. There's just one small problem: you need a (new) job. The good news is that the market for software engineers in the U.S. is white hot, mostly. There are just a few things you have to look at: - what kind of engineer are you? - where are you? - what kind of place do you want to work for? - what do you need to do?

What Kind of Engineer Are You?

Do you have a flair for design, appreciate the powers of whitespace, and have an opinion on Less versus Sass? Congratulations, you're a front-end software engineer. You'll be very popular, particularly in web startups. If you design but don't code, you'll still be popular, but you'll probably work someplace a bit larger. Are you enamored of the idea that the code you wrote this morning could be in actual production use by tonight? Do you ride the (Ruby on) Rails and write awesome JavaScript? Hooray, you're a web developer. You're all the rage. Do you still believe in the power of installation? Do you think there's room for software that maybe your mom doesn't understand but that drives a $245 billion industry [1]. Cool, you're an enterprise software engineer. Sure, insurance applications and supply chain management aren't sexy, but they're a huge business and there are some fascinating problems to solve there. Do you take pride in managing your own memory? Can you argue for hours about how to save one byte of memory and think that millions or billions of operations is pretty much just normal? Bravo. You're a systems engineer, and you're probably one of the people who will build the next great operating system or piece of core computing infrastructure. You, my friend, probably have some pretty strange hobbies, but the rest of the world depends on you more than they know. There really aren't right or wrong kinds of software engineers. This is where your personal preferences and talents should really come through. Choose a kind of software engineering that really calls to you, and remember, there are interesting problems everywhere you look.

Where Are You?

The sad truth is that where you are geographically still matters. Remember how I said hiring for software engineers was white hot... mostly? This is the mostly. If you're in a tech hub—Boston, Silicon Valley, New York, Seattle, and a few others—it's absolutely the case. If you're not in a tech hub, the story is a little different. There are still jobs, but they're fewer and you'll have to look harder for them. Telecommuting is a nice concept, and there are some people doing very well with remote work. However, to do this you must have the right employer and you have to be the right kind of person. It's possible, but getting and changing jobs this way is extra work.

What Kind of Place Do You Want to Work?

Some of us are startup addicts (ahem, this is me). Others want to work on huge systems with large teams. There's no right or wrong here. IBM is the right employer for some people, and two-people-in-a-garage is for others. How you hunt for a job will vary hugely based on what kind of place you want to work. Going through a recruiter or a large job site will get you mostly focused on mid-sized to large companies. Using niche job sites will get you focused on specific industries. Other niche job sites will show you small companies—from equity-only startups to local shops with 20 to 50 people.

What Do You Need to Do?

So now what? What do you need to actually DO? It's time to do some actual work on the job hunt. First and foremost, make sure you're networking. It's a cliché for a reason: the best way to get a job is through your network. Where and how you network will depend on where you want to work. The dirty little secret of most tech communities is that there's not one tech community. Rather, there are several communities, each targeting different niches. For example, if you're targeting large organizations, go to user groups and meet-ups for industries and technologies you're interested in. If you're targeting startups, get involved in Hackathons, Startup Weekend, and code camps. In any case, your goal is to interact with potential hiring managers and people who know potential hiring managers, and specifically to interact with them in a way that lets you show off your technical skills. Show off a bit. It's a lot easier to get hired if you can show off the work you did. Don't show proprietary code from your current job, but find other ways to show off your awesome skills. Contributing to open source projects is a huge benefit—and you can show off both your code and your ability to work with teams. Creating personal projects, particularly relevant ones to the jobs you want, is also helpful. Lastly, be open to opportunities and ideas. Contracting, apprenticeships, trial periods, and consulting projects can all be good paths to an eventual job. At least be open to these kinds of opportunities, even if your eventual goal is to be an employee.

Conclusion

It's a good time to be a software engineer. Keep your skills current, show off those skills, and go hang out (with purpose!) with other engineers and hiring managers. There are a lot of jobs out there and the possibilities just keep growing. One of them is right for you. [1] Gartner, 2011. http://www.gartner.com/it/page.jsp?id=1668214