As a developer, I've learned that no matter how good a product I build is, for the product to succeed, it also takes good marketing. The same is true for you as a developer in the job market: while solid technical skills are necessary to land great jobs, your ability to sell yourself is as important, if not more so. Despite this, most developers don't invest in marketing themselves. This means that even a little investment can go a long way in helping you stand out from other developers.
When it comes to applying for a job, the last thing you want to be is a resume in a hiring pipeline. Companies hate screening candidates, and so they're looking for a reason to skip you and move on to the next candidate. Because the hiring process for developers is seen as arduous, companies look for ways to shorten it. One way is focusing on candidates with some sort of public profile, something like open source contributions, a blog, or presentations at developer events, as companies see these developers as being more likely to be talented. This means when you have a public profile and apply for a job, you're far more likely to pass the initial screening and get an interview.
Not only does a strong public profile help you secure jobs you're interested in, it also helps interesting opportunities come to you. As an example, a company I was helping was looking for an internationally-minded Japanese developer with experience using the Ruby on Rails e-commerce plugin Spree. I came across the GitHub profile of a Japanese developer who had contributed to a Spree plugin, and on his personal website wrote that he had recently left his job and was going to spend the next couple of months studying English. I reached out to him and made the introduction to the company, after which they ended up hiring him. While I'm sure there were many other developers out there who would have matched what the company was looking for, he ended up getting the job because he publicly talked about his experience and goals.
So if you're a developer who doesn't have any public profile yet, how can you get started? In this article, I'll present the different ways I've come across for increasing your public profile as a developer.
Contribute to open source
One of the strongest positive signals you can send to a prospective employer is having open source contributions, ideally ones related to the technologies the company is using.
The best way to contribute to open source is to do it on the job. When you're developing using an open source library and come across a problem, be it a bug or missing feature, there are two approaches of dealing with it: work around the issue in your application or fix the library itself. Whenever possible, opt to fix it in the library itself. Even if fixing the root problem seems like it will take longer than coming up with a quick workaround, fixing the issue in the library itself will prevent regressions in the future when the library is upgraded and your quick fix breaks. So this way everyone wins: you get an open source contributing, the community gets better software, and your company saves time in the long run.
Similarly, if you're looking for a proactive way of increasing your contributions, try upgrading the libraries your application uses to a beta version or recently released major version. When using a beta version, it's more likely things will break, often in a way that is trivial to fix. For instance, I got eight commits to Ruby on Rails accepted when I upgraded our application to Rails 3.2 soon after it was released.
Besides making the contributions themselves, you also need to make them visible. Unless you're an open source superstar, GitHub doesn't do a very good job of this, hiding historical contributions or ones made under an organisation. So I'd suggest listing your contributions somewhere. For instance, I made this page listing my contributions using GitHub's API, and it looks a lot better than my personal GitHub profile, which hasn't had much public activity recently.
Participate in events
The great thing about offline events is serendipity: you have the opportunity to meet interesting people that you'd never go looking for otherwise. Being a regular attendee at developer events is a good way to make connections to the local community, and even if you're a fairly passive participant, eventually opportunities will come to you.
However, rather than waiting for opportunities to come to you, look for ways to make them come to you. One good way is to speak at a local developer event. As an event organiser myself, one of my challenges is to get people to present at my event, so I'm very happy whenever someone wants to give a talk. Don't be intimidated and think you need to be an expert on a topic to present on it. If there's something you're interested in, chances are you'll be able to give a good presentation about it. Talk to the organiser of the event about what kind of presentation you want to give, and they'll help you figure out how to make something work.
As an introverted person, giving a presentation also makes participating in an event more rewarding. Rather than having to look for ways to make conversation with other participants, they'll come to you wanting to discuss a topic you're already interested in (whatever you presented about). Not only does it make things easier at that event, but people will remember you at future ones.
The first articles I wrote for Tokyo Dev were event reports where I talked about my experience at several developer related events. While articles about events are ephemeral and don't have so much value in and of themselves, these articles did result in me being contacted by a developer interested in getting a job in Japan, and prompted me to write Finding A Job as a Ruby Developer in Japan, which is now one of the top results for searches like "Japan developer jobs", and has led me to write many more articles on the topic. So when you're first starting out, don't worry too much about what you write about, as anything is better than nothing.
Create a personal website hosted on a custom domain
Having a personal website provides you with a single place to consolidate your online identity. In the beginning, this can be as simple as a single page with links to your other online profiles. As time goes on, you can flesh it out with articles you write, links to talks you give, or open source projects you contribute to.
When setting it up, I'd purchase your own domain name, over than using a free subdomain at some service. Being in control of your domain allows you to migrate from one web platform to another. Additionally, you can send email from your own domain, which I've found to be a positive signal over a generic one like hotmail or gmail.
Don't end the week with nothing is a great article on how you can distinguish yourself by working in public.