This is all good advice. But there are two even more important things that I'd add:
• Specialize. It's way easier for an in-demand specialist to find work and also it's much easier to answer who you'd like to work for once you've got a narrower focus.
• If you're applying for a job that's posted internet, you're already behind the curve. Build a network. Make sure that you know other programmers and that they know you're looking for a job. If you know specific companies you want to work for, make an effort to meet people at those companies.
The two points interact because if you specialize, you tend to get to know the other specialists in your field. I've done a lot of audio software in C++ and did that in my last job. Even before working there I knew a bunch of the other people that did C++ audio software and one of them did an intro for me that got me the job. This wasn't even theoretical -- I actually had filled out the online job form a few weeks prior and gotten the, "This position has already been filled." mail. When I used a personal intro instead I had an interview inside of a week and they wanted to know how quickly I could start.
There is literally nothing more powerful than having someone within the business introducing you.
Your points about specialising are 100% valid and it is very good advice however I would add that people need to think carefully about what they want to specialise in as if you make the wrong choice you are stuck with a career you hate and will struggling to move out of that speciality.
It occurs to me that this may be precisely the reason why specialists command higher rates and find it easier to sell their services: Specialization is a risk. Sometimes it's a big risk. The reason why you pay extra for a specialist in $FIELD_X is that you're compensating that expert for having taken the risk of specializing in $FIELD_X.
There were NeXTSTEP programming experts in 1998. Those people sure ended up hitting the jackpot, though nobody could have predicted it at the time. I assure you that there were also AOLServer Tcl programming experts in 1998. Nobody remembers them. :] (At least, not for that.)
This line of thinking makes me wonder if the standard "be a specialist" advice is yet another example of sample bias: Because the lucky and successful specialists make money, stay in business, and eventually retire and spend their time writing articles and talks about how great it is to be a specialist, we may think specialization is a better idea than it actually is. Make sure to balance your approach by talking to some of the poor folks who specialized in Pascal programming, or Palm WebOS. Or ask an expert Flash programmer how they feel about the rise of the iPad. Keep your escape routes handy!
You can get trapped by a specialty, but there are ways to get out of that. Open source opens up a lot of doors there.
For two of my three post-college jobs I had no professional experience in the area that I was going into, but had a decent body of open source work (on projects that were being used already by my future employers) that established that I was a credible specialist.
If you're unemployed and looking for a job, it's not a huge gamble to roll the dice and try to learn a lot about an area you're interested in. Just do so realizing that you may have to repeat that process again at some point.
As a side-note, just because a specialization is seemingly on the way out doesn't mean that it's not lucrative. I remember when in college, in 1999, I was probably one of the youngest people in the world that knew COBOL. The offers that I was getting at the ripe age of 19 were $200k+ because everyone was terrified of Y2K stuff. Since then I've mostly worked as a C++ developer. While there's less new software being written in C++ today relative to a decade ago, it's still a very marketable skill precisely because the number of people that are good at it is smaller than the number of jobs available.
Be careful specializing on technologies; that's a hamster wheel of a career. Better to specialize in application domains. Lord knows where ObjC will be 10 years from now, but search engine discoverability is probably going to be important for a long time.
This has gotten my 90% of my fulltime jobs, and 100% of my contract gigs.
If you are well connected, job boards and listings become a distraction.
If you are not, there is still hope. This is a highly valuable and transferable skill (and part of the overall career-building skillset involving self-marketing and interview skills).
Being well-connected isn't just for the rich and lazy, it helps in all aspects of your career.
Specializing is a very good idea ... for some people. It does however have it's down sides. One of those is that you can end up quite restricted geographically. Ie, you specialize in industry A or technology B and want to live in city X or country Y and unfortunately those options are not compatible. People optimize for different things and I've deliberately stayed a generalist to enable me to move to wherever I want to live and have no problems finding employment.
Specialization often pays well because there aren't enough skilled practitioners of the specialty.
There are two types: legacy specialties (like COBOL and C++), and cutting edge specialties (Java in 1998, Ruby in 2005, Objective-C in 2008).
Even though the cutting edge is a lot less stable, it's by far the better investment, since the technology's lifespan is longer. Plus, generally a lot more pleasant to deal with.
> Even though the cutting edge is a lot less stable, it's by far the better investment, since the technology's lifespan is longer. Plus, generally a lot more pleasant to deal with.
I'd disagree on both counts there actually.
First, if something has already become a notable "legacy" technology then it's probably going to exist for a long while yet. There will still be people writing C++ in 20 years. I'd feel a lot less confident saying that about Node.js. When balancing the equation you have to factor in that most new technologies will never gain significant traction.
Second, there are different sorts of evolution around technologies. C++ or Java as a speciality now aren't inherently interesting, but they're disproportionately used in fields that I find interesting (information retrieval, real-time systems, signal processing, low-level programming, finance, big data, etc.). I find all of those more interesting than Rails in 2005. Much of that is personal preference, but again in older stacks the interesting things are the problem space, not the stack itself, while with newer stacks, there's more novelty value.
You don't need a network. You can just cold-call. If you find a company that you think you will fit it, you can just contact them and ask if they have positions. That's what recruiters do, except they don't know what kind of company you would fit in, so they call everyone.
You will face the exact same issues recruiters do. Gatekeepers telling you the person you are looking for is 'in a meeting' or to email them your CV and they will get back to you etc.
It takes me a minimum of 20 calls to actually speak to a person in a position to hire people and my hit rate is better than most.
You do face a two less barriers - employers don't hate talking to engineers, and you know you are a good fit for the org. Employers don't want to talk to requiters, because they are afraid they will just get a stack of un-targeted resumes, probably from job seekers who have never even heard of them.
Yes, and applying for multiple jobs is also a PITA. There's no ideal way. Targeting employers has the advantage that the manager isn't looking at a pile of 500 mostly unqualified resumes, just yours.
It's not easy. But it's obviously a reasonable way to do it, as that's what professional requiters do.
Not quite but generally with start-ups the person you need to speak to is ridiculously busy so you will simply struggle to get 5 minutes of their time.
Depends on the size, but I've found startups pretty responsive via email. I haven't asked for a job, but I'd imagine there's a good chance a real human will read it, and might remember you if your skills are relevant and they later need someone in that area.
I don't think you need to actually get a hold of the person you want to talk to on the phone. Simply initiating contact like this outside of a job posting will show that you are extremely interested.
A good start. The thing to remember is that there is absolutely no difference between looking for a job and looking for customers while running a business. You have to market your product – which, in this case, is yourself.
This kind of thing is pretty culture-specific. Here in Argentina, it matters a lot if someone can introduce you — even if it's your accountant's uncle. Also, for some reason, people don't answer email. You have to call them on the phone or talk to them in person.
This is how I found my first job (straight out of college, industry had crashed in south africa after the .99 bomb, I had been looking for a while but no luck). This is what I eventually came up with, you decide if it's how hackers find a job.
- I put an ad in a popular job seeker's rag. It cost a pretty penny, but the end result was worth it.
- The ad was not as a job seeker, but as an employer
- The employer, of course, was fake but I described the kind of company that I wanted to work at
- I then listed credentials and traits similar to mine, for this was the person my false company was looking for (in the end looking for someone like me upped my chances of success)
- I put an email and a fax number, where they could send resume's. I insisted on references being passed through.
- Naturally, my fax ran out of paper, me email box was flooded.
- I screened the resume's of the candidates, paying particular attention to their previous employers, eventually picking the one I wanted to work for
- I then phoned the few candidates selected and asked them about their previous job (all the while still pretending to be a potential employer -- it sucks, but I was running out of hope and really wanted a good job!)
- I finally picked the one that loved his previous job but decided to leave because he had done everything to be done there
- I phoned the reference provided in his resume`
"Hi, this is Wesley. I met so-and-so at a party on the weekend, he mentioned you may be looking for devs that are x, y and z"
"Do not limit your CV to one page. If your experience spans more than 3 years or more than 3 jobs then you need details and it's madness to limit yourself to one page in this situation."
My interpretation was always that the "one page resume" rule was aimed at new college grads, since they may be more likely to ramble on (and their experience barely matters anyway). The problem is that they don't realize after they get a real job that they shouldn't (necessarily) follow this rule anymore.
I assume you should aim to keep it succinct, though? I've interviewed a guy who literally listed the names of the methods on an API he'd developed. I think he clocked in a 6-7 pages for a three year career. Surprising as he came through a recruiter, I'd assume a recruiter would provide some CV critique.
Chances are the recruiter hadn't a clue what he was looking at. He would have been too afraid to edit it as he had no idea where to start. That sort of info is fine on your personal site which you can link to from your CV but to include it all on your formal CV is madness.
Personally I think 3 pages, 4 max if you are a contractor is more than enough.
"The advice I would give you however is to send your CV as a Word or PDF document and include a link to your LaTeX version."
I understand why a recruiter would want an editable resume (Word), to strip off the candidate's PII and add the recruiter's branding. I don't understand why a hiring company, receiving a resume sent directly from candidate to company, would need an editable resume.
My guess is that their recruiting software doesn't handle PDFs correctly. I recently went through a job search and was dumbfounded by the number of places that would only take a Word document.
It's easy to confuse a company with their HR department. Many well known companies that have good reputations in the developer community would only take Word docs.
I don't want a job at a firm where the HR department is free to dictate inflexible procedures to all and sundry. Requiring a Word document to make your internal workflow more comfortable for support personnel is bullshit. The workflow should be optimized for the comfort of candidates and hiring managers, everyone in between exists to serve those people.
To put it another way, you're talking about spending $20k+ on the job search itself, then $1-2 million on the employee across his tenure. Finding the right candidate is important. Don't treat me like a temp from ManPower.
The HR department's "inflexible procedures" are there to save the company money. Which do you think is higher: the activation energy (in terms of time, money, resources, and frustration) to retrain and retool the HR staff to accept resumes i whatever format (PDF, LaTeX, ODF, etc.) or the activation energy it takes you to stop whining and use Word like everybody else?
It doesn't make you a staffer from ManPower. The CEO probably submitted a Word resume.
The CEO probably doesn't even have a resume in the sense that you're thinking of. He is playing a different game entirely, where all decisionmaking authority rests with a handful of identifiable people who he is selling directly. You want to be playing his game.
This is a subjective matter. I'm not whining. I'm asserting quite clearly: you will never get a resume from me in a format other than PDF.
You, as an individual, are free to apply to those jobs with a Word resume. I won't bother. I will be absent from their candidate pool. In my book, that is very much not a problem.
I hardly think requiring a Word document is the same as "treating you like a temp from ManPower". Maybe ease up on the hyperbole a bit. We are talking about a file format.
Ah, but the file format is a proxy for a larger attitude problem.
A firm that demands my adherence to arbitrary rules before they'll even look at my marketing flyer is not a firm I want to work for. It reflects an attitude I do not appreciate.
Cowboy up and buy a Windows PC, or at least install fricking OpenOffice if you're persnickety.
It's 2011, the efforts to boycott Microsoft have failed, the world is tooled to use Word for documents and Excel for lists and basic numerics. Adapt or suffer the consequences.
A lot of organisations have a system/process for dealing with job applicants and most (at least in London) need an editable copy. Plus, as I mentioned in the post, not everyone is familiar with LaTeX so it can be a bit hit or miss.
The goal of LaTeX is to output a printable document, most of the time a pdf. I don't think sending the sources is polite nor very readable nevermind HR-compliant.
I always sent a PDF file. You can only see that is was made by LaTeX with a trained eye(if their is not too heavy customization) or in the PDF meta-data. Designers would use
pre-print tool like inDesign, which output PDF too.
PDF document is a problem with big companies portal that only want word document. I tried a few doc converter but they are not Free (as in beer and Freedom) and the result is of course really inferior.
Nowadays, I would try html conversion as I think the result can be quite good and readable by most people (even without pdf reader).
Also, always have a hard copy of your CV for the interview. Once, the corporate website of a company I applied accepted pdf files, but butchered them via pdf2txt or something like that. Having the right layout to show them saved the day.
I think you're confused, or just not familiar with LaTeX. Have you, as a recruiter, ever come across a resume/CV submitted as LaTeX source? I find it hard to believe someone who bothered to lay out their resume/CV in LaTeX could make the mistake of NOT compiling it to a PDF first.
I should have clarified. I am familiar with LaTeX but I don't see the point in submitting a LaTeX resume if the person receiving it hasn't got a clue what LaTeX is and thinks it's just another albeit prettier PDF document. Seems like a waste of effort.
It's generally easier to manage a proper resume tailored to each company with a well-structured LaTeX file than with Word. If you want to specifically draw attention to the fact, just toss \LaTeX into skills, though, honestly, most of us familiar with LaTEx can recognise a lot of distinguishing characteristics that few people bother to change.
If the person receiving the resume doesn't know what LaTeX is, they still have a relatively portable format and you expended less effort getting it to them. Win/Win.
I agree with the other commenter, using LaTeX has nothing to do with impressing the reader with my (shallow) LaTeX skills, and everything to do with not having to deal with something like InDesign or whatever other painful WYSIWYG tool most people use for this kind of thing.
I'm going through this process myself and I think one thing that'd be great is if you can A/B test your resume. What do you think about the general idea for a website that lets you do a hot or not style A/B test for resumes? Basically, limit it to programmers, Upvote / Downvote the resume and a comment section.
One crucial difference to the original, though, is that you're _supposed_ to react instantaneously to a picture. Resumes, even 1-pagers, demand more care or some involvement of higher cognitive functions. So, this could get very tired soon. I myself would be _much_ more interested in what other people think than in looking at other people's resumes; at best, I might be able to look at 5 max. People watching is (kind of) fun, people pay premiums to have their coffees in cafes, after all. But it's not exactly my idea of fun to look at a bunch of random CVs.
If I needed a resume, I would A/B test it, but this would be theatre. You'd need huge amounts of views and a decently high conversion rate to pull it off. Neither of these suggests a happy hiring process.
The main reason to A/B test the resume is to be the kind of guy who A/B tests his resume, which I guarantee you will push the right kinds of buttons at some companies.
I'm sure it would work and the people here on HN would be all over it. The only tricky part would be to come up with a system that obfuscates the personal details as well as the company details or you may run into privacy issues.
I disagree with OP's advice about the job boards. Yes, you will be inundated by cattle-call outsourced call centers. Yes, 90% of them will be: URGENT NEED 6 MO CONTRACT 8+ yr experienced J2EE 35.52/HR.
Totally annoying. My advice: get over it.
You want a job, right? Why limit yourself? Where's the harm? Learning to sniff out the bad recruiters from good is a pretty essential skill in this business. I have really good relationships with a handful of recruiters I met this way that are experienced, professional, genuinely interested in my career and not interested in mismatching. Yeah, I had to get burned a couple of times, and yes I've had to learn to filter out the cattle call, code monkey staff aug stuff. And it's great.
Once you learn to filter and know the good recruiters from bad (tone of voice in the first 30 seconds usually gives it away) you'll find that in the 10% non-crap calls are usually lurking some good opportunities.
Flip this around to the recruiter's perspective. 99% of their candidates and contacts are crap as well. If you actually know what you're doing and have a decent resume, there's a significant percentage of these recruiters who will be thrilled to find you and may actually have some interesting work, if not now, down the line. This has happened for me on a number of occasions.
If you want to avoid annoyances, by all means avoid the job boards. But if you're on the market, don't limit your options by snobbery or fear of annoyance. Learn to filter your calls and sift through the dross -- there may be a great opportunity in there if you're patient.
All completely valid advice however most find job boards a chore so my advice is designed to be a preemptive measure to save people from the standard route of job boards.
As a reference on the topic, I found Andy Lester's
"Land the Tech Job You Love" (PragProg) an informative and
entertaining reading.
It contains a few useful tips & hacks on how to tailor your CV and "hunt" jobs that match your expectations
(backed by real life stories and examples).
Some of the treated aspects - imo - fall under common sense, but I would suggest anyone
with little (or none) experience on the job market to pick it up nonetheless.
It's a good thing that Silicon Valley = The World, because otherwise half this post wouldn't have made any sense.
HN's "Who's hiring" thread, yeah that works. And I think the amount of hiring managers in the Netherlands who know Github is below 10. Sure, some years may fix this, but right now, the advice in this blog is painfully regionally specific.
Funnily enough I'm based in London and a lot of the advice is UK-centric. Granted Github has limited exposure outside of the US & the UK but I am not versed on Dutch standards so I'm afraid I would struggle to offer advice!
The advice I give in regards to where to look and how to go about improving your chances is exactly that. People who post vacancies on HN & GitHub are looking for hackers, not code-monkeys.
honestly this looks like a little advice on how to format your resumé / look for a job online. I saw nothing about acing the interview or how to write a really killer cover letter. I wrote a post about how to get a programming interview a few months back, I feel it provides more detail than your article
The title is 'How to find a job' not 'How to secure a job'.
Finding the opportunity is the hardest part and cover letters aren't as relevant as what you may think. I'm sure your post is great for interview advice, mine was aimed at helping people get those interviews in the first place.
My experience is that the cover letter was beneficial to getting an interview. In the cover letter I am able to demonstrate that I know about their company and that my skills/experience are a good fit for their position.
I know this was useful from my experience since the interviewers have mentioned that cover letter was very useful or they brought up details from it.
and cover letters aren't as relevant as what you may think
My experience tells me that cover letter relevancy is subjective. Some managers swear they need to read a good one, and others flip right to the resume.
In the field of software development, location doesn't matter.
Especially when some of the most vocal companies are in the business of bringing people at a distance together. If they cannot manage remote workers, what does that say about their products?
Anecdotal experience. I've been working "big city" development jobs from the farm for nearly a decade. I have never had difficulty finding people who wanted to work with me.
That's a point I agree with but it doesn't change the fact that there are a huge number of people on HN who are struggling to find the right kind of work, if any work at all.
After I submitted some of my previous blog posts I was inundated with emails from HNer's asking for CV advice and general advice on how to find work so I decided to address the problem.
Ultimately, if this post so much as helps one person then it will have been worth it.
I think the main problem is that in brave new world of "connection is everything" landing job is really really hard if you just sending resume thru HR/normal process. If nothing you should always edit resume based on the job posting (so you can match lingo used in the posting) - but chances that the resume will land on managers desk is near zero (it like sending unsolicited business plan to VCs...)
The most efficient way to land the job it to establish direct contact with hiring manager (or somebody in the team). I.e., pay $50 for linkedin so you can send email directly saying exactly what you want ...
I've had to hire many hackers myself so I'll cut to the chase for you:
* RESUME ACCEPTANCE IS BASED ON KEYWORDS: If your resume does not inlcude the SAME KEYWORDS MENTIONED IN THE JOB POSTING then it gets tossed aside.
if (posting.keywords() != resume.keywords()) {
resume.destroy();
continue;
}
Are hiring managers really this stupid and shallow?! YES!!! All of them!!! HR reps are even twice as shallow because HR doesn't know the meaning of the keywords!
* If the job posting says "Scrum" and your resume says "Agile" then you edit your resume and change that word to say "Scrum".
* If the job posting says "Django" and your resume says "many popular Python frameworks" then you edit your resume to say "Django"
* If job posting says "Ruby" and you put "Rails" ... guess what you should do about it?
* Skip the cover letter. This is not an essay contest. Nobody reads this.
* Top of resume: BRIEF two sentence description of your typical role on a technical team and the type of role are seeking.
* Next item of resume: Bullet point list of skills and experience. Keyword A, Keyword B, Keyword C ... remarkably similar to the job posting. What a coincidence!
* Remainder of resume: Employment history. Short descriptions. Everything you ever worked on is boring so don't get into details. Don't exceed 3 pages.
ACTUAL RESUME HACKS:
* Fill employment gaps decreasing the time scale. Instead of Month/Year next to each job, just put the year. Nobody cares if you weren't working between April and August so don't draw attention to it.
* If your GPA sucks then don't mention it. Nobody cares about your GPA unless you have no work history to speak of.
* Don't mention unrelated jobs in your work history. If your spent a year as a galley cook on oil rig then mention that under hobbies, not work history. It makes you seem like a transient to have a lot of odd unrelated jobs that don't follow the theme of this job posting.
* Non-paying jobs are still jobs. If you worked on your uncle's business web site for free while looking for a job, and you had to build the web site, then put it in your work history if you need it to fill the gap. Technical work is still work. If later on someone verifies your work history tell them it was an unpaid volunteer. Nobody cares.
* Isn't omitting the truth lying? If this is how you feel then don't bother applying for marketing jobs. Ask a marketing person to tweak your resume for you. Explain to them you are a technical person who only has a binary understanding of truth.
* Send your resume as a PDF attachment. Everyone can open a PDF. Not everyone has the latest greatest version of Word.
If your skill set matches, and you can prove your skills, then don't put things on your resume that will kill the deal. The resume makes the introduction, it is your calling card, it is your marketing. List the skills you have that they want. Your resume not your complete autobiography or a place to confess your gaps and incompetencies.
> If the hiring manager can't see the relevance then I'd rather not waste my time with them.
You have to understand that hiring organizations have layers of people, your resume passes through a few human filters before it gets to the desk of the manager who posted the job, and not everyone in that filter process knows Agile ~= Scrum so you have to factor according to the lowest common denominator.
... and some hiring managers would communicate that to HR, but honestly, to HR people it all sounds like R2D2 talking to the trash compactor. You got to imagine some key deciders reading your resume has no clue what any of it means, they don't want to know what it means, but they know when strange words have the same spelling.
Ultimately I agree with your original post to an extent. It certainly doesn't hurt to include the appropriate keywords but I wouldn't lose sleep over it.
"Fill employment gaps decreasing the time scale. Instead of Month/Year next to each job, just put the year. Nobody cares..."
Not true, I had a pretty awkward conversation with someone in HR at one of the big tech companies who wanted me to break down my employment history into as much detail as possible, to explain a gap. This was very, very late in the hiring process and needless to say, I would much rather have talked about it up front, before getting my hopes up, etc. I don't know what the answer is here, but I'm not sure that obfuscation is it.
If they want to get into details you can explain gaps in person. If they care more about analyzing your work gaps than your skills then they already decided to pass on you and now they want you to help them justify their decision.
Network, network, network! Get out and shake hands. People make most of their decisions based on emotions, you want to interview for the position before you even get to the interview. Also, I find that a good strategy when looking for a new job is to say that you are currently working on something else but are always on the look out for new challenges and to keep in touch if they have something come up.
Nothing about this posts addresses the fact that, unlike other authors, companies will steal your work and claim your IP, in exchange for a pathetic salary.
That means no royalties on million-dollar applications. Suckers!
• Specialize. It's way easier for an in-demand specialist to find work and also it's much easier to answer who you'd like to work for once you've got a narrower focus.
• If you're applying for a job that's posted internet, you're already behind the curve. Build a network. Make sure that you know other programmers and that they know you're looking for a job. If you know specific companies you want to work for, make an effort to meet people at those companies.
The two points interact because if you specialize, you tend to get to know the other specialists in your field. I've done a lot of audio software in C++ and did that in my last job. Even before working there I knew a bunch of the other people that did C++ audio software and one of them did an intro for me that got me the job. This wasn't even theoretical -- I actually had filled out the online job form a few weeks prior and gotten the, "This position has already been filled." mail. When I used a personal intro instead I had an interview inside of a week and they wanted to know how quickly I could start.