Software Developer Resume Anti-Patterns
The easiest way to land a new job is through your personal and professional network. The people who know you and have worked with you are the most qualified to vouch for your outstanding technical talent and charming personality, and leveraging those people to make direct connections with hiring managers is often the most productive way to find a new job. However, your network can only take you so far. If you don’t know anyone at your dream job or your network is limited, you’re relying on your resume to get in the door.
I’ve heard the sentiment expressed more than once that resumes are irrelevant for software developers. Some think they’re a relic of the past while others feel their GitHub portfolio should be sufficient. In my experience, most applicants have no serious work on their GitHub profiles beyond a few trial projects and forks of other repositories. Unless your job is to work on open source software, your resume is the only meaningful artifact a screener has beyond whatever is available about you on the Internet- the impression it makes will dictate whether they take the next step.
Anti-Patterns
The majority of resumes I review don’t communicate an individual’s potential value were they to join my team. Instead, most resumes follow similar (anti-)patterns: opaque references to projects wrapped in a laundry list of technologies, buzzwords, and practices. Qualified candidates are being rejected because of the gap between my criteria and what a candidate communicates through their resume.
Your resume should communicate your potential value to my company and my team by expressing the value you’ve provided to your current and previous employers. Below are some examples of common “resume anti-patterns” and proposed improvements.
Command of Technology
As a software developer, it’s valuable to communicate the languages and technologies you’re most comfortable with to potential employers. For some positions, familiarity or even expertise with a technology is a requirement. However, simply listing the name of that technology doesn’t do anything to convince me of your competency. Although your resume isn’t going to stand in for a technical interview, the way you communicate your experience with a technology can help positively bias a screener and future technical interviewer looking at your resume.
Anti-Pattern: Technology Bingo
A laundry list of languages, technologies, or tools without any context about how you’ve used them or any tailoring to the job to which you’re applying.
Example:
Tools: Ruby, JavaScript, JQuery, React, Git, JIRA…
Improvement:
Added a set of mobile specific APIs to our Ruby on Rails application responsible for tracking national corn dog prices. Implemented caching using etags, resulting in a 60% reduction in API response time from mobile devices. Led the effort to upgrade to Rails 5. Prior to that, applied and validated several security patches for Rails 4.
Improvement:
Implemented a feature to aggregate national corn dog pricing data and expose the results via a JSON API that conformed to the JSONAPI standard in Ruby on Rails. Used Sidekiq to spin up periodic jobs to scrape several third party JSON APIs and stored the results in MongoDB.
Improvement:
Led the effort to evaluate and adopt a new JavaScript UI library. The decision came down to Angular vs React. Chose React based on a lower barrier to entry (as no team member had used either library previously), perceived ease of componentization (our UI is composed of many small, reusable parts), and potential to adopt Flux or Flux-like unidirectional data flow.
Improvement:
Lacking an official product manager, our engineering team was being led by our VP marketing, but we still lacked day to day project management. I proposed and successfully adopted JIRA for our team and assumed an unofficial project management role. In addition to performing my regular development activities, I also worked directly with our VP Marketing to refine and decompose product requirements into JIRA tasks for our weekly sprints.
Soft Skills
Developers, like any other employee, have the potential to contribute more to an organization and a team than just their technical expertise. Expressing your personal “soft strengths” is not only another opportunity to demonstrate your value, but also shows that you recognize you’re more than just your immediate technical capacity.
Anti-Pattern: “Excellent Communication Skills”
Exactly as it sounds. Listing “Excellent communication skills” on your resume is a great way of expressing the exact opposite.
Example:
- Excellent communication skills
Improvement:
Lead and moderated an ongoing series of platform improvement meetings in order to regularly pay off technical debt. I introduced a code of conduct to these meetings to try and prevent blame/shame and ensure all team members got an equal say in recognizing and proposing solutions for technical debt.
Anti-Pattern: Vague Mentorship
Failing to explain how or why you mentored coworkers.
Example:
Mentored interns
Improvement:
Expanded our engineering internship program by reaching out to my alma mater for qualified applicants.
Improvement:
Spent 5 hours weekly bringing a computer science undergraduate up to speed on JavaScript best practices during her last semester. Hired as a full-time employee after graduation.
Improvement:
Created a weekly engineering book club after coworkers on other teams expressed an interest in learning Ruby. Scheduled readings and provided and reviewed learning exercises.
Culture Fit
In the same vein as the soft skills category, expressing your style of work and interaction with your coworkers can give a potential employer valuable information on where and how you can fit into the team. Good managers recognize that successful teams are composed of disparate personalities and dispositions, and expressing your preferences and style of work can help you land in a team where you can thrive.
Anti-Pattern: Saying Nothing
Most resumes say nothing about an applicant’s preferences toward team structure and organization or disposition.
Improvement:
I thrive in highly collaborative environments and prefer to pair program whenever possible. I also enjoy participating in thoughtful planning sessions around architecture and system design. I’m happy to work with product managers to clarify requirements, but prefer not to be heavily involved in the initial product brainstorming/development cycles.
Improvement:
I especially prefer working at early stage startups because of the opportunity to take on a “product engineer” role. I enjoy collaborating with product and design team members to research, brainstorm, and prototype features before finally implementing them.
Improvement:
I work most effectively as an individual contributor. I have no problem collaborating with my teammates on feature design or bugs, but as a natural introvert, I’m most productive coding solo.
All of these recommendations can be boiled down to a single piece of advice: communicate more about yourself. The more information a hiring manager has about your experience, interests, personality, and value, the better likelihood you have of getting called in for an interview.
One last piece of advice: there’s an unspoken rule that resumes should never be longer than a single page. It’s important to be clear and concise on your resume, but don’t do so at your own expense. If you’re so wonderful and accomplished that your resume spills out onto a second page, more power to you!