In my line of work (recruiting, job search coaching, and resume writing) and through my comments on Reddit, I’m often asked by job seekers how they can get noticed by a favored employer (which we’ll call COMPANY). A good resume, cover letter, and online profile are the standards if you don’t already have a friend on the inside, but when competing with candidates who might look better on paper, your results might not always be positive.
When you have narrowed a job search down to a few top places where you really want to interview and perhaps your qualifications fall a bit short of the company’s ideal candidate, a bit of extra customized effort can make a major difference in your results. Most people tend to use elaborate cover letters or resume delivery methods, which may work sometimes but aren’t entirely original. Sending a box of cookies with a hidden resume inside might get some attention, but methods like this don’t elevate you as a candidate so much as they make you appear willing to bribe.
Your mileage may vary (read: good luck!) when it comes to the biggest names that get hundreds of thousands of resumes per year, but startups and smaller firms will find one tactic difficult to dismiss or ignore.
What’s the most effective way in?
Use COMPANY’s Stuff!
If you want COMPANY to say yes to the interview, create a project using COMPANY stuff. This could be APIs and data sets, open-source code, or anything resembling the development work you might be doing while working for COMPANY.
Does COMPANY have some publicly available APIs? Create a project that makes some novel use of the API or extends the functionality of an existing related project. Find some public data sets that pertain to COMPANY’s business and create something with them using the tech stack COMPANY lists on their job specs.
Is COMPANY involved in open source? Jump into a couple of their repos and see if you can address a few of their issues.
Read up on COMPANY’s tech blog, find out what the developers are working on and any unique challenges they faced, and make a comment linking to relevant information.
It’s a pretty simple concept. If you are applying for a job with COMPANY, anything you provide that reflects the kind of work you’d be doing for COMPANY serves two purposes. First, this is perhaps the best possible evidence of your work quality using their tools, and second, it demonstrates your interest in and potential commitment to their work.
Let me start by saying that I consider myself a longstanding friend and ally to the Java community. As some readers will know, I founded and ran a large Java Users Group (I miss you Philly) for 15 years, and much of my career was spent focused entirely on recruiting Java professionals. In one capacity or another I have probably helped thousands of Java developers get jobs, and even though I no longer focus on Java in my practice or run the JUG I will always be linked to Java.
But now we need to have a talk.
I read a lot of resumes. I get them from applicants who apply to jobs that I have posted. I get them from (mostly) junior people on Reddit where I mod a career questions subreddit /r/cscareerquestions. And I get them from my Resume Raiders clients who are looking for me to either review or rewrite their resume for them.
So although my data is anecdotal, I have a lot of it — about 18 years’ worth to be exact.
When I get resumes from Java professionals, I’d estimate that on average they are 1.5-2x as long as resumes from other developers of similar career lengths.
One could think it might have something to do with age. Java has been popular for a long time now, so the age of the average Java developer might be higher than say those doing Ruby or Python work. Anecdotally, I don’t think this is it, as I see relatively shorter resumes from highly experienced candidates that don’t use Java.
Some might think it could have a cultural element. The Java community in the US may have a larger contingent of international talent than other language communities, and other countries have different resume/CV styles and acceptable lengths. Java resumes from those who were born overseas tend to be noticeably longer than their US-born counterparts, but I also see non-Java resumes from foreign-born developers that tend to be shorter than the Java devs.
Do Java devs move around more than those in other language camps, and more jobs results in longer resumes? Generally speaking, I don’t think so, and in many cases the opposite may be true, with long tenures being somewhat common for Java devs at large firms. Workers on visas under contract do tend to get moved frequently between projects all across the US, and this can account for length for those in this type of work.
One might surmise that the lengths could be related to the vast number of tools and technologies available over the years in the Java ecosystem. Listing an abundance of frameworks, app servers, IDE’s, testing tools, etc. that one has used over the years could require a good deal of real estate, and those who are writing their resume may be a bit liberal in their skills listing if they are aware of ATS products (robot readers) that scan and score the resume for keywords. It’s true that the skills section of the average Java dev resume is almost always a couple of lines longer than those from other language camps, but the skills section is a rather small percentage of the overall document.
I’m not going to make the link between Java being verbose and Java resumes being verbose. But perhaps I just did.
Why Does it Matter?
I’ve written a ton of material about resumes, and resume length raises a few major concerns.
- Communication skills: Efficient word usage is a desirable trait for an employee who will be potentially writing documentation (not to mention code) to be consumed by other employees. Unnecessarily verbose resumes don’t reflect strong communication skills.
- Signal vs. noise: There are elements of every resume that account for signal (the reasons that a hiring company will hire you) and then there is noise (anything else). A long resume tends to make it hard for readers to find the signal in a sea of noise.
- Intimidation: Hand a recruiter a resume and say “This one is only five sentences”, and the recruiter will read every word. Hand a recruiter and say “This one is 20 pages”, and the recruiter will immediately start trying to look for reasons to stop reading. Even a minor indication that this candidate isn’t a perfect fit could be used as an excuse to hit delete and move on.
Unfortunately, I don’t feel I have a good answer to explain this one. I’d be happy to hear from anyone who feels they might. In the meantime, if you are one of those with a resume over three pages, try to optimize what you have. Your inclusion of every minute detail is not helping the reader.
Last week, a GitHub repo called google-interview-university popped up on the radar when it hit Reddit and Hacker News. Go ahead and check it out.
The tl;dr is that an early-forties self-taught developer named John with an Econ degree and about fifteen years of varied startup experience has compiled a lengthy and thorough study guide of sorts that he is using to try to get a job at Google. It contains hundreds of links that run the gamut — tips from Google recruiters, books to read, articles on data structures, questions to ask in the interview, and even a link to a PDF file that says “future Googler” with the colorful Google logo intended for printing as some sort of inspiration (you know…because you should print a sign) — all courtesy of a man who uses the domain googleyasheck.com.
According to his LinkedIn, John has been studying full-time since April of this year to reach his goal of becoming a Google engineer.
Insert sound of brakes screeching.
A guy that has been programming since the TRS-80 days and doing stuff with the web since 2000 and runs his own startup is taking off seven months to try to get a job at Google?
I’m not sure exactly what is wrong with this picture, but something feels wrong.
It could be that someone is investing an awful lot of time into a goal that, when they reach it, might be entirely unfulfilling. This isn’t meant as a knock on Google – but clearly, like every other company in existence, Google isn’t going to be a great fit for everybody.
Maybe it’s that an experienced person already in the industry who is probably qualified for a substantial number of programming jobs and even less hands-on technical roles (Product Manager jumps out at me) at hundreds of other companies still may need (or felt the need) to spend over one thousand hours studying just to get past a few hours of interviews with Google.
And what if it doesn’t work out? I’m absolutely rooting for John no matter what (I can’t imagine his enthusiasm and newfound fame won’t help), and I guess if he has a bad day on the phone screen and fails he could still take his knowledge to some other elite companies that could hire him.
Reaction from the web has ranged from laments on the effect of Google’s “CS trivia” interviewing style on the industry to cringeworthy Google fanboyism to admiration for a guy who is working hard to achieve a goal. All have some level of validity.
I see Google worship on a fairly regular basis on Reddit, and I’ve previously written about this fixation many new college grads have on the “Big 4” (or Big 5) companies. It’s rare to hear of senior level candidates having the same enthusiasm, and rarer to see someone taking months off of work to try and qualify for a new job.
As much as I admire someone for setting a goal and working towards it, I’m torn.
I was on the phone yesterday with a senior level hiring manager from a potential new client, and she said something I hadn’t heard in a long while.
“We love older programmers.“
When I speak with CTOs and hiring authorities about their dream hires, some are more cautious than others when stating their preferences. I’m not a lawyer and don’t know specifics on the rest of the world, but here in the U.S. we have laws that try to prevent discrimination in hiring. Some company representatives will describe ideal candidates to recruiters in conversations that could be approaching a somewhat gray line from a legal standpoint, and in these cases a recruiter should clarify that he/she will present all qualified candidates regardless of whether they are a member of some demographic.
We read so much on ageism working against the most senior in the industry that sometimes we forget that there are firms that prefer some gray hair. The problem, of course, lies with the numbers. As I said, I hadn’t heard a strong desire for hiring the most senior level resources in a long time, and we generally don’t see companies using language in ads that would tend to attract older applicants.
Job specs penned by HR or internal recruiters may describe the company as being young and having energy without any disambiguation as to whether the reference is to the employees themselves or the newness of the organization. “We’re a young company” can have more than one meaning – maybe it means “we’re all 22 years old,” or perhaps it means “we’re in an incubator and angel funded.” We may read about established and stable companies, but how often do you see a reference to a “mature team”?
When we look at company websites that show photos of their entire development teams or just a few select profiles, it can give a sense as to the type of culture the firm is trying to portray. These are usually smaller companies and startups with photo choices varying from the serious and dignified to goofy costumed photo booth style shots that are rather shamelessly trying to appeal to a younger audience.
Maybe it’s because I’m in my mid-40’s, or maybe it’s because of the ageism I hear about (and defend my clients against with words) in my resume writing business, or maybe it’s because I spent 15 years running a Java Users’ Group that had its share of gray hairs, but I’ve always been sympathetic to the plight of the older developer. It’s refreshing to hear someone state that they are welcoming to the most senior talent, and I hope to hear that more in the future.
I was recently asked a question on Reddit about a specific contract-to-hire (C2H) scenario that I hadn’t given much thought to recently. With the prevalence of C2H (sometimes called ‘try before you buy’ in the recruiting world) in the market today, I thought the topic was worthy of full exploration.
What Is Contract-to-hire?
For those unfamiliar, contract-to-hire is where a company brings on a resource as a contractor with some level of understanding that there is either an intent or at least a possibility that the resource will be converted to a full-time (aka “permanent”) employee after some contract duration. During the contract period, the resource is often employed by some third-party agency who negotiates the rates.
The Numbers and Terminology
To add a bit of transparency to this, the agency will negotiate a rate with the hiring company (Bill Rate) which is what the agency will charge for every hour of the resource’s service. Then the agency negotiates a rate with the resource (Pay Rate) which they will pay the resource for every hour worked. The amount the agency makes on the transaction during the contract period is the difference between the Bill Rate and Pay Rate (Margin, or Spread).
If $COMPANY wants to bring on $DEVELOPER on a six month contract-to-hire basis, $COMPANY might agree to pay $AGENCY $100 for each hour of service. $AGENCY and $DEVELOPER have agreed to a pay rate of $80/hr, so the $AGENCY gets $20/hr for each hour $DEVELOPER works.
$COMPANY and $AGENCY may have also negotiated some type of buy-out clause, where at the end of the six months if $COMPANY wants to hire $DEVELOPER there will be a placement fee equal to n% of $DEVELOPER’s salary. Sometimes there is no fee involved in the hire, as the agency is considered paid because of their margin over the six-month contract. Other times the placement fee will vary based on the tenure of the contractor, where the buyout might be n% between days 1-60, n-5% between days 60-90, and n-10% days between days 90-180, and no fee at all after 180 days.
In our example above, if we assume a 40-hour workweek the agency would make about $20,000 during the six month contract period of employment. If there is a buyout clause as well, and the developer is indeed hired, the agency would make an additional flat sum.
Why Are Details Important?
Some readers might not care about the nuances of these agreements, and that’s certainly to the agency’s advantage. The reason these details are incredibly important is because the nature of the contracts will alter the financial incentives of the agency, and when those financial incentives are understood it may serve to better explain the behaviors of the agency.
As one example, suppose the agency is getting paid as outlined in the example above, but the agency receives no buyout upon hire. What would be the incentives for the agency? Obviously, the agency would rather have the developer remain as a contractor for as long as possible without ever converting. The agency is getting $20K for every six month period worked, but that turns into nothing when the hire is made.
Let’s look at a second example where the agency has a buyout clause with a prorated element, where the buyout amount is reduced over time as outlined above. What are the incentives there for the agency? There is some math involved (feel free to program a solution in the comments!), but the agency could look at the numbers to see when the optimum conversion time would be, and the agency would have some incentive to make that conversion happen within a certain range of dates. If we really get into the numbers, we could probably point to an exact hour where the developer’s conversion is in the best financial interest of the agency.
Who Have We Left Out?
We’ve explored the incentives of the agency without even considering the incentives of the developer. In C2H situations, there can be a wide range of incentives for the developer, many based on their own personal situation. Since the hiring company will usually provide the developer with several additional benefits upon full hire (insurances, retirement, paid time off), there is also some tricky math involved with figuring out the value of a perm hire compensation package when compared to the hourly rate.
Often contractors are paid a rate above what they would generally make as a perm hire, so we may see situations where the contractor tries to delay converting in order to maximize earnings. This could be in direct conflict with the agency’s financial incentives if a buyout is involved. As you can imagine, things can get rather interesting when the contractor has an incentive to remain a contractor and the agency does not. When analyzing bad recruiter behavior we need to consider misaligned incentives as a root cause.
An agency is trying to maximize their take, and we’ve established that the agency’s earnings are Bill Rate – Pay Rate. The agency has two incentives to increase margins – they first go to the hiring company and try to negotiate the highest Bill Rate possible, and then they go to the developer to negotiate a Pay Rate as low as possible. This model is vastly different to the recruiter/developer relationship dynamic in permanent hire recruiting scenarios (or even during a buyout in a C2H situation), where the recruiter has an incentive to maximize the developer’s compensation (because fee = n% of salary).
Sometimes a contractor will ask for a raise during the contract period. The agency will almost always object to this unless they are making a solid margin already. Unfortunately, the only party that is typically aware of all three numbers (bill rate, pay rate, margin) is the agency itself. The company rarely knows pay rate, and the developer is usually unaware of bill rate. That lack of transparency is in the best interest of the agency, which is why they will try to control access to these numbers.
We need to first keep in mind that in hourly contract negotiations, small numbers can add up. $1 an hour might convert to about $2K per year, and that figure translates to both the developer’s compensation as well as the agency’s revenues.
In most cases, the C2H developer won’t have a salary number defined for their conversion. They have accepted a temporary contract rate, but will need to negotiate their salary when the time comes. This can be problematic, as the developer doesn’t usually have much power in the negotiation. They may already have some level of attachment to the job and their co-workers, and the thought of another job search might be daunting. When you combine these with the fact that the developer probably does not have another job offer to leverage, it can make these negotiations more complex.
To protect your best interests, gather as much information as possible from the agency and the employer. Ask about the agency’s arrangement with the employer when it comes to conversion and buyout clauses, and try to learn about what you might expect to see in a perm hire offer.
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
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.
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
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.
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.
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.