Having recently switched jobs, now is probably the best possible time for me to write about the applicant's side of vacancies and job searches in IT. Specifically, I want to give my take on maximizing the chance you'll land a job at a place you'd want to work at. Put differently, below is (mostly) my own plan for finding a new job.
But wait: that's not specific enough for a blog post yet! There's a lot to job hunting. So let me narrow it down to the asynchronous ways to communicate with prospective employers.
What I mean here by "asynchronous"? Well, that includes just about everything that's not real-time (face-to-face or phone conversations, chat, etc.). I will run down these "channels" one by one, including specific tips for each.
By the way, I hear you thinking: "But that sounds like just a big check list!?". It is. But hey: check lists are great! Use this one to your advantage. Let's get started with the basics.
Several things are important for all of the async channels. Remember:
- Choose a great avatar you'll be happy with for a long time to come, and stick with it. Everywhere! This will take a few years to settle in, but after a while it'll help people recognize you across the board.
- Be smart about your e-mail addresses. Preferably, you'd get your own domain, use addresses like firstname.lastname@example.org and email@example.com. Alternatively, use the + sign lifehack to differentiate. This will help you separate incoming mail reliably, lets you know who's leaked or sold your e-mail, and gives you a minor edge with tech orgs because they'll notice you've given things some thought.
- Do or do not, there is no try. To put it in my own words: either do something right, or don't do it at all. For example: it's better to have no LinkedIn profile than an out-of-date one.
- Try to do as many of the list below as possible, but consider this tip strictly lower priority than the previous tip!
- Use language correctly, or at least as correct as possible. It's easy to use a spell checker, proofread, do some proofreading, and do some more proofreading. Tip: read your writing (semi) aloud to yourself to find bugs in your writings.
Okay, so enough with the generic mumbo jumbo. Off to specifics!
A lot has already been written about this, so I won't repeat the basics. But I will make a few important additional points:
- Decide: short or long. Both are fine. If you go short: try to fit everything on one single page. This is really hard (I could never do it!), but if you can manage it'll demand respect and it'll be useful to the reader. If you go long: use "scannable" text and styles (tables, bullet lists, emphasis, and so forth).
- Use a (non-default) theme. The theme (and sticking strictly to it) will help prevent your CV from becoming ugly. Only try to make a "beautiful" CV if you know how to design or have help in this department.
- Read "The Non-Designer's Design Book". It's a "Must-Have" if you insist on tweaking styles (like me), and when you're also (like me) not a great designer. It'll at the least help you prevent your CV from becoming ugly.
- Use serif fonts. Sans-serif might look nicer on (non-retina) screens, but most of the time folks will read a print of your CV. On paper, a serif font is easier to read.
Open Source platforms (Github, Gitlab, etc)
This one's not for everyone. Whatever you do or don't do: be conscious about your choices. That doesn't mean everything has to be perfect, but do mind the things that are easy to get right. Think about cleaning up utter garbage repos, using correct language when commenting on issues, etc.
If you do decide to work on open source, note that you don't necissarily need to become a maintainer of a high esteemed project to be noticable. Here are some easier ways to get started:
- Pet projects are something to put online. Place a big disclaimer that the code should be viewed as such, and you're fine putting out non-production-worthy code.
- Create a demo project that shows off how you prefer to code. It's fine to "reinvent the wheel" or even create yet another "To Do App", as long as you focus on the code being in "your" style. Place a big disclaimer that the code should be viewed as such, and you're fine.
- Create Issues for other projects. Creating an issue with a good repro is usually well-received, and displays qualities very important in day-to-day tech work.
- Find up-for-grabs issues in a project you'd like to contribute to. Or even open your own (most projects will welcome improvements to documentation, for example).
On a side note, it can also be good to spend some time looking at the source code of open "famous" source projects in your tech stack. It hones your code-reading skills, and demystifies the black boxes they tend to be. Although this isn't directly visible to prospective employers, it does have intrinsic value and might be a gateway to your own contributions some day.
Community Forums and Q&A (Stack Overflow, etc)
On the one hand I see this different from the previous point (Open Source), on the other hand it kind of isn't. Specifically Stack Overflow (of which I'm somewhat a fan, as is no secret) is also in a sense open source as they distribute all content freely, for one because the data is licensed by users at least under CC-By-SA.
Asking questions is probably the easiest way to get started. Note that exemplary questions are a great way to show off your skill: being able to grasp and neatly summarize a reproducible problem is perhaps the number one skill a developer can have. I've asked multiple questions I'd proudly show off as part of my resumé.
Answering questions is a lot harder. This is another whole topic on itself so let me just sprinkle some basic advice. First, the "gamefication" can be fun but should not be your primary motivation. Instead, answer to learn about topics. Choose a low(ish) traffic tag to answer questions in, or you'll get frustrated by the fastest gun in the west: other people will answer extremely fast so you don't seem to have a chance. And finally: keep at it.
My first few questions and answers on Stack Overflow were pretty bad, but practice makes perfect! For every ten answers with even one upvote there's at least one that turns out to help a lot of other folks. Seeing a small "+1" trickle in on an old question is a great, warm feeling.
A personal website
Get a personal domain, preferably something with your name in it. Make it a single page with at least:
- A very basic bio: one or two lines of text about who you are.
- A generic e-mail address (one that doesn't matter if it gets a bit of spam).
- Links to any social media accounts, e.g. Twitter, LinkedIn, but also Meetup, Goodreads, or other media that are professionally relevant.
- Links to open source profiles, e.g. your GitHub profile or Stack Overflow flair.
Then, optionally, you could do any of these:
- Link to your blog (see next section).
- List of your projects, e.g. pet projects, portfolio stuff, your master's thesis, etc.
- Link to interesting other sites, e.g. tech blogs you enjoy.
- A short occupation history if you're inclined to make that public.
- Some schema.org info and meta tags for SEO and generally showing off mad skills with details.
- Ninja-counter-recruitment in your source code, just as organizations do.
A personal blog
Also not for everyone, but it certainly does help showing off enthusiasm, writing skills, and really whatever you want to show off. Blogging about tech is great, but mixing with non-technical posts works even better.
And in addition to exposure, there's a far more compelling reason to blog: writing helps you organize your thoughts. Having to clearly express your thoughts or opinion about something should also make you think really hard about that thing.
Gaining a bigger audience is a challenge on its own, not usally directly related to the writing itself. So think long and hard before you decide to go down that road, because you'll have to double down on community-building to get somewhere. But then again: I feel you can get a lot out of a blog without a big audience, too, by just writing to organize your thoughts.
Warning: only do this if you enjoy it! The days of "needing" to be on social media to fit in are gone with Gangnam Style and the rest of 2016. Having said that, social media can be helpful in building your online profile.
First up: be consistent. Be consistent with your tag line, title, etc. Be conscious about what you make public and what you keep private. Don't be afraid to create only a simple account that just links through to another platform; for example, you could create a LinkedIn profile that just tells folks to check your own website.
For the rest this comes down to personal preference. For me, Twitter and a wee bit of LinkedIn are primary professionally used social media. Google+ I find useless for most things, and Facebook is purely a thing for friends and family for me.
As a footnote it's also worth noting that there are outliers. Goodreads is something I only use because I find the platform interesting, and I keep my professional bookshelf there. Also, Meetup.com has been popular the last two years, so I guess that also counts as a medium to be conscious about.
Bear with me while I digress a bit. Suppose you want to set up a perfect romantic date with someone. To maximize chances of success, you prepare all the things that can be reasonably prepared. You make sure there's food, drinks, music, but also toilet paper, running water, etc.
Now let's zoom in on the food. If you're a chef or if you like cooking you might go out of your way a bit to cook something fancy, though you probably shouldn't go too risky (unless that's part of your charm...). If you hate cooking dinner you might order in something nice, and focus more on other things. In other words:
- Do or don't do! There is no "try".
- Min-Max All The Things™ that you do.
Back to the point. Maximizing your chances for a perfect job works the same as setting up that perfect date night. Be conscious about what you focus on. Be smart about what you do or don't do. And whatever you decide you will do: do it right!
Footnote: his was also cross-posted to Jeroen's personal blog.