This month’s Atlanta Ruby User group had two sessions related to marketing yourself as a developer. One focused on Jobs (great job Al) and then one talked a bit about personal branding. While getting a job is important, and having people know what you do is great, lets take a step back and look at the bigger picture, especially for those who are new to the industry. What does it take to create a career as a developer.
Why Do You Want To Be A Developer?
Working in tech is now considered a cool job. In the media you see stories about hip tech startups where you can work from anywhere, wear shorts to work, bring your dog in etc.. This along with a weak job market and a strong demand for tech talent has spawned a number of code bootcamps, initiatives to learn to code etc.. It’s encouraging more people to look into it as a career which is a good thing.
I’ve run into a lot of aspiring developers who want to get into the industry because they want to do a startup, want to be able to work from anywhere etc.. All of those things are great, but software development is also a lot of hard work. To get good at it you will need to constantly practice it and continually be learning new technologies. As a career it requires analytic thinking, the ability to break down problems, a large time commitment and a love of technology. If your reason for becoming a developer is something along the lines of loving technology, and wanting to have a career doing something that you love your on the right path.
If your main motivation is money, lifestyle etc. you may want to re-consider. While there are some people who can be successful in a demanding career that they don’t have a passion for, those people seem to be the exception not the rule in software. The ones without the passion who stay in the field usually don’t make as much money and often work at places with business casual (or more formal) as the dress code with very little telecommute options etc.. It is difficult for most people to invest the amount of time and effort required to be a good developer if they don’t enjoy what they do.
Be Able to Deliver
Does this mean you need to be a rockstar? No! You can’t be when you are starting out. But if you want to have a career in software development you need to be good at what you do. No matter what your experience level that means you are always learning new stuff. Play around with side projects. If someone mentions a new technology or technique you haven’t heard about Google it. Reach out to other people with questions etc.. Participate in a Hackathon, Startup Weekend, contribute to open source or volunteer to create an app for a Non Profit company. Care about what you do, treat it as a craft and take pride in your work no matter what level you are at.
Go to meetups and conferences. Make it a point to read tech blogs, tech books etc..
Let Others Know About It
If you were struggling on a really difficult problem and didn’t find a solution via Google blog about it. If you find a bug or poor documentation in a piece of open source software you use, submit a pull request. If you just read an interesting article tweet about it. Attend user groups, conferences and participate in hackathons.
Every one of these activities does two things. First, it demonstrates to a potential employer what you can do without the pressure of an interview. Second, it gets your name out there as someone who is engaged and knows what they are doing.
What About Resume’s and Linkedin?
A resume helps, but as you develop your career, if you are doing things right will play a minor role in helping you get a job. It should be online and easy to download electronically. Linkedin is helpful but also a source of a lot of spam as you progress in your career.
Too Hot, Too Cold, Just Right
I have run across developers who were really good, but kept such a low profile that they were stuck for years in a mediocre job. On the flip side I have seen mediocre ones dupe companies into hiring them because they embellished a resume, had a great social media profile etc.. When I say mediocre I’m not talking about beginners. I’m talking about people who don’t have the passion, and/or aptitude. As an industry we need people who can walk the walk and talk the talk. Do both of these and you will have a career, not just a job.
What about 3rd party recruiters? If you are a junior developer or don’t spend much time on your personal brand you may need to use them. Their only incentive is to place you and have you stay at a job for 3 months, or to place you on a staff aug contract so they can make their 15-25% of your first years salary or hourly contract rate. On the hiring side I have seen too many of them embellish resumes and provide lots of substandard candidates. On the candidate side, most are more concerned with making the sale, not really helping you manage your career. The better developers who are effectively managing their careers won’t use them. They don’t need to.
Either you manage your career or your boss, or the recruiters and everyone else will manage it for you. While some bosses might really try to do the right thing for you, and there might be an occasional (unicorn) type of recruiter that does the same, when push comes to shove most of these people will put their needs before yours.
A job, bootcamp or degree is a short term thing. A career is the long term thread that ties is all together. Manage your career and your career will take care of you.