Would You Hire the CS Class of ’04 Today?

A comment in a Reddit computer science career advice forum got me thinking. There was mention about the high volume of advice in the forum coming from inexperienced people relative to advice from industry veterans. The comment that got my attention (which I believe was made by an experienced person) was:

And most of the people giving advice in this sub¹ are 10+ year veterans who, if they had only the skills they had when they first got hired 10 years ago, could never get hired in today’s market.

So could the college class of ’04 couldn’t get hired in today’s tech talent market? That’s an interesting topic for debate, and your age likely influences which side you choose.² Of course, ‘skills‘ could be interpreted as overall engineering chops (concepts that are language/tool agnostic), or ‘skills’ could refer to ’04 grads having dated skills for today’s market. I sense the commenter intended the former, as the latter doesn’t seem worth mentioning. Either way, my opinion is the same.

For most cases, my answer on whether they could get hired today is ‘Probably not’.

This is not to say that the class of ’04 or even 1994 were lesser engineers upon graduation, and those critical of our increased reliance on tools will make arguments to the contrary. The résumé of the typical ’04 grad would have difficulty getting interviews when pitted against today’s graduates, based on ’14 trends for entry-level candidates. Entering the work force with some level of perceived accomplishment (via internships or personal projects) is becoming a rather reasonable expectation even among average tech employers, to the point where graduates that lack experience or tangible evidence of their ability openly lament their (mostly irrational) fear of being unemployable.³

If we look at the difference between these graduates of ten years apart, we discover how quickly both available resources and industry expectations have changed. How would ’04 grads fare against today’s candidates? It’s interesting to explore how different things were.

How did they learn to code? How much ‘experience’ do they have?

It sounds kind of odd to me, but someone as young as 35 might not have seen a decent web browser until college. The class of ’04 hit puberty when Windows 95 was released, were likely to reference books/manuals (BBS/Usenet perhaps), had limited access to like-minded individuals, and coded on machines dwarfed in power and memory thousands of times over by today’s mobile phone.

The class of ’14 had fully functional browsers and search capability by middle school, and relatively cheap computing power. It would have required unique circumstances for those in the ’04 class to enter college with coding experience, but many in the class of ’14 could have had exposure at a younger age. When I ask recent grads when they started coding, it’s common to hear “in high school”.

What did they do when stumped?

Volumes of reference material and educational content were available to the ’14 grads that were not in ’04. Stack Overflow has become the programmer’s best friend, and that best friend still celebrates birthdays at Chuck E. Cheese – it is barely five years old. ’14 grads could access answers much quicker than those from ‘o4, but many would argue whether that access over time makes for better engineers.

The class of ’04 grew up with search engines too, but how much relevant content was there to search? And how difficult would it be to actually find that content given the search engines of the time? The need for trial and error is dying, and it’s reasonable to assume that death hastened between these two graduating classes.

How did they differentiate their ability from others when competing for jobs?

You’ve got a pretty solid GitHub, eh? ’14 graduates could browse and contribute to thousands of open source repos and create their own all through college. GitHub obviously wasn’t the first destination for repos, but hiring managers didn’t usually ask to “see your SourceForge” in ’04. The ease and expectation of showing past code to hiring entities is a relatively new concept.

It’s become normal for many grads to have blogs, robust sites, or even a mobile app or basic product when entering the workforce. The current boot camp trend produces graduates that usually claim an app. Apple’s App Store had 500 third-party apps around launch in 2008, and now between Apple and Google there are nearly two million. How many of those were developed for the purpose of job hunting?

Websites and blogs were more difficult to publish and expensive to maintain before the recent trend of free hosting and tools. It was uncommon for entry-level candidates to list sites or blogs on a résumé ten years ago.

How do they look for jobs? Did they even have to look?

If we are going to compare the ability for two graduating classes to get jobs, we should consider that methods to hiring and job search have also changed dramatically. Job boards like Monster and Dice existed in ’04 to post a résumé, but were primarily used by the most active job seekers and not for passive/ongoing job searches.

LinkedIn can help to both find people and then store contacts, with the added bonus of making users discoverable to potential employers – but LinkedIn only became available in ’03. Networking just a decade ago was more time consuming, while internships have become the norm for engineering students in recent years. Today’s graduate often has made at least a few potentially valuable industry contacts to use during a first job search.

Even if you were to get an interview in ’04, you went in blind. The amount of information regarding the interview process at a variety of companies is abundant, from best-selling interview question books to sites like Glassdoor. Job search has undergone quite a facelift, with unlimited supports in place to help job seekers identify interesting employers, demonstrate skills, and succeed in interviews.


Without trying to get into any debates as to whether colleges are producing better or worse engineers than they were ten years ago, it would be very difficult for ’04 grads to compete with ’14 grads in today’s market based on evolving expectations and changes in what CS students do during college. What might the résumés of CS grads in the class of ’24 look like?

¹ The shorthand ‘sub‘ is short for ‘subreddit‘, which is the name Reddit uses for various channels or forums.
² For the sake of transparency, my age is closer to the college class of ’94.
³ Source: see perhaps 25% of the posts at that same Reddit forum)

Recruiter Job Posts, Explained

Over the years I’ve seen several complaints about the way agency recruiters write job posts, so I thought it might be useful to explain the motivations behind a recruiter’s actions. Job seekers become particularly frustrated by a lack of transparency, and understanding the reasons may benefit recruiter/technologist relations.

geekswantedwp copy

First, a couple quick definitions.

Agency Recruiter – AKA “Headhunter” These recruiters represent several hiring companies, so at any given time they may work for anywhere from five to fifty firms (AKA ‘clients’).

Company/Internal Recruiter – The recruiter employed by Google is only trying to hire people into Google.

Contingency Recruiting – This is the most common arrangement that agency recruiters have with clients, and the competitive nature of this model accounts for most of the complaints about recruiter ethics (and job posts). A hiring company signs a contract to work with an agency, and when hiring someone referred by the agency they pay a fee that is usually 20-30% of the new hire’s salary. Companies may work with 20+ agency recruiters, and only the recruiter that fills the vacancy gets the fee. The other 19 recruiters get nothing, regardless of their effort. In this model, the recruiter absorbs all of the ‘risk’ of the search.

Retained Recruiting – There are several variations of how retainers work, but basically the hiring company pays an agency recruiter in advance to initiate a search on their behalf. Some companies reserve retained agreements for executive level searches, and retained search is still relatively rare for engineers and tech pros. In this model, some or all of the ‘risk’ is absorbed by the hiring firm.

Now that we have the definitions…

Job seekers who gripe about recruiters and their ads refer almost exclusively to agencies on contingency. Below are three common issues cited with job ads, and an explanation as to why recruiters write what they do.

Company name

Agency recruiters working on a contingent basis rarely post company names. When posting a client’s name, they have now made it public that COMPANY is seeking candidates with a specific skill set. Now other agencies who may represent similar talent can call on COMPANY’s HR and hiring managers to offer their recruiting services. Also, it makes it possible for an applicant to apply directly to the company which results in no fee for the recruiter. The fear of both is significant.

Withholding the name is not always a recruiter’s choice. In many cases, clients require recruiters not to use their name in ads. Part of the reasoning is managers and HR expect that if the name is used, they will be inundated with inquiries from agencies.

Listing company names also makes the client more likely to be sourced by other recruiters. If I’m a recruiter searching for Scala talent, the easiest way to find firms to poach is to see who is looking for Scala talent. Ads are arguably the most effective way for agencies to identify potential new clients as well as sources of talent to poach, so posting names gives competitors some useful information.


Recruiters may intentionally post inaccurate location information, perhaps using the nearest big city or an adjacent town instead of the actual mailing address. This tactic is also primarily rooted in protecting the identify of an agency’s clients.

When a job description lists the name of a city or town as well as some other identifying details, it becomes rather easy for experienced recruiters from other agencies to figure out who the company behind the ad. In San Francisco or New York it isn’t easy, but when an ad mentions the name of a suburb and some description of the business or industry, knowledgeable recruiters can guess the client.

Salary/rate range

Prepare to disagree. When a job ad lists a salary or hourly rate range, the only number that most candidates retain is the upper end.

Geek wanted (Philadelphia suburbs, PA) – Must have skills. Pay is 75-110K.

“I found this job online today, looks like a good fit and the starting salary is 110K!”

We can’t blame a candidate for trying to negotiate the best offer, but a listed salary range introduces irrelevant data into the negotiation process that creates false expectations. Let’s look at a hypothetical:

My client wants Scala Developers, and are open on experience level as long as the candidate is solid. We may hire someone two years out of school for 70K or someone with ten years that might be closer to 130K. We aren’t going to list “Must have at least X years with Scala” in the job spec, because it looks petty. We list a rather wide and generally unhelpful range of 70-130K, interview applicants, and decide to hire the one who is two years out of school. Our candidate’s market rate is at the low end of our range, but our candidate also realizes we were willing to pay 130K for someone. Our young candidate is also a bit new to the world of job search and negotiation, and decides to ask for 130K and see what happens.

Sounds far-fetched? Unfortunately, this happens much more frequently than one would expect.

The salary range problem is aggravated when junior level candidates go from entry-level to experienced and get large increases which they expect will continue. This is common when switching employers in the first years of a career. Salary ranges also cause headaches when experienced candidates in the scenario above get an offer for 115K. Why not 130? I’ve been snubbed! The candidate might have estimated their market rate was 100K a month ago, but now that 130K seemed possible the number is entrenched.

I’ve written before about the emotional attachment that job seekers put on certain dollar figures. You can be sure that a candidate will have a hard time rejecting the first 100K offer of their career due to the perceived status of a six-figure job. When a salary range is provided, the applicant may develop an immediate attachment to the maximum regardless of their qualifications.

Listing a salary range almost exclusively benefits a subset of highly-paid candidates, but it could be useful to all when considering potential time loss in interviews and dialogue. Most recruiters want to discover salary expectations and then let you know whether or not the numbers are reasonable for the position available.


Whether posted via agency recruiter or hiring company, job descriptions are intended to provide enough information for candidates to decide to investigate further. It’s not a detailed employment offer, just as an application is not an acceptance.

The competitive nature of contingency recruiting creates the incentive for agencies to disguise valuable information such as exact location and client name, which can be to the detriment of job seekers. The publication of salary ranges can potentially muddy the waters regarding market rate, but could save time for job seekers above range.

This article is not a defense of these tactics, but rather intended to explain the motivations that result in these tactics.

Why You Are Overpaid

I wrote Why You Make Less Money in early 2013, which attempted to account for the many reasons some technology professionals make less than others with similar qualifications. Underpaying employees (defined as below market rate, which can admittedly be difficult to truly know) will cause problems for both the employee and his/her employer, but overpaying also creates some challenges on both sides that are often overlooked.

Rarely do I encounter someone in this industry who openly acknowledges being overpaid, but when it happens the conversation is not what you might expect. The realization of being overpaid is typically not met with a sense of pride or accomplishment, but rather a sense of fear. One explanation for the negative reaction is that the discovery is usually made during a job search (active or passive), where someone finds several employers are unwilling to approach their current compensation.

I am not suggesting that you should turn down job offers that are significantly above what you know is market rate, and taking advantage of market fluctuations is expected to some degree. However, there are three main dangers when it comes to being overpaid.

1. You’re locked in to your job unless you take a pay cut. Acknowledging that you are overpaid may not help.
2. You based your lifestyle on an unrealistic earning expectation.
3. You are likely first to go when rates normalize or the employer has financial difficulty.

If you are overpaid, it is vital that you recognize the anomaly and you should not base important financial or career decisions on current income.

It is useful to look at some possible explanations as to why one may be considered overpaid. (and how common it is)

Consulting or contracting dollars – In the technology world, these complicate market rate. Consulting companies and body shops charge big bucks, and they are able to hire salaried or hourly employees at levels well above what are typically paid to the client’s own staff. These premium rates and salaries are routinely explained by several contributing factors, such as the instability of contracting, the advantages of hiring temporary employees, or benefits plans. The compensation is also fairly easy to justify, as a company can easily afford to pay you 100K salary if it is known you’ll bill 2000 hours at $125 (250K).

The disparity between contractor/consultant pay and traditional employee pay primarily becomes an issue when someone makes the move from one world to the other. Most would expect to increase or maintain their compensation when changing employers, but that is usually not the case for contractors or consultants switching over. This is also why you may witness contract-to-hire employees trying to extend their contract period before conversion, as they are likely about to take a pay cut with little difference in any other aspect of the job. Very common

Unique combination of skills with unusual value to a specific company – An experience profile that is highly valued by one firm is much less valuable across the general market. An applicant with significant experience using every component of a company’s stack that also possesses highly-specific domain expertise may receive an inflated offer that won’t be matched by other employers. This situation is compounded when there are known competitors that value an identical skill set, and the cost of losing the employee will negatively impact the business. Rare

An employer early adopts and banks on a new technology – This is not dissimilar to the explanation above, with the exception that it is one particular skill that creates the variation. New hyped languages and platforms tend to cause spikes in demand that are impossible to fill with experienced workers, which temporarily raises wages above what they were and what they will likely be in the future. This creates a short-term seller’s market. Very common at any given time for certain skills

Unattractive employer – Companies that develop a poor industry reputation may resort to paying (and advertising) compensation above market in order to attract candidates. Other than promises of a brighter tomorrow, the easiest element to quickly alter is usually pay. A firm’s infamy may be the result of overworked staff, bad press, or even accumulating technical debt, and public opinion often remains negative long after the ills are repaired. Common

Poor benefits, limited perks – Job seekers tend to focus on salary and not overall value when comparing job offers. Part of this is ego-driven, as you are unlikely to brag about your firm’s high 401(k) match or insurance premium contribution at a cocktail party. Some companies recognize this and will scale back benefit offerings in order to maximize cash compensation and promote the perception that they are paying above market rate. This is not exactly overpaying when we consider the total package, but the statistics and surveys that provide market data primarily depend on cash compensation. Rare

Long employment tenure – Large organizations that schedule regular cost-of-living and salary increases into employment contracts often find themselves paying above market rate. Somewhat common for large firms

Compensated to take a chance on something risky – Startups that do not offer any form of equity or options to new hires may find themselves overpaying for talent. Employees that remain during or immediately after an acquisition will often be offered retention bonuses, which may indicate the company’s acknowledgment of uncertainty for future employment. Common

Counteroffer (upon resignation) or pre-emptive counteroffer (they knew you were looking) – Counteroffers may just be a corrective measure for long-term retention that bring an employee up to market rate, but in some instances a counteroffer is a method for only the short-term retention of an employee due to the inopportune timing of their resignation. In the latter case, compensation is often forced above market rate to ensure retention and project stability. The employee’s value temporarily spikes during key moments in a project, and a resignation with counteroffer at any key moment can result in overpayment. Once the project/goal is attained, the employee’s value returns to market rate but salary does not. Rare


Being overpaid is only a problem when you aren’t aware of it or sometimes when seeking new work. Research market rates for your skills and keep tabs on compensation trends in the industry. If you receive multiple offers below what you perceive as your market value, get some professional opinions from recruiters or colleagues.

Discuss on Hacker News

Boot Camps, MOOC’s, and Jobs: A How To For Fresh Devs

cert1Every year, thousands of professionals in various lines of work look to the programming world as a promising new employment option. Just in the past few months, I have spoken to attorneys, accountants, salespeople, and even a former professional athlete trying to land their first paying gigs in the industry. This isn’t the first time we’ve seen this.

A brief history lesson and cautionary tale

During the initial dot com boom of the late 90′s, millions scrambled to enter the technology industry. Naturally, some entrepreneurs looking to cash in on the movement developed accelerated training programs and boot camps designed to quickly convert blue collar workers into earning members of the IT industry. These classes and certifications were not cheap, but they usually cited high placement rates (and in some cases guarantees) and salary data for graduates.

Early on, the training programs typically had barriers to entry. Entrance exams and interviews left the least qualified applicants on the outside looking in. Time commitments made juggling a full-time job and a training program challenging for many, while cost made these programs inaccessible for others.

As you might expect, training programs with lowered admission standards and reduced prices arrived on the scene. Financial aid was made available, lecture times were adjusted to accommodate almost any schedule, and marketers flooded TV/radio/newspapers with anecdotes of auto mechanics and dental hygienists now earning double in the IT field. When qualified instructors were not available, classes were led by recent graduates who did not find employment.

Much of this training was geared towards obtaining a certification known as the MCSE (Microsoft Certified Systems Engineer), which was primarily a qualification towards Windows admin roles or desktop support. Even today, Microsoft has marketing material live on their site touting the value of these certifications.

The early graduates of the first programs probably did have high employment rates. However, the rise of the MCSE factories created a new class of applicant dubbed the Paper MCSE, defined as someone with no experience that was just able to pass the test. The MCSE certification quickly became associated with a type of get rich quick mentality, and having the letters next to your name was less indicative of knowledge and more likely someone trying to game the system.

Flash forward

If this story doesn’t sound at least a bit familiar, it should. Back then the message was ‘learn computers’, but now everyone from the President to Shakira (not to mention Ashton Kutcher and NFL legend Warren Sapp?) is telling us we now need to learn how to code. Today’s career changer isn’t trying to simply fill what are generally considered less glamorous jobs like help desk, but rather they want to be like those (pardon the silliness) rock stars and ninjas that they read about who are higher up the food chain.

Programming boot camps and the availability of MOOC’s has again taken learning of in-demand skills to the masses, and (regardless of your opinion on their value) the emergence of these programs impacts the hiring landscape for everyone. For now, most of these programs have some admissions criteria and may be affiliated as feeders to recruiting or consulting firms. Unlike their predecessors, the programs often boast that graduates will network with industry veterans and leave with real-world contacts to leverage in their job search.

Although it’s far too early to see how these graduates will do over time, history and basic economics indicate that new programs of reduced quality will emerge.

The difference between then and now

The major difference between the MCSE gold rush and the recent development-focused trend is that today’s career changer is often expected (and hopefully able) to demonstrate proof of their credentials. Graduates of boot camps are often very quick to point out that the classes were rigorous, had low program acceptance levels, required hours beyond typical full-time jobs, and that they built professional-grade applications before graduation. In almost every case where I’ve encountered a boot camp grad, these topics were brought up immediately by the job seeker. If the reputations of these programs become overwhelmingly positive (I’d now say they are no worse than lukewarm now), grads should become much less defensive as to the value of their education.

Being accepted into a help desk job today without experience or a relevant degree is one thing, but how willing will the programming community be to view these graduates as one of their own? This is more daunting when you consider that the community is considered to be protective of their craft’s reputation, and are sometimes known for being less-than-welcoming to their own. Will employers value the more hands-on approach of a three month boot camp over traditional lecture-based four year CS degree programs?

Keys to success

Whether you graduated from a boot camp or a four year program, I think the expectations for most new hires are similar. Employers probably won’t be expecting boot camp grads to be committing code any sooner or later than a BS in CS, and it is expected that there is inherent risk for any hire (particularly any hire without experience). There is some leap of faith for managers trying to evaluate someone for their first industry position.

For boot camp grads specifically,

You’re not being hired because of your boot camp app. Although your code portfolio may help you some, in a few years you’ll realize your app looks like it was coded by someone who learned Ruby in three months. Don’t overstate the importance or relevance of whatever app you built – it’s incredibly impressive to you because you don’t know better (yet). You are being hired almost exclusively on your perceived potential, not weeks of work.

You’re being groomed to work at startups and smaller firms. At this point HR representatives at most large firms will be less open-minded to you than to CS grads. Don’t take that personally because it’s really not about you, and big shops probably aren’t who you are trying to attract anyway. Your instructors likely came from startups, are teaching development as is done in typical startup environments, and the technologies taught are of a common startup stack. Your job search time is best spent focusing first on the firms that have a relationship with your program, and then other startups.

Your non-programming intangibles are just as relevant as the boot camp. Employers know that you can’t become highly productive in programming with a few hundred hours of learning. Conveying the smart and gets things done attribute is still the most important factor. You are still considered a risky hire, and if you are perceived as potentially damaging to the team dynamic you will be passed over for someone less risky.

Use caution if comparing boot camps to CS degrees. The two are vastly different, both with advantages and disadvantages. The quality and quantity of time for each are difficult to compare, and those that invested four years are more likely to be swayed by your knowledge than by diminishing the value of their degree.

To both CS and boot camp grads,

You’re not an expert. In my experience, the word expert gets bandied about more often among the inexperienced with something to prove than it does by industry vets with project history. Expertise takes time. Once you’ve been in the business a few years, you will meet people who know twice as much as you do yet still consider themselves novices. Whether in interviews or on résumés, choose your words very carefully to prevent the appearance of overconfidence (and to prevent what seems an open invitation for technical grilling).

You’ll do best if you show respect to the industry veterans. The people you are interviewing with have likely paid their dues during times when learning and information wasn’t as readily available. It’s probably difficult to envision being a programmer in 2001, where those in the field had far fewer tools or resources. They probably think you’ve had it easier in a lot of ways (and harder in others), so temper confidence with some humility.

Job Tips For Geeks: The Job Search DRM-free ebook reduced to $6.99 for the holidays. A great gift for the tech pro in your life, or for the annoying co-worker that you wish would find a new job.

How and Why to Backdoor Into Jobs

When I read anecdotes from frustrated job seekers in the tech industry, they usually start out the same way.

“I applied to dozens of jobs
but I am not getting any response.”

Sometimes the low response is warranted due to lack of qualifications or less obvious factors, but often the problem is simply that the job seeker never got access to the person/people who matter most in the hiring of technical professionals. Hiring bottlenecks start with the traditional application process (submit résumé blindly) and can be further complicated by HR reps that are hiring for disparate skills and business units. At a smaller company with no recruiters, the task of screening résumés may go to junior employees and administrative personnel with no background or training in hiring.

When you like a company and want to get an interview, the ideal entrance is very rarely the front door. The front door is the advertised entrance that HR wants you to take, crowded with active job seekers with varying qualifications that will be culled or herded through the process by the people manning the door.

After many years in the business I’ve learned that if you ask privately (meaning not within earshot of HR), most technical managers don’t want candidates to come through the front door either. They would rather you came through a back door, and if necessary to hiring protocol they will later introduce you to the front door guardians to ensure passage.  HR mans the front door, but the geeks own the back doors. This is how it works at many employers.

What are the more common back doors?

Continue reading

Hiring Indicators, OSS, and the Value of GitHub

As someone who writes about tech hiring and who has also encouraged many to participate in open source and establish a GitHub presence, a recent article caught my eye. Why GitHub is Not Your CV ¹ by James Coglan was partly inspired by another article, The Ethics of Unpaid Labor and the OSS Community by Ashe Dryden. Both articles are well-written and if you evaluate programmers for hire please read them.

Dryden’s tl;dr for me was meritocracy in OSS, explanation the lack of diversity, and ways to hire that are ‘less biased‘ than relying on OSS contribution or public code availability. Coglan references her piece and adds his own thoughts around similar topics, but his readers might disregard the value a GitHub presence provides. Neither article tried to discourage a presence, but the Coglan piece dismissed the value quite a bit.
Continue reading

Why Your Résumé is 10 Pages

Even though there are hundreds of articles professing the beauty and efficiency of the one page résumé, not a day passes where I don’t see a five pager. The issue of length has even surfaced amongst college undergrads applying for internships, who seem to have increasing difficulty trimming their list of accomplishments and experiences into a single page (really). This is a troubling sign for future HR and recruiting professionals tasked with selecting applicants, as job seekers who are unable to shorten their credentials will continue to have difficulty in their search.

The amount of time a recruiter or hiring manager spends reviewing any single résumé varies by the individual.  When offered a single page résumé, the reader is much more inclined to give that page a proper scan to make a fair assessment.  A two page offering should get a proper review as well.
Continue reading