Category: Uncategorized

“I Want to Work With Good People”

A series of tweets by Patrick McKenzie (aka ‘patio11’), CEO of a startup trying to fix developer hiring inefficiencies called Starfighter and well-known for his writing on tech topics, got me thinking about hiring and branding discussions that I’ve had with clients in the past.

In my initial recruiting conversation with a new engineer contact, I always ask about the engineer’s job search criteria.  I frame the question a few different ways in order to try and make sure I’m getting an honest answer, and (in order to best serve the needs of both candidates and clients) I try to note at least two or three criteria. Without fail, “I want to work with good people/teams” is an answer that I get at least 90% of the time.

Who Are the Good People?

For the purposes of these recruiting conversations, “good people” is generally shorthand for “skilled software professionals“. The “good” doesn’t equate to morals and ethics, although those are certainly part of the equation at some point.

When I’ve asked for a deeper definition of “good people”, I’ve learned that good people are smart and ideally want to do things the right way. They genuinely care about the quality of their work and their own ability to perform.

While consulting to my startup clients on the topics of employer branding and hiring challenges, I generally refer to some good people as magnets. A magnet is simply someone that other engineers want to work with or for, and usually possesses that mix of technical and soft skills that you wish every team member had. These are the engineers managers want to clone.

The hiring problem for many firms is that it’s difficult for the general public to discover if the company employs good people, or how many they might have.

Engineering Brands and Good People

Image title

If we definitively know or are relatively sure that a company has a talented software team, we could say that they have a strong engineering brand. Patrick’s tweet alludes to the fact that Google doesn’t have any issues with their engineering brand.

How do we know if any particular company employs these good people? 

They Build Great Products

Good people build great products, right? But that has some major limitations for most of the world.

Image title

It’s relatively easy for companies like Apple, Amazon, Google, Facebook, and Microsoft to attract applicants because everyone uses their products. There is a second and third tier with somewhat less traction but enough clout within the industry to attract a healthy number of aspiring employees. Netflix and LinkedIn are good examples of the second tier.

But what about the startup building healthcare data visualization tools, the GIS apps developer, or even the regional consulting firm down the street? These firms may very well fall into the employers of good people category, but their products aren’t widely known.

They Show and Tell Us

Image title

Companies like Google and Facebook have engineering blogs and publish developer-targeted products that probably help with recruiting, but their reputations are already established. It’s the companies that aren’t in these top tiers of known entities that need to focus more time on these efforts. Unfortunately, most feel they aren’t able to make branding a priority.

Image title

And because of that decision, they don’t get the pipeline of applicants necessary and end up paying more for talent. If this is true, it is often worth paying a salary above market value to hire a magnet to join your company due to the cost savings that hire will generate on future recruits.

CTOs and hiring managers should be conscious of whether they have a positive engineering employer brand beyond just having a reputation in the industry. A general positive employer brand does not always equal a positive engineering employer brand.


As someone who has been in agency recruiting for almost 20 years, I can say rather confidently that engineering branding (and not just overall employer branding) is the most overlooked and underappreciated aspect of hiring in the market today, so much so that my own business will focus more on consulting to clients about engineering branding and less on the traditional transactional recruiting model in the future.

Agents for Software Developers, Revisited


A few recent Reddit and Hacker News posts alluded to the idea of agents in the world of software. If professional athletes and artists can have agents representing them in hiring and negotiation situations, why not software talent as well?

Recruiters are almost always mentioned in these discussions, and after almost 20 years in agency recruiting I feel I understand the short and long-term financial motivations of recruiters pretty well. The primary difference between agents for athletes/artists and tech recruiters is that agents have incentive to help you get the best paying job, whereas recruiters only have incentive to help you get jobs with their clients.

Whether internal recruiters (think Facebook recruiters that only recruit for Facebook) or agency recruiters (that represent multiple companies), the motivation is only to get you the job IF the job happens to be with a company that is paying them.

If Lebron James’ agent only represented the Lakers, Knicks, and Celtics, it would severely limit his professional options. The agent wouldn’t care what the Cavaliers and Warriors might offer or whether those opportunities would be better for Lebron’s career. Lebron would likely want to work with multiple agents so he could be considered by the other 20+ teams in the league. Lebron might have 10 agents in this example, and they would all be working against each other and perhaps lying and cheating to get Lebron to sign with their client teams. This helps highlight a fundamental issue with the incentives of agency recruiters.

I first wrote about this topic almost four years ago in How to Disrupt Technical Recruiting – Hire an Agent, which explored the many issues and inefficiencies in contingency recruiting and how an agent model might work. I even wrote a follow-up piece shortly thereafter that got more specific on services that an agent might offer.

I admit that the current state of the recruiting industry, and in particular the overwhelming negative sentiment faced by third-party recruiters, has provided substantial temptation to transition my one man semi-retained recruiting practice into this agency model. My launch of Resume Raiders and offering of consulting and coaching to job seekers are a small step in that direction, and those services resemble a part of what I’d provide as an agent. If you want to seriously discuss representation, I’m easy to find.

Who Would Need an Agent?

The vast majority of software pros probably don’t feel that they need an agent, but that doesn’t mean there isn’t a market for the service. Here are a few thoughts on who might benefit most from an agent.

  • The busy – Job searching takes time, which is why many just wait for jobs to come to them instead of actively researching opportunities. An agent could also manage and vet incoming inquiries (READ: clean out your LinkedIn inbox) to see if they are realistic options or a waste of time. Instead of replying to every recruiter, imagine having your agent reply that he/she will be fielding questions.
  • The under-networked – Those without an established network are often limited to the traditional job market (listed positions) and don’t have access to the many possibilities that aren’t in the public domain. An agent must be connected to this hidden job market and to the major players.
  • The transitioners – These are people who just need a true advocate during a challenging job search, which usually involves either getting out of a bad situation or transitioning into something significantly different (new tech, new industry, etc.). When a job seeker goes it alone, they are their only advocate. When using an agency recruiter, the job seeker now has another advocate, but that recruiter will only advocate for jobs represented by his/her agency.
  • The meek – Those lacking confidence are more likely to accept jobs which are not ideal and approve of compensation packages below market. An agent will protect the client and help them say “no” to the wrong opportunity, provide guidance on regional market rates, and assist with negotiations if an offer comes in low.

Would You Actually Pay An Agent? And How Much?

The question of career agents usually comes down to money. Agency recruiters provide a free service (essentially paid by hiring companies) that some job seekers value and appreciate, but the service is clearly flawed due to the misalignment of incentives outlined earlier. The recruiter may do a great job and represent your best interests as well as possible, but at the end of the day, the recruiter works for the hiring company.

To hire an agent who will truly be representing without bias, the job seeker has to foot the bill. And how much should it cost?

The value of this service likely varies depending on who is being represented and what services the agent provides. Lebron James doesn’t need an advocate to generate interest in his abilities but rather just needs someone to make sure that market rate is received, help making the right choice, and ensure the terms of the contract are favorable.

Developers might feel that the value of this service will depend somewhat on how much an agent would be able to negotiate above the developer’s expectations. It’s been suggested that the agent’s compensation might be n% of the difference between actual compensation and expected compensation. So if the client would be satisfied with 100K and the agent negotiated an offer at 120K, one element of the agent’s pay would be a percentage of that 20K difference, keeping in mind that this is a one-time payment for an annual salary (that 20K difference multiplies every year). One flaw in this model is that the agent has an incentive to recommend the highest offer, even if that highest offer is not the best career move for the client.

Hourly rates are another possibility. One issue with hourly rates is that it encourages the agent to draw out the process. Any arrangement that doesn’t include some commission on the salary provides little incentive for the agent to negotiate aggressively.


There are companies who claim they are providing this type of service for technologists now, but those are mostly recruiting companies that are rebranded as agencies. A true agent will be able to help you with any employer, so firms that only service a select group of clients are not true agencies.

I’d be curious to hear thoughts on this topic. Again, I don’t expect this service would be appealing to everyone (what service is?), but it certainly would help to change the typical recruiter/candidate relationship that is so unpopular in the industry.

Show (Don’t Tell) Me That You Haven’t Stopped Learning

Whether through my recruiting work or my resume writing and coaching, I frequently review resumes that lead off with some kind of statement alluding to the candidate being a dedicated lifelong learner. Intellectual curiosity and a desire to keep skills current is something that many hiring companies will value, so it’s generally a good idea to convey those traits if you possess them.

Image title

Then as I make my way further down the resume, I try to see if there is anything to back up the claim. In most cases, there is little evidence to support that the candidate has made any independent efforts to pursue learning. Why the disconnect?

When engaging many of these candidates in conversation and digging deeper, I often learn about several examples that indeed validate the dedication to learning. It wasn’t that these people were lying. They just simply didn’t think some of these things were worth mentioning or often didn’t know exactly how or where to list these activities within the structure of their existing resume. I’ve had resume clients that omitted five or more worthwhile items from their resume that would clearly make a difference in an interview decision.

Below are some common examples of details that hiring companies will regard as evidence of intellectual curiosity which are often overlooked by candidates, and how to list them on a resume.

Meetups and Conferences

Being a leader, a speaker, or even just an attendee at technology events is something a potential employer should notice. Conferences can be listed specifically (city, date) or a more general listing can also work. Listing a few presentations is also appropriate if you’ve presented, and details can include title, date, and the name of the group.

Where to ListYou could create a section “Community Activity” or “Presentations” depending on your level of involvement. If it isn’t enough to warrant a full section, a catchall “Other” heading can include some more random mentions.


Projects like websites for religious or service organizations are often considered rather trivial by highly experienced candidates but are definitely worth listing if they demonstrate the use of technologies that differ from the day job. Helping out or mentoring school students in tech (robotics clubs, career days) also qualifies here.

Where to ListA “Volunteer Experience” section is useful for someone with a couple things to list, or an “Other” section would also work.

Side Projects

Home automation projects, personal websites, or simple apps that have only one user (you, your spouse, your kid) are all worth noting if it shows something you had to learn.

Where to ListNew grads almost always have a “Projects” section on their resume these days, so that has become a rather common header. Links to the code are a bonus.


Listing what you read can come off as a bit unusual sometimes, so this is probably something that only those who have little else will go with.

Where to ListThis might be a small subsection under “Education” 0r perhaps a “Recent Readings” list in an “Other” section.

MOOCs, Courses, and Training

With the abundance of free or inexpensive offerings today, millions of professionals are signing up for subjects that either interest them or that they know may interest potential new employers. Some have better reputations than others, so do some research if planning to invest significant time or money in these efforts.

Where to ListUnder “Education”, but below degrees. Unlike the listings in the“Experience” section, any non-degreed learning will not be listed in reverse chronological order, but rather by order of importance.

Undersell and Overdeliver

This week I received a multi-paragraph email from a job applicant who was applying for a developer position I had advertised with one of my clients. There was no resume attached or even referenced, which is highly unusual (sometimes there is nothing attached but a reference to an attachment). Maybe he forgot.

The email was almost exactly what I might have coached an experienced candidate to write in applying for this position. He demonstrated quickly that he had read the requirement and done at least a minimal amount of research on the company. His professional interests seemed to align nicely with the job responsibilities, he mentioned experience with the languages and frameworks we sought, and even linked to a couple project sites and GitHub repos so we could look at his code. The words he used were encouraging – “significant experience with…“, “I thrive in a…“, “worked extensively with…” – while indicating that he met the requirements of an ideal candidate. As you can imagine, I was quite interested.

I replied to express my interest and asked if he had a resume, which I use as a framework for an initial screening conversation and eventually is sent to the client if we agree to move forward.

The response noted that he’d forgotten to attach the resume, and he took the opportunity to reinforce his candidacy with a reference to a number of recent “larger projects” and further encouragement for me to view his code. When I finally opened the resume, I learned this candidate had no professional experience at all, and the projects referenced were all part of a recently completed 12-week boot camp.

It’s important to note here that the position I had listed was for an experienced programmer, and my hiring client would not consider anyone entry-level regardless of academic credentials. My client would not deem this candidate qualified for this particular role, but let’s pretend for the sake of this article that I did have an entry-level position available.

A Credibility Problem or Honest Misunderstanding?

When I learned that this candidate had never worked in a professional environment and had only been programming for a few months, his description of his experience now became a bit confusing. Larger projects? Significant and extensive experience? Thriving in and accustomed to certain environments?

Most professionals that have been in the industry would not consider a few months to be significant or extensive experience, and large projects in the industry aren’t typically completed in a few weeks. How would someone know what type of environment they thrive in if they’ve never been in a professional environment?

This disconnect could be the result of a couple possibilities.

If we’re giving the full benefit of the doubt, a boot camp graduate might consider these projects large just based on having no real project history to use as a baseline, and words like significantand extensive can be relative. A few weeks of experience could be classified as extensive when compared to someone that has never programmed.

At worst, the candidate is trying to represent a level of ability that he is rather unlikely to possess. Even the most intensive programs, whether they be boot camps or degreed, aren’t promising their graduates the ability to claim significant experience with large projects upon completion… are they?

Now this candidate would potentially be perceived as having a credibility issue, and, unfortunately, that label would stick even while under consideration for an entry-level job that he is likely qualified to do. What’s even worse is that an entry-level candidate has very little leverage in the hiring process without the credibility issue. So now we have what might be considered a somewhat homogenous entry-level candidate that starts off on the wrong foot.

Could he recover? Of course, it’s possible, but it shouldn’t be necessary. A more transparent approach which details the strengths and weaknesses is always a better option.

The Perfect Resume

Between my “Worst Resume of the Week” series being published over the past couple months and my continuing work reviewing and rewriting resumes at Resume Raiders, I’ve been too focused on the negative lately. Let’s change that, if only for a day. I thought I’d take the opposite approach and provide a guideline for what I’d consider the perfect resume.

Let’s jump right in.

Image title


Contact info – First and last name, bold and in a bit larger font than the rest of the resume. Address, phone, and email address in a smaller font to save space.

Links – Links to LinkedIn, GitHub/Bitbucket, Stack Overflow, and similar sites are often a nice touch. Even if you don’t have a ton of material on those sites, their presence helps create a three-dimensional person beyond just the resume. A link to a personal website or technical blog is also helpful if the content has some relevance or demonstrates a skill.

Summary – Two or three sentences that encapsulate you as a candidate. If we crossed paths at a conference and you had 15 seconds to explain why I should interview you, what would you say? Spare me the self-assessments about being a hard worker, team player, and having a great attitude. Everybody says those things. Instead, tell me what you do and how long you’ve done it, and areas of specialty or interest.

Let’s say you’re a full-stack web developer with seven years of Python experience primarily working in the healthcare space. Let’s also say that you are applying for my listed full-stack Python developer position at my healthcare startup; you could let the resume reader work his/her way through the resume, put together the clues, and eventually (hopefully) discover, “Hey, this candidate looks like a full-stack Python dev with healthcare experience!” Or you could just tell us that right away and eliminate the very realistic chance that the reader won’t pick that up.


Experience –  Include job title, company, and dates. If you’re unemployed, don’t list the dates as ‘2010 – present’ and then play the “Oh, I didn’t update my resume yet with the end date” card. It comes across as deceptive. Update the resume before you send it out.

If it’s likely someone wouldn’t have heard of the company, a single line in small font to describe the employer can be helpful to provide context.

The experience details under each job could include a few sentences in paragraph form about your responsibilities, and then have unique and novel accomplishments listed below that in bullets. Quantifying things is usually helpful. How large was the team you lead? Do you have metrics on the performance improvements, lines of code, other factors?

Include at least the most relevant technolgies you used during the projects or overall job; languages, frameworks, and databases are usually enough here. It’s often redundant to list things like IDE’s or version control tools under experience, since we’ll list them as skills and hiring firms aren’t likely to require n years of experience with Eclipse and Git.


Skills – This section is somewhat for the benefit of an automated scanning software (see ATS) and somewhat for the benefits of human reviewers who may be looking for certain skills required for the role. Separating skills into categories will make it easier for readers to find what they are seeking. Categories may include languages, frameworks, databases, operating systems, and usually some type of catch-all (tools or other). When it comes to communication and soft skills, show me, don’t tell me. “Hard worker” isn’t a skill.

Education/Certification – It should be clear how much education you have and whether or not you completed the program or earned the degree/certification. The name of the school and course of study should also be included. Unless you are a fresh grad, don’t waste space on specific classes towards a degree.

Other – Any other information that might indicate your experience and ability will usually be included at the end. This could include publications, users’ groups and Meetups, conferences, presentations, volunteering, community leadership, or a host of other things. Don’t include lists of references.

That’s it. Any questions?

Thank You Notes: They’re Not Just About Gratitude

Thank You notes have been part of the job search tradition for many years, and although the typical delivery format has been updated (email is fine), I tend to find that candidates still primarily view the note as a gesture of gratitude or a formality. I suggest that job seekers instead view the Thank You note as an opportunity to maximize their chances of an offer.

Image title

Sending a Thank You note does allow a candidate to check off the “Meets Minimal Social Obligations” box that an employer may wish for in potential employees. We will lead the note with an expression of appreciation, but an effective Thank You note will go farther than just a show of gratitude for an hour of someone’s time.

What other mileage can we get out of the note?


Perhaps the most important potential use of the Thank You note is as a reminder to the interviewer. This is your “Don’t You Forget About Me” moment. An interviewer might meet with a handful of candidates in a day and as many as 20 in a week during active hiring binges, which can make it more challenging to stand out from the pack (particularly if your interview falls somewhere in the middle of those 20).

Once we’ve shown the obligatory gratitude, we want to somewhat tacitly remind them of both who we are and what we want them to remember about our interview. As opposed to writing “In case you forgot, I was the chubby guy in the Uber t-shirt,” we want to refresh the interviewer’s memory by conjuring up a part of the interview that seemed to go particularly well. Good examples could be a project that had specific relevance to the employer, an interesting solution to an interview exercise, or even some shared professionally painful experience broached during the conversation. Think about what was memorable and make a comment about that moment, and hopefully the interviewer will have felt the same way.

Follow Through and Continuation

The Thank You is also a chance to provide a bit more information that might bolster your candidacy or demonstrate that you’ve given more thought to the interview since it ended. Maybe you mentioned a language/tool you’ve used that the interviewer was unfamiliar with. Sending a link with further reading material related to a discussed topic could show thoughtfulness, prove that you are someone who follows through, and can also start a continued dialogue with the interviewer that can serve as a type of bonding.


Lastly, the Thank You is a way to summarize your interest in a more eloquent manner. Interviews often end rather quickly and abruptly, and even the most skilled candidates may not find an opportune time to express their interest clearly and effectively. The close of the Thank You can relay both your level of interest and the reasons.


Instead of just viewing a Thank You note as an obligation, use it as a tool to highlight and revisit the best parts of your interview.

Things Geeks Should Know About LinkedIn

As much as LinkedIn seems to be turning into the worst parts of Facebook, flooded with tired memes that include phrases like “Only geniuses will get this math problem correct” or “Don’t scroll past without saying AMEN!“, having a LinkedIn profile is still generally considered a good idea for technologists. It can store business contacts in one convenient place, help you get found if you are open to new opportunities, come in handy if you are actively seeking work, and even double as a resume in a pinch.

Image title

As a technologist, you probably spend much less time on LinkedIn than I do in my recruiting work and for Resume Raiders (which added LinkedIn review services last year). In talking to clients about their LinkedIn profiles, I’ve learned there are a handful of things that aren’t obvious to most users. Here are a few common misconceptions or unknown features:

  • A picture is worth 1,000 clicks (but sadly, no Amens) – LinkedIn’s search algorithm includes “Profile Completeness”, so profiles that are more complete should rank higher. If you click on Profile>Edit Profile from the dropdown menu, the Profile Strength meter should be in the upper-right of your screen. A full circle means your profile is complete, and filling out sections and adding a photo will help improve your completeness ranking and visibility.
  • Vanity URLs – By default, your LinkedIn profile might look something like That’s not a big deal for most people, but try putting that monster URL on a resume (which I do recommend to my resume clients) and it takes up a whole line – so now you have to decide whether to delete your PhD or your Nobel Prize to keep it one page. To set a vanity URL, go to Profile>Edit Profile and you should see the current URL under your photo (or where your photo should be). If you hover over the URL, a gear icon will appear to the right of the URL. Click the gear and on the right side of the screen you will see a “Your public profile URL” section, with your current URL and a pen icon. Click the pen and you can edit this URL to make it shorter. Just don’t forget to update any sites where you listed the previous URL (I am not aware of any forwarding for changed URLs). Take my advice, and don’t be like Guido van Rossum (who didn’t take my advice).
  • Drag and drop – Sections on your LinkedIn profile can be reordered to highlight your strengths and minimize your weaknesses. For recent grads we usually put Educationsections near the top of resumes, so why should a LinkedIn profile be any different? While in the profile edit mode, hovering over any section will bring up an arrow on the right side which allows you to drag and drop sections.
  • Don’t set off any alarms – Have you ever gone on LinkedIn and seen a bunch of notifications about your co-worker Sam saying “Sam has added new skills to his profile” and “Sam has added a new summary to his profile” and “Sam has one new recommendation on his profile“. Guess what? Sam IS ABOUT TO GET PAID!  Many users are afraid to update their LinkedIn profile because it alerts connections (READ: co-workers, your manager) that you made a change, which often indicates a job search. While in editing mode, you should see a “Notify your network” reference in the right sidebar with a slider to turn on/off publishing profile changes to your connections. If you want to keep changes private and avoid annoying your network with a notification every time you add the newest hot JavaScript framework as a skill, switch it off.
  • Direct Contact – Recruiters who use LinkedIn may not have the most expensive accounts, which (to simplify) may limit how often they can invite people to connect. If you’d like people who see you on LinkedIn to reach out and rather they didn’t send a connection request every time, why not include your email address in the Additional Info section?
  • Got something to say? – If you have things you want to write about but aren’t interested in setting up and maintaining a dedicated blog, LinkedIn gives you the option to write posts that can be read by your professional network without having to go through all the hassle a blog can bring. It automatically broadcasts the content, allows you to tag articles to be found by people you aren’t connected to, and maybe your content will get you found. After logging in you should see the option to “Publish a post” on the right side above your feed. The editor is clean (though you’ll probably use Emacs), it allows comments, and you can even access some metrics on views and likes – though sadly, no metric on Amens.


LinkedIn isn’t always the most useful platform, and most tend to agree that it’s getting worse. However, spending a few minutes to optimize is probably a wise investment. And change your password.