Chapter 6
IN THIS CHAPTER
Understanding the differences between a junior and senior developer
Overcoming your lack of experience by showing other skills
Learning about what companies focus on if you’re a senior developer
After reviewers at the company have been impressed by your résumé and your cover letter, and they don’t see anything in your social media profiles that make their jaws drop, they’ll not only consider interviewing, you but also think about what types of interview questions to ask you.
Your résumé is a microcosm of your work life just like a baseball scorecard is a microcosm of an entire game’s activities, so your résumé readers will get an idea of how well you can hit when the game counts.
We’ve divided the chapter into three parts to help you understand how the company will pitch to you:
Always presume the people at the company (especially the programmers) know the difference between a junior and a senior software developer. If you’re not sure, here are common responses from people at companies with senior developer positions on the Stack Overflow website (www.stackoverflowbusiness.com/blog/what-defines-a-senior-developer
). Senior developers have:
You can read more about these responses, read related articles, and also read several articles about career development for programmers at the Stack Overflow Talent website shown in Figure 6-1.
The term “junior” has many negative connotations, including being small and secondary, but there are advantages to having junior status. (The classic Seinfeld episode, “The Junior Mint” is a case in point.)
In your case, you may fall into one or more junior programmer categories:
No matter what category you fall into, companies will still see you as a junior programmer and you have to communicate all your other positive qualities to make up for your lack of experience, especially in your cover letter and across your social media profiles. The qualities you communicate have to dovetail closely with what the company wants in an ideal candidate. These qualities include:
That last question is especially important because companies, especially larger ones, look at junior programmers as a long-term investment. That is, junior programmers save the company money in the short term with lower salaries (at least to start). But over the long term, companies can keep junior programmers around for a while to groom into senior programmers (or a manager). The company may even spend some money to help you develop your skills.
Smaller companies or startups may be more interested in hiring you because they won’t have to pay you as much, but they may not be able to invest money in your development (at least not right away). So they’ll look you over maybe even more closely than large companies to make sure you can get up to speed quickly and that their investment in you will be worth it.
When a company résumé reviewer notes that your work experience is lacking, that person will pay more attention to the education you listed in your résumé. Depending on what that person finds (or not), the company may decide (or have procedures in place) to get more information from you.
You should be prepared to have copies of your schoolwork ready to send to the company representatives if they ask for it, or provide samples to an interview panel.
That schoolwork may not only include completed assignments but also final course grades. Don’t be surprised if the company also asks you for information about your instructors so that a company representative can contact them and talk about their impressions of you.
If you know that a company will have a hard time finding your scholastic information because you decided not to go to a college or university, but instead decided to go straight to the minor leagues out of high school and attend a coding bootcamp or learn on your own, you need to be up front about that in your résumé and especially in your cover letter.
By “up front,” we mean you need to focus on pointing to your portfolio of sample projects on your website that people can review. If you can’t do that because you’ve worked with contractors and they won’t let you use samples, you need to provide the contractors’ information so that the company can contact them for more information.
When your experience is lacking, companies will also look at your extracurricular activities — and not ones on your social media profiles that show you partying every weekend. Companies want to see that you’re spending your free time becoming a better programmer. Company representatives like to know that you’re not just developing to have a job, but that programming it’s something you enjoy doing and are passionate about.
Your extracurricular activities should also show that you’re engaged in your community. That can include volunteering at your local school to help tutor kids in coding, running your own group through the Meetup website, and/or participating on a sports team that demonstrates teamwork, discipline, and a good work ethic. If you need more suggestions about how to stand out, bookmark this page and read Chapter 15. We’ll be here when you get back.
Qualities such as having a strong work ethic, being disciplined, and being a team player are all part of someone’s character. Calvin’s dad in the Calvin and Hobbes comic strip had it right when he kept pressing his young son to build character even when Calvin (often) didn’t appreciate it.
Company reps will look at your character to see what kind of benefits you’ll add to the company. (You’re right that this is true of any developer, but it’s especially true when you don’t have much of a portfolio of work to back you up.) When interviewers examine your character, they’ll want to see not only someone who’s passionate about developing software, but also someone who has a lot of ambition. They want someone who’s going to take charge of what she’s been put in charge of.
Commitment is another aspect of character that warrants special attention by your interview team. We mention earlier that the company is making an investment in you, just like any baseball team is making an investment in a hitter who has tantalizing hints of greatness but needs seasoning (the diplomatic term for a lot of work) before reaching the majors.
Your résumé reviewers will be interested in what you’re doing now to show that you’re reliable without the pressures of a deadline in school or at work. So, here are some ways you can show potential employers that you get things done outside of work:
You may have other activities in your area that you already participate in, such as the aforementioned sports teams. We can hear the gears in your brain turning already.
When we talk about resolve, we’re not referring to the carpet cleaner. Interviewers will want to know that you have the resolve to tackle any challenge you find no matter what it is. And they’ll test your resolve by giving you programming questions to solve and “soft skills” questions such as how you resolved a conflict with a fellow team member.
Interviewers won’t be impressed if you answer a question about resolve by just saying, “Oh, I’ve handled this before. No problem.” A better answer is to say, “You know, no matter what’s thrown at me, I’m confident I can figure it out. I’m not worried about it and I’m committed to making sure I get the job done no matter what it takes.”
You’re interviewing for a programming job, so the interviewers will want to see that you can actually write code during the interview. They’ll pitch you fastball programming questions as well as questions to test how you think about problems.
You learn more about the types of questions you’ll receive and how best to solve them in Part 3 in this book, but here’s a sneak preview of what to expect:
If you can show your interviewers that you have a clear, rational method of solving problems — especially when you’re under the pressure of an interview — this will tell your interviewers that you’re a good hitter and that you may belong on their team.
All of these values are part of your story as a programmer, and your interviewers want to hear your story in order to get to know you better as a person.
If you’re a freshly minted programmer from a college, university, coding camp, or you taught yourself, be ready to tell the story about how you always wanted to become a programmer and why you decided to study the way you did. If you were in school, you may want to explain why you did or didn’t join one or more computer-based clubs. You should explain why you did or didn’t become an intern at a company. Finally, you should talk about what you’ve been reading in books and online because you’re excited about the latest issues and trends.
However, if you have a few years of experience already and can be considered a mid-level programmer (kind of like a Triple-A player in baseball), you’ll want to tell the story of your previous jobs, what you learned from each one, and how your job and your activities outside of work are helping you grow as a software developer.
In sum, the company wants you to answer a simple question: Why should the company hire you, a person who’s not that experienced in programming, when they can hire an experienced programmer you’re competing with in the interview game? The better story you can tell, one that helps the company understand you better as a person, the better your chances of being picked for the team.
Senior programmers are somewhat of a rarity in the job market and just as with free agent players in major league baseball, your interviewers will judge you differently because you’re experienced.
You’ve handled most if not all of the problems in successfully producing software, so your interviewers’ expectations will be higher. They’ll want to know that you’ve demonstrated some leadership skills, helped junior developers, and learn about the different scenarios you’ve encountered in your career.
Interviewers will be most interested in your experience, and that experience likely won’t be all good. Maybe you left a company because of personality conflicts that couldn’t be solved. Maybe a job became boring and you decided to look for the proverbial greener pastures. You may have been fired or laid off from one or more companies.
One mistake to avoid when you write your résumé, cover letter, and talk with your interviewers is to try to hide any and all bad stuff in your record. Interviewers know you can’t hit it out of the park all the time (and if you get the impression that they think you should, there’s a big red flag for you), but you still gain experience with each strikeout.
So, don’t talk about others or the situations in a bad light, which is likely to put you in a bad light with your interviewers. Instead, talk about what you learned from the situation to make yourself a better programmer, team member, and leader. Your story should show how you progressed from being green and untested to today’s seasoned programmer who would be a valuable employee at the company.
No matter your job history, you’re going to field a lot of questions about it. If you’ve been at your current job for a long time, and now you’re looking elsewhere, expect your interviewers to ask questions about your current job, such as:
The moral of this story is that you need to show that your skills continue to advance over time even if your job title has remained the same. We talk about the skills tests you can expect in the interview later in this chapter.
What if your story is that you’ve been switching jobs too often? That will be a red flag for any company you apply to because the résumé readers may think that you can’t fit in with teams and/or you’re just not a good programmer, so that’s why you keep leaving jobs all the time.
However, interviewers don’t know the circumstances of your departures, so if a company contacts you and asks about your work history, you have the opportunity to explain the various reasons for switching jobs. For example, you worked on small-term contracts and the contracts ended to the client’s satisfaction. Don’t presume that your interviewers know about the contracting world and expect to tell your interviewers how the contracting process works and how you came to find your contracting job(s).
Another reason you may have switched jobs often is because you were wooed away by new opportunities. That could be a big red flag for your potential employer, as it may seem as though you are prone to being swept off your feet by the next suitor who sweet-talks in your ear. You need to tell interviewers why you left for those opportunities, why you believe the company you’re interviewing with is a great fit, and why you want to put down roots with the company.
It’s likely you have gaps of time between jobs and your interviewers will want to know all about them. The worst thing you could do is give a simple answer such as, “I just needed a break.” Hiding your stories is a good reason for interviewers to end an interview early.
Instead, explain every gap and say what you did during that time. If you decided you needed to take some time off and reenergize your batteries, say you did that and give some details about what you did. If there was a family emergency, say so. If you said you weren’t challenged in your job and it was burning you out, say that, too.
In sum, when you tell your story, tell it completely and in the best way possible.
Speaking of taking time to become a better programmer, interviewers will want to see that you’re a lifelong learner. Companies want to see that you’re showing some advancement over time.
You don’t want to be a senior programmer who never learns anything once you get out of school and draws a blank when interviewers ask what kind of books or blogs you’re reading now. If you’re relying on what you learned 15 to 20 years ago, you’re behind even junior programmers in the competition for the job. (What, you didn’t think there were other candidates for the job?)
So, take every opportunity to mention what you’re doing to improve your skills — coding skills, interpersonal skills, and leadership skills.
Leadership skills are expected from senior developers inside and outside the workplace. In the workplace, you need to be able to voice your ideas in a way that people will not only understand, but also have enough weight for people to take action to get something done or fix a problem.
Workplace leadership also involves working with junior programmers and helping them become better programmers and better members of the team. That type of mentorship can be formal where you have taken a programmer under your wing and now that programmer is considered to be senior level. Or the mentorship can be informal where you give your feedback and encouragement whenever you can. What’s more, if you have a problem with a fellow programmer, you know how to resolve that problem discreetly and effectively.
Leadership also requires involvement in the wider community. That is, you should be leading something. The higher the position you’re applying for, the more leadership skills and community involvement you need to be involved in. For example, you can do one or more of the following:
If you need more suggestions about how to stand out, you can bookmark this page and read Chapter 15 while we take a break and eat some healthy snacks.
You can also visit the Programming Leadership website shown in Figure 6-2 (https://programmingleadership.podbean.com
), listen to podcasts about the topic that are regularly produced by Marcus Blankenship, and find out if that site is a good resource for you.
Workplace leadership also requires you to have skills in other areas. Depending on the job you’re applying for, the company you’re interviewing with will expect you to wear a number of hats:
These are all topics that junior developers won’t know about or won’t be able to do, so as a senior developer you need to be ready to talk about these issues at any time. Even if an interviewer doesn’t ask you directly, you may want to talk about how you led your team — especially the junior developers — to use these technologies and fix problems that crossed your path.
Companies expect senior-level developers to have other business skills that are important for the company to succeed. Those skills can include:
If interviewers notice that you worked for a small company, they’re going to expect that you have these skills because startups and small companies don’t have the resources to hire a large number of people with different skill sets. So, the senior-level developer is the one who gets more responsibilities as well as leadership opportunities.
What’s more, if you’re applying to work at a startup or small company, then your interviewers (which may be the founders) may expect that you have these leadership skills because there isn’t anyone else with your skill set who can do those jobs. (If you show you can do them, you may get a job offer much sooner than you think.)
With all this chatter about non-programming skills, don’t think for a second that your interviewers won’t ask you about your programming skills; those questions will go deeper. For example, interviewers will expect you to have a higher level of familiarity with design patterns. You should know how to use them and scale them, recognize when design patterns are used at scale, and know how to apply design patterns at scale to build robust code.
You should also presume that you’ll not only be tested, but given a more challenging test than a junior programmer to write out on the whiteboard because of those (say it with us) higher expectations.