Category: Startups

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.

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 You Can’t Work For Google

Many new entrants to today’s technology job market are obsessed with the handful of high-profile companies that set the trends in the industry, and the next generation of software engineers seem to think that the only companies worth working for are Google, Microsoft, Apple, Facebook, Yahoo, Twitter, and Amazon.  Software development has become both a celebrity culture (where companies and their CEOs are the stars) and an oligarchy in the eyes of recent graduates and teens, who set their sights on employment with this small number of firms.  Young developers in foreign countries appear to be particularly susceptible to this hyperfocus on a tiny segment of the hiring market.  If you don’t know how widespread this is, I’d suggest a visit to Reddit’s CS Career Questions section to see what people are asking.

When Yahoo changed their remote work policy the web exploded in debate around the value of remote employees, and the more recent news around Google dismissing GPAs, test scores and answers to Fermi questions made many tech companies reconsider their hiring procedures.  Not a day passes where a piece on one of these companies doesn’t hit the front page of most major news sites.  A cottage industry has erupted with authors and speakers providing guides for aspiring engineers to create résumés, land interviews and answer technical questions to get jobs specifically at these companies.  The focus seems to be less about becoming skilled and more about being attractive to a specific subset of employers.

These companies are glamorized amongst budding engineers much like Ivy League and top-tier schools are with high school students, and the reason you probably won’t work for Google is the same reason you probably didn’t go to MIT.  Because they are highly selective, and they simply can’t hire everyone.

Of course some of you can and perhaps will work for Google and the other companies listed here, just as some of you may have attended top universities.  But the majority of you us won’t – and that’s OK.  Follow your dreams, but be realistic about the outcome.

So here comes the good news!  Beyond Google, Microsoft, Apple, Facebook, Twitter, Yahoo and Amazon, there are hundreds of awesome places to work that are highly regarded by engineers the world over, and most people outside the industry (and many inside) haven’t heard of most of them.  Experience with these shops, much like the above list, will get you noticed.  Companies like Netflix, LinkedIn, Salesforce, eBay and GitHub are well-known but not typically mentioned in the same breath as the top celebrity firms, though they certainly could be.  I’d venture that most college CS majors haven’t even heard of 37signals or Typesafe, where smaller teams are doing work that is regularly recognized by the engineering community.

And again the bad news.  You probably won’t work for these companies either.  For most of the world, these are still reach schools that employ relatively few.  Although they may not be held by the general public in the same esteem as that list up top, they are incredibly selective, and most in the industry will view the difference between this group and the Googles as incredibly slim.

And now for some more good news.  Beyond the lists of companies above are thousands of great places to work that I guarantee you have never heard of.  These may consist of startups that fly under the radar or smaller specialized technology companies that serve a niche market.  They could be the development groups for major banks or 25 year old mom and pop shops that have an established customer base and solid revenues.  Game developers, ecommerce sites, consulting firms, robotics – the list goes on.

In almost every city, this group is the one that employs the overwhelming majority of engineers.  This is where most of us will likely end up – a company that you will surely need to describe and explain to your parents and significant other.

In the city where I focus my business (Philadelphia) and run our Java Users’ Group, we have some Googlers and I’ve known engineers who have worked for Amazon, Yahoo, and Apple.  And I know many many others who either turned down offers or likely could have joined those companies, but chose instead to work somewhere else.  Just as some students may reject the offer from the top-rated school to stay closer to home or to accept a more attractive scholarship package, many of the world’s top engineers simply don’t work for Google or Facebook, or anywhere else in the Valley for that matter.

Philadelphia is by no means Silicon Valley, yet there is a fairly robust startup scene and a large number of software shops that are doing valuable work.  Over the past 15 years I’ve worked with hundreds of Philly companies to hire engineering talent, and 99% of these places would be unknown to the typical developer.  I almost always have to describe my clients to potential candidates, as most of these shops have not built a reputation yet, and these are firms ranging from 20 to perhaps 20,000 employees.  And the vast majority of them are great environments for technologists where developers work alongside at least a few top engineers that could (and some that did) pass the entrance requirements for the Googles and Facebooks of the world.

All the great engineers in the world aren’t in the Valley, and they don’t all work for Google.  This fact is obvious to most, but fewer than I’d expected and hoped.  If that is the goal, go after it.  The rest of us will be here if it doesn’t work out. 

coverpicsmallest

Job Tips For GEEKS: The Job Search DRM-free ebook is available for $9.99 (reduced to $6.99 in December 2013) – more info here.

Indicators of Talent (and Heuristics) for Software Engineers

A recent Hacker News post by a man named Andrew was voted to the front page and received over 50 comments (as of my post).  The post was called Ask HN:  Would you hire me?, and Andrew specified that he was talking about a junior level position.

He provided the following details about himself:

  • 28 years old with a Finance Degree from a non-Ivy league school
  • Spent the last two years living overseas teaching English and learning to code
  • Fairly well versed in html, css, javascript, and PHP

He also included links to his:

  • GitHub – handful of repos, 7 months as a member, pretty active over the last quarter
  • Stack Overflow profile – 521 reputation, top 37% this quarter, 16 badges
  • Blog – Attractive UI, 7 overall posts (a few with some code), with the highlight being details of a Chrome extension he built and demonstrates in a video

Andrew received a fair amount of positive feedback, and not one single poster gave a ‘you are not hirable‘ response.  No CS degree, no professional experience, yet a highly technical audience were either mostly positive and at worst neutral on hiring (considering is more accurate) this potential applicant.  Only a couple responders mentioned looking at the one project he listed, and none referenced the quality of his code samples on his blog or GitHub, so we might assume that no one even bothered to look at his code.  Interesting.

Part of the explanation for the positive response is undoubtedly the makeup of the Hacker News crowd, which does not include a large contingent of HR reps from large companies who control a great deal of the hiring decisions.  Place this resume and story on Monster or Dice, and I expect that Andrew would receive responses from less than a quarter of his viewers.  Possibly less than a tenth.

I admit, if I were to see this candidate’s resume (assuming it reflected the details he put on HN), I would absolutely want to speak to him.  The clients I represent, which are mostly startup and early stage software companies, are more representative of the HN crowd (at least in terms of evaluating engineers) than most larger companies.  And even if I did not have a great opportunity for him today, I would think that a few years down the road he will be someone that I’d want to represent.

What is it about this candidate with no experience and no highly relevant education that gets our attention?  Of the details we have about Andrew, how many could have impacted my decision to speak to him?

When evaluating talent and the decision whether or not to interview a candidate for a software job, I must rely on several attributes that have historically been attached to quality talent that were successful in receiving job offers from my clients.

Let’s break it down.

28 years old with a Finance Degree from a non-Ivy league school – Most readers, including myself, probably didn’t give this any thought.  His degree in finance should indicate some math background, and if he had listed his specific school that would have had an impact.  Although most might be reluctant to mention it, the age demographic is probably a positive based on the industry, as he obviously has some life experience and maturity but will not fall prey to any old dog/new tricks bias.

Spent the last two years living overseas teaching English and learning to codeTeaching any subject to any students is valuable experience for almost any profession, and should indicate some level of communication skills.  The international aspect adds a bit more interesting background than if he were teaching domestically.  Some who chose to speak to Andrew may have been strongly influenced by the oversas aspect, as this could also show some willingness to face risk and change.

Fairly well versed in html, css, javascript, and PHP.  Just getting started with Ruby – His claim of being ‘well versed’ is only a self-assessment, but that could be at least somewhat validated (or invalidated) by anyone taking a look at his blog’s source or GitHub account.  This at least indicates that he is learning technologies that will give him some marketability based on demand for these skills.  We may question Andrew’s choices if he were learning a less popular skill.

GitHub, Stack Overflow, and Blog – For those that make decisions about technical talent, the fact that Andrew has both a GitHub and Stack Overflow account is probably more of an indicator of possible talent than what is actually in the accounts.  Most candidates in my experience don’t have a GitHub/Bitbucket or SO account, but those who do have accounts are historically more successful with my clients than those who don’t.  The attractive blog and few technical posts are yet another indicator, showing some passion as well as the ability to articulate his ideas in writing.

What other details may have led to the decision of HN readers or people like me who would at least want to speak to Andrew?

He reads Hacker News – Even if he isn’t a senior developer, he at least appears to have spent some time in one community where they frequent.

He comes across as modest and doesn’t appear to feel entitled – You don’t see anywhere in Andrew’s post a reference to how awesome he is or how he is ‘kicking CSS’s ass on a daily basis’.  His responses to feedback are very positive, grateful, and polite.  The choice of ‘well versed’ over some other terms that may be linked to overconfidence was wise.  Andrew also will not be accused of sounding entitled to a great dev job, and on the contrary he comes across as someone who knows he has to earn it.  Perhaps that is a function of his lack of a CS degree, but either way he appears to be taking the right approach.

He’s already creating product – Although he is only early on in his tech studies, Andrew has a product on the market that you can find in the Chrome Web Store that you can download.  There are developers with 20 years of experience that haven’t built any of their own tools or products yet, but this guy is two years in and has that mindset.  Some may question how great (or even good) a product someone at this level of experience could build, but the desire to produce and distribute a tool is something that perhaps can’t be taught.

Note:  Other indicators I use regularly include:

  • Past employers – Some companies frankly have a higher standard of hiring
  • Technical hobbies – Arduino, build robots, or create things at home
  • Speaking or writing – Presentations and publications are usually strong indicators
  • Tool choice – What blogging platform or operating system you run at home
  • User group and meetup – Shows interest and passion

Conclusion:  Hiring managers and recruiters are making quick decisions to interview and consider candidates, and as demonstrated by this HN post it seems that there are several recognized indicators of possible talent.  For job seekers, you may want to display links to your accounts prominently, and highlight details such as independent product development.

Of course, these indicators are not perfect.  I, too, have a GitHub and Stack Overflow account and a blog that covers technology (and I even run one of the best Java Users’ Groups in the world) – but I don’t write code.  Readers of HN should not hire me.

Discuss here or on Hacker News.

If you found this post useful, you may find my ebook Job Tips For GEEKS: The Job Search even more helpful.  You can also follow Job Tips For Geeks on Facebook, Twitter, or Google+.

Why You Scared Off the Ninja

The saying goes you never get a second chance to make a first impression, and it is well-documented that this is never more true than in the effort to hire great technical talent.   Complaints about the interview practices of some companies and anecdotes about how recruiters make foolish approaches are quite popular reads lately.  As someone in the hiring business, the criticism can be painful to hear, but when justified with evidence of ineptitude it is certainly understandable.

Demand for elite developers is so competitive (and talent is so hyperaware of this fact) that both recruiters and company representatives rarely get a second chance if their first contact or the ensuing hiring process is received negatively.  The best case scenario for the headhunter approach gone awry is to have the attempt ignored, and the worst case is public shaming by a tech celebrity.  It is particularly painful when a recruiter or company turns off an attractive candidate (whether through an email or hiring process) that possesses a very rare skill or experience, or worse yet a high degree of both skill and community influence.

Accomplished technologists can be brutally unforgiving to even the slightest perceived breaches by recruiters, and the level of outrage is often congruent to the programmer’s self-perceived industry status.  This is most likely a function of the sheer volume of noise received by high-end talent with status, and the frustration that noise can cause.  Junior level candidates tend to appreciate any type of attention, while the more senior or recognizable professionals seem to rarely find any recruiter contact worthy of a positive response.  Beyond just the recruiter problem, the interview process and practices used by companies cause very strong negative reactions by many in the industry.  When offended, those that feel they’ve earned ninja status (used ironically, please stop saying ninja) seem most likely to wield the sword.

Applicants that appear average will probably be treated that way.  But when a recruiter or a company hiring manager discover what could be that once-in-a-lifetime potential hire, or even a candidate that would seem to fall into the top 10%,  they must be flexible enough to change their standard hiring protocol while exercising an abundance of both caution and tact at every contact.  Many companies homogenize the process for all candidates to their own detriment, and when dealing with in-demand talent that typically comes with a bit of ego thrown in for good measure, treating the ninja like a common commodity is a critical error.

What are the most obvious ways that recruiters and companies turn off the most qualified candidates during first contact and the subsequent hiring process?

First, mistakes in the approach:

  • Impersonal contact and lack of research – The link earlier in the article referencing a recruiter approaching DHH for a Rails role happened more than once, and notably a recruiter for Groupon made the same mistake.  These examples are well beyond a typical recruiter infraction, as most Rails engineers are not DHH and most recruiters are not this lazy and clueless.  The ‘Let’s connect on LinkedIn‘ invite without any point of reference also applies to this category.  Recruiters are given little leeway and must conduct at least minimal research before contact, and then must choose their words wisely.  Once you know a bit about the candidate, tell him/her why you felt it was appropriate to reach out.  Be specific.
  • Referral requests – Recruiters are trained from birth to end every communication with ‘Do you know anyone else who might be qualified?‘, and they are often asking complete strangers.  Technologists at the lower levels look at this as an opportunity to help a colleague find work (and maybe even get a referral bonus), while ninjas who make plenty of money have no interest in helping most recruiters and view the request itself as a breach.  Don’t ask top people for referrals until you have at least developed some form of relationship, and even then only with caution.
  • Technical ignorance or irrelevance – Recruiters who confuse Java for JavaScript get crucified, and will be forever remembered as being ‘that guy/gal‘.  Whether you are a non-technical CEO or a recruiter, be sure that your communication is technically sound.
  • Approached by the wrong person – When courting high-end talent (particularly for a small company), it is wise to get an internal talent or leader involved as early as possible.  Your junior recruiter that started last week should be kept in check until he/she knows how to market the company, and that marketing skill should be honed in conversations with junior candidates that generally require a lower degree of difficulty and thus reduced potential risk.  Startup CEO, CTO or Development Managers should be willing to send a quick note from their own email in order to get a ninja’s attention early in the process.  Recruiters need to know when it may be appropriate to step aside for first contact.
  • Lack of details – Vague, boilerplate company descriptions rarely get the attention of top talent, and may turn off the candidate completely without ever getting the chance to show them more.  Provide as much detail as reasonably possible to demonstrate that you have no intention of wasting their time.

And in the hiring process:

  • The HR phone screen – I cringe when a client responds to my submittal of a top talent with ‘This one looks great!  We’ll have Joe from HR do a quick phone screen‘.  NO!  Some recruiters vet engineers better than others, but if a candidate looks stronger on paper than most you see, forgo the pleasantries and get down to business.  
  • Standardized tests – These are fairly rare with startups and small companies and for midsize and large companies these tests serve as just another way to scare off top talent.  Tests for IQ, personality types, and even third-party technical tests tend to give the wrong impression to talent.  Development managers at companies that employ standardized tests could be frustrated with the skill level of their applicants, and should want to promote policy change or at least allow for exceptions.
  • Disorganized interview process and inflexibility – Missed phone calls and making candidates languish in a lobby while waiting for an interviewer is inexcusable when wooing a strong candidate, and tech talent may feel these indiscretions could reflect on your work environment.  Even if you traditionally like to keep interviews very loose and informal, use at least a small amount of choreography when entertaining the ninja to keep their engagement level high.  Accommodating a request for a call either before or after hours could also be the difference when interviewing candidates that are unable to use business hours for meetings.
  • Lowball offers and negotiation games – After investing a fair amount of time building mutual trust and admiration during the interview process, the last thing you should do is play games when it comes to sealing the deal.  The long term value of the hire should not be risked for a few thousand dollars saved through negotiations.

Conclusion:  Companies and recruiters need to do a better job of customizing their approach and treatment of top technical talent.  While technical recruiting is generally considered a numbers game focused on high-volume, the courting of the most elite developers requires a completely different and more time consuming campaign to be implemented by your most competent resources.

Discuss on Hacker News.

If you found this post useful, you may find my ebook Job Tips For GEEKS: The Job Search very helpful.  You can also follow Job Tips For Geeks on FacebookTwitteror Google+.