30 August 2015

Getting Hired as a Developer: Tips from Senior Recruiters

There's no magic bullet for getting hired as a developer. But there is some great advice available to help in the process.


I recently interviewed Matt Langan and Christian Macolino, two Senior Tech Recruiters over at Atlassian. I wanted to get a realistic understanding of the subject from the perspective of the people involved with hiring tech talent for a $3.3 billion software company.


This article looks at issues surrounding getting hired, including some practical tips and pointers that arose out of the interview.


Resumes and Online Portfolios


Let's start with tried-and-tested resumes and portfolios. Through these, we present everything that's important about us to recruiters, interviewers, and anyone else involved in the hiring process.


Often developers invest more time in this portion of job hunting than in the actual searching process.


Digital or traditional?


When looking for a position with a tech company in particular, we might assume that digital portfolios—personal websites and online resumes—would be preferred to standard-format resumes. But that's not always the case. Especially for non-design roles, recruiters care more about just getting the information they need. Often, in today’s world, though, that does involve a digital resume or portfolio.


Christian had the following to say about digital resumes:


It’s no secret that the digital resume is fast replacing the traditional resume. The key to building a great digital footprint is making sure you have listed enough relevant content about yourself and keep it up to date, so that your footprint is searchable and stands out from the pack. A recruiter’s ability to find the talent is largely based on the data that we can search. Digital footprints that are light on information make it tough for you to stand out.


This also applies for smaller firms, or non-tech companies whose hiring processes involve more managerial oversight and less tech.


However, for those smaller companies, the online portfolio may be as important or more so. With less expertise and testing available to gauge your worth, a company may resort to carefully analyzing your past work even more than a large tech company might. Only you can judge how much time each of these tools is worth—by carefully considering what your target positions are.


Choosing Your Path


When we discussed education and the very first positions that developers take on, Matt had the following advice regarding education and getting started:


Get involved in side projects, hobbies, start a blog, join in on discussions on forums, get involved with Stack Overflow or Github, ask questions, provide answers, take part in coding competitions, go to tech meetups.


In your current job, master what you're doing, ask for more responsibility, and help others learn—particularly those more junior to you.


This, of course, is excellent advice. If you've been hired for a particular discipline, use your side projects not only to keep up with that core language or tool, but also to spread out your knowledge base and gain at least a basic understanding of some other languages, software, and other tools.


Constant learning is critical. On the point of continual education, Christian had a sobering point:


The first five years of your career really set the stage. In a new role or area, you're like a sponge, you're open to learning, you're curious, you ask questions.


But after the four or five year mark, you start to know a lot, people look to you for guidance, and your learning starts to switch off a little bit. So if you learn bad practices and bad habits early on in your career, you'll actually carry those with you.


Self assessment


For those already beyond that point, maybe this is time for some self-assessment.


Take a moment to consider where you are in your career. Are you still learning from your coworkers, your users, and your projects? Are you self-improving and growing through personal side projects? Do you still have a passion for your work?


Find the passion


It seems to be a common factor with a lot of companies that a passion for development is critical. Sometimes, especially for junior roles, it can even matter more than the specifics of education or knowledge.


Yet many of us are so caught up in the job security quest that we forget what drew us to programming in the beginning. We fail to realize sometimes that the passion and drive that got a lot of us here is what employers want.


Make a change


If you're already employed as a developer, and you're not still learning, and you're no longer passionate about your career, then consider what you can do to extract yourself from that position and change things. It could be as simple as an attitude shift or a change in responsibilities at your current workplace. It could be as dramatic as switching positions, employers, or even career paths.


Sometimes the hardest part is simply making the change. Beware of sticking with the status quo just because it's easier.


Full-stack or Focused


Many developers struggle with a path, whether novices or seasoned professionals. Is it better to be a focused developer—an expert in one language—or to be a full-stack developer?


The answer, it seems, may be a bit of both.

Own a discipline


The goal, for those starting out, should be to touch on a lot of things, then drill into one and make it your own. Use that as a launchpad to begin a real career as a developer, and own that one discipline.


Continue to tackle other ideas in your free time, though, and then start expanding other skills professionally after you're established.


However, also be versatile


Recruiters on the hunt for developers for senior positions acknowledge the need for broad understanding. Find a niche and be good at it, but don't close off to everything else.


Tackle other projects, languages, roles and disciplines both at work and on side projects to make yourself versatile and expand your skill set.


As Matt said:

We want people who can understand the tech from conception to production.


Christian had similar comments regarding the usefulness of full-stack mentalities:

Languages and frameworks are mere tools to solve business problems. Technology moves so fast that what is relevant and hot technology today is redundant tomorrow. We need people that want to learn and keep growing with the pace that technology changes.


Christian went on to add that, rather than focusing on the stack, these are the desirable qualities in a software engineer:

  • fundamental coding ability
  • sound architectural knowledge
  • depth and breadth of software development knowledge
  • ability to balance conflicting needs and adapt to get stuff done
  • passion
  • communication skills
  • delivery.


The suggestion for developers is to think of building your skills in a T shape. So, pick one area that you want to go deep in, but don't limit yourself to just this area. Keep learning and building that breadth of knowledge, because that may need to be your depth in your next job.


Find a Career, not a Position


Atlassian doesn't necessarily hire for specific job openings within specific teams. They're hiring talented individuals, it seems, for the sake of acquiring that talent, not just for a body to fill a slot in a particular team.


The same applies to many companies: they're hiring to acquire the asset that is a skilled, energetic and adaptable person. Focusing on exact roles in the company can be done during or after the hiring process, or even years later, if you want to transfer roles in a company that offers internal job postings and promotions. Getting your foot in the door is sometimes the most important thing.


This sort of attitude makes it all the more important to carefully consider your goals before choosing companies to approach. And don't just apply for jobs. Do your research on the company. Find out about their recruiters and HR staff, and make yourself known to them. Find yourself a career trajectory that surrounds you with talented developers. This will make it easy for you to continue to learn from your seniors, your peers, and sometimes even your juniors.


Make Yourself Noteworthy


When I asked Matt and Christian whether they had any unique stories about things people had done to either be instant hires or instant rejections during the Atlassian developer hiring process, neither could come up with much.


This is primarily because Atlassian, like many large tech companies, often goes after their own talent, rather than waiting for it to come to them. People don't need to be extravagant in their applications to get noticed, as they've often already been noticed by that point. This applies even for junior developers, to an extent.


The lesson here: make yourself noteworthy.


Ways to get noticed

Blog. Contribute to open source. Use social media. Build yourself an online presence. Interact with peers in developer communities like GitHubSitePoint ForumsStack Overflow, and many others.


Be fulsome with online profiles

Matt, Christian and I discussed online profiles at length, especially those on LinkedIn. One thing that was brought up was that recruitment spam on LinkedIn has made some people feel the need to limit what they put in their profiles.


When people limit what they show, they may stop recruiters like these gentlemen from approaching them at all. They only make the decision to contact someone based on the information available.


So if you're seeking a new position, leaving yourself open to more spam-like recruiting requests can be worth the pain, as you never know what gems will turn up.


Developer Interviews

Here are six pointers about actual developer interviews from Matt and Christian.


1. Research the company

Read over the company site and blogs. Watch their videos, get a feel for their culture, and look into news about the company and their ventures.


Being informed makes you seem interested, and better prepares you to discuss the company intelligently, and ask questions about how you'll fit into it.


2. Check out your interviewers

Look over LinkedIn and other profiles of those you'll be meeting.


3. Brush up on skills

You should know what areas are likely to be tested. If you don't, try to find out. Then brush up on the skills you'll be discussing, even if you're confident. Don't let some simple code challenge destroy your chances out of nervousness.

4. Practice

Practice pair programming online with a buddy or via a service.


Many developer positions in software companies, or large organizations, may have some form of pair programming test, or may observe you coding at the very least.


If not, they may practice pair programming among their developers if you get hired.


Either way, if you aren't familiar with it, become so, at least a little bit.


5. Know yourself

Think about behavioral scenarios, stories, failures and successes from your education and career so far. Be familiar with your own path and your strengths and weaknesses as a developer and as a team player.


6. It's your interview, too

Remember that an interview isn't just for an employer to decide if they want you. It's also the time for you to decide if you want them.


When an interviewer asks if you have questions, you should have questions. Ask about the direction of the projects you may be on, or the company's goals, or your place in it. Offer ideas that you've come up with for projects or additions to their services.


Be interesting, and be interested. This is as much a chance for you to find out about them as it is the reverse.


Go Get Hired as a Developer

It's important to remember that a large portion of this advice is based entirely on you, the developer.


If you want this, you may have to struggle. You may need to spend time looking for work in order to find the right company and career path.


You may have to build a portfolio, possibly even with free side projects or freelance labor done in addition to a full time job.


You may have to struggle to develop online profiles and histories for people to search, or learn technologies in addition to what you already are doing. But in the end, it'll all be worth it.


And if you do get that interview at your dream company, think of this. This interview may decide the rest of your life, or at very least, the next few years. Your income, your career trajectory, your future education, and your happiness may ride on the next series of tests and conversations. You owe it to yourself, and to those who are extending the offer, to prepare for that and to be the absolute best hire you can be.