Ask HN: Has my education made me unhireable?
I've poured the last four years into a CS PhD and am about to graduate. I don't intend to take an academic position. I applied to a few companies, but none called back.
I have a background many geeks share: coding from an early age, spending their teenage years in IRC soaking up everything, playing, hacking. When I finished high school, I went into CS, where I met my future advisor. He suggested I apply as a PhD so he could fund me. I wasn't aware then that PhD meant "professor in training", nor that the university I'd go to has a reputation for producing bad grads. It seemed like a good opportunity, so I took it.
My advisor put me to work solo on developing a large system that would be the foundation for a (possibly commercial) web service. I saw this project through from the ground up. I got to experiment with different technologies. I made a habit of writing clean code/documentation. All in all, a lot of valuable experience.
People fresh out of academia are typically some of the worst software developers imaginable, doubly so for those with no job experience. I don't feel like I meet the stereotype, but looking at my resume you can't tell. My advisor discouraged internships, and nothing I've done outside of academia is worth putting in a resume.
I feel like I'm trapped. I'm overqualified, yet have no work experience. The only thing I am qualified for is an academic job I don't want. Now I'm about to be without income.
The companies I've applied to are all big, though I think I'd fit well in an early-stage startup where I could take on a generalist role. But I feel like such a position takes connections I don't have. Could I approach the founders at such a company directly? How can I prove I'm not just yet another post-academia liability if no one will look past my resume? Am I fucked?
56 comments
[ 4.1 ms ] story [ 114 ms ] threadApply to whom ever sponsored your research. Indeed, you are probably overqualified to write CSS for a living.
You'll still have a gap in your resume, but the ~two-year gap is likely to look better on paper than a four-year (or more) gap between Bachelor's and now.
It doesn't necessarily mean that. Lots of people with PhDs in CS go to work outside of academia. (Maybe most of them these days, since tenure-track jobs in academia have been getting increasingly difficult to find.)
On the other hand, I've worked in software with someone who had a PhD in Biomedical engineering (so not even CS!), and he got his first job via a referral; if anyone who knows you can code (Undergrad classmate? Open source collaborator?) works somewhere that's hiring, that would be a great way to get your foot in the door.
Larger companies receive thousands of resumes per day, therefore a personal reference is essential to getting in the door.
Avoid using a one-size-fits-all resume. For each start-up applying to, write a custom resume tailored to their needs.
1) PhDs in your area, with a focus on CS and related disciplines
2) PhDs in your area, with a focus on areas that need CS grads (e.g. business, etc.)
3) Types of people you work well with (judging by your past--previous jobs, professors, family, friends). Use any typology you want--"creative women in marketing," "decisive men who enjoy technology," "ENFPs of any gender in a creative role," whatever seems to get you a usable list.
4) People in roles that you would like. For example, a developer using lots of creative leeway to build new systems.
5) People in roles that work with people in roles that you would like. For example, a developer might look for people in online marketing or a specific field you want to work in.
6) People who have advised people like you--e.g. professors, counselors at schools (yours or other schools).
Then I would contact those kinds of people (getting contact information via local Google searches, Facebook graph search, whatever works--and phone calls are ideal, email less so) and ask if you could meet with them for ~10 minutes for a brief informational interview. Basically explain your situation. See what they think. Ask them if they like their career (if applicable). Don't ask them for a job, but let them know that you are looking for work. If they offer to help you find a job, great. If they seem like they'd be a good friend, terrific.
This is one of the fastest methods of starting from scratch and finding a job that I've found. Finding a job is an amazingly analog / human feeling-driven process and sending resumes and filling out applications all day often turns out to be a waste of time, but connecting with people is like manually spinning the warped analog cogs of this messy job-finding machine in your favor.
Source: Work as a volunteer in a charitable organization, helping people find jobs / start careers.
Edit: Just wanted to say, I've been in a "need a job now" situation before several times (thankfully in the distant past), and it can be pretty depressing. Please take care of yourself and hang in there--with your background you'll find something great for sure.
I was a hiring manager where I worked last. We used to get SO MANY applications for each role, that it was nearly impossible to give justice to all applicants. I'd much rather prefer someone talking to me about you, and/or handing your resume to me. Even if you're barely qualified, I'd talk to you first, because it made my searching easier. We used to hire >50% of people via referrals like that.
I currently run an interview coaching class (http://InterviewKickstart.com) and give the same advice. Those who heed it, progress faster in their search.
Start actually working on things. The OP says he/she has not worked on anything outside of academia worth putting on a resume. It is not too late to start a project or working relationship that is a good conversation starter for an industry job. There are so many ways one could do this, you could go to a site like https://www.catchafire.org/ and volunteer your technical skills to a non-profit in need. You could get involved with an open source project. You could also start a project on your own. The first two are preferable to the last because the first two involve actually meeting and working with other people (you need to meet other people to get a job, obviously) but any of them would be a good first step.
The other thing I would say is you probably don't need a huge project or a flashy achievement to help yourself be viewed as someone worth giving a job offer. Your phD is going to legitimize your computing knowledge, you just have to show yourself to be interested in also being practical.
If on the other hand you're gunning for a standard developer position, you're definitely going to have a hard time because of who you're competing against as well as the stereotype of Ph.d's like you mentioned.
There are many reasons companies will reject candidates. Don't latch onto one thing too soon. Maybe it's just your résumé wording.
Best of luck mate.
Even a lot of firms that rely mainly on software need people with strong theoretical background. For example, Google X, Netflix, Amazon, and any shop doing robotics.
If you think you don't have a shot based on your background, you are looking in the wrong places, narrowing your scope too much, not networking at all, or a combination of the three.
I know you worked incredibly hard in academia but people love to see tangible things.
Just the fact that you're thinking about these kind of issues tells me you're heading in the right direction. Drop me a line at samb@zenefits.com and I'll get you a phone screen here.
Also, most things that people will tell you re: build portfolio, contribute to open source, etc. — it's largely a waste of your time, at least with regard to getting a paycheck with large numbers in your hands as expeditiously as possible. Please, contribute to open source, I need that stuff. But don't do it because you think you have to in order to land job interviews.
If your skill and discipline as a "get stuff done every day" developer is roughly no better than your average junior web developer, that's approximately a $90k/yr position for which the market has deep unmet demand. The set of people who are hiring decently competent developers is approximately "everyone with an existing software development team."
A much better approach is:
* Make a list of companies you would be interested in working for
* Figure out who at these companies is currently managing a dev team
* Contact those people, convince them you can write compiling code
* Discuss doing work for them in exchange for large amounts of currency
Beyond that, understand that you're going to have a learning curve to get your "getting stuff done every day" and domain-specific development skills up to spec. Right now, you're probably about as productive as a junior developer with six months of industry experience. This sucks, but you're already aware of it. The typical grad student is shit about e.g. coding as part of a team, using commit-driven development, issue tracking, that sort of routine process things that keep work happening regularly - even if they have a great grasp of their chosen languages(s) and tool(s), which many do not.
If you play your cards right, the learning curve from there to "competent if inexperienced senior developer" is about 6 to 18 months for a typical engineering grad student who has some experience mentoring undergrads and helping them through issues like "this wouldn't have happened if you'd just use version control" and "would you please write comments that tell me what the heck you're trying to do with this block of code."
At worst, the outlook is about the same as a run-of-the-mill junior developer, who is still likely taking home an embarrassingly large paycheck while they improve their skills.
Your safety net is "CRUD monkey." That already pays well enough to make the median dual-income American family rather jealous. From there, what do you want your career to be? Application development? Graphics? Data science? Database engineering? Pick something, find teams that are working on that, talk to them about the work they're doing. Bonus points if you already have some understanding about their subject area based on reading you did as a grad student, or projects you worked on, but they likely already hire people with less domain experience than that.
The real reason you see many PhDs fail to get private sector jobs is that they're expecting to be compensated for that PhD. But from the perspective of a hiring manager they're really just a recent grad with a superiority complex.
If you are willing to accept that your PhD does not catapult you into being a senior developer (particularly for startups), then you shouldn't have any trouble finding a job, assuming you are in fact a good developer (unlike many PhDs).
Also, if you're in dire straits, I recommend picking up a contracting gig. It's a great way to tide you over without rushing into the first job offered.
If you'd like to work in NYC, or want to try your hand at contracting, just write to me: morgante@cafe.com.
I know it's fun to hate on PhDs here, but this just isn't true at all.
A PhD isn't about development true, but it still holds value. Basically it shows that you know how to problem solve, push the boundaries of what is known, work independently, and persevere until the job is done. Any hiring manager that doesn't value these traits is doing an awful job.
As for supporting evidence, I guess I could cite the fact that when I neared the completion of my degree I had a lot of recruiters calling me for very well paid jobs. All my friends in the program had similar experiences, many of whom went on to big tech companies. Hell, big tech companies advertised directly to PhD students on campus. Hardly the picture of worthlessness you are painting.
Okay, sure. I don't completely discount a PhD when looking at a resume, but this also doesn't add much.
For most development jobs, a PhD is about as useful as one undergraduate summer internship in terms of demonstrating skills and adding value.
Of course, there are some jobs around theoretical & mathemetical problems where a PhD is worth a lot more. And those are probably the jobs at big tech companies which your PhD friends have been offered.
I don't think a PhD is worthless. I just don't think it makes a big difference for a developer's resume, especially because it also carries some unfortunate signaling effects (I know many PhDs who only went that route because they weren't good enough developers to get good jobs straight out of undergrad).