Developers: How to get Hired by Every Startup You Contact
3degreesnation.tumblr.com
3degreesnation.tumblr.com
1. Make a cool pet project
2. Show it to The Internet
3. Get a little exposure, feel awesome, decide this project is going somewhere and you'll work on it for months on end because it's just that awesome
4. Freelancing offers[1] start raining in
5. Realize you actually don't have any money, are a student and don't have a lot of time next to classes
6. Accept one or two freelancing gigs
7. Pet project dies a miserable death
8. Rinse and repeat a few months later
[1] I freelance for startups, always for startups. Usually I'm the guy they go to for "Hey, so uhm, I hacked this prototype together in two weeks now there is more than 1 user. Everything is breaking. Halp."
If some decent looking startup publishes a new API, jump on that. If your app is any good, they'll be excited to try it and help you promote it.
This is how I was extended an offer for good freelance work recently.
I tend to build what I think is a cool pet project, then completely fail to put it in front of anyone other than friends who happen to be in the room while I'm tinkering with it. Usually by the time I've managed to build anything substantial, I no longer think it will be interesting to anyone.
1. Figure out what you think is the most important thing
to be doing in the world right now.
2. Learn the requisite skills to do it.
3. Find somebody who's doing it already and write a carefully
crafted, enthusiastic email explaining why you think what
they are doing is important and why you are uniquely suited
to be part of it.
4. Show some evidence (produced in step 2).
If you don't know what you think is the most important thing to be doing in the world right now, then somebody else is deciding for you.Seems like a nice way to kick off an agenda with a bit of fear mongering but its rather the non-technical founders that are exploding in size. On top of it the actual thing that developers are catching on to is that it doesn't make any sense in this environment to become a CTO of a very small startup when you can just start your own and have proper equity.
almost invariably, not at all. Even though it is easy to find coders who have a legitimate claim to having 5-10 projects they did by themselves. This would mean they have "100% equity" in all of them. Then again, the 10 projects might have 30 active users between them.
Meanwhile, the non-technical founder in question has already outsourced a MVP, which is a product, gotten enough buzz for you to be reading their blog posts on hn, and you can join something that - unlike your own last ten projects - actually has a chance to make a great deal of sales in a real market. Whereas, in actual reality, if you took the idea and coded it up yourself without any further input than the concept pitch from the non-technical cofounder, it would go nowhere - just like your last ten projects.
Just saying... I would trade 5% of a company that raises a round at.. just about any amount, over 100% of ten 'companies' that never incorporate and have donation buttons which make a grand total of $76 over the same period of time.
It is easy to discount what the non-technical founder - or in this case owner - brings to the table. I wouldn't be quite so quick to do so.
So, I raised a small FAF round and outsourced my MVP to two awesome dev shops. Now I'm raising a second round of funding and can afford to bring on someone full-time. It's definitely not ideal, but it was the only way I could do it. I'm hoping the idea, the flexibility of the job, and the above average equity piece are intriguing to a potential CTO. Would be interested to hear suggestions on how to make this more attractive?
A. Programming languages do matter. Talking to other programmers, a good way to find people who actually love programming is to ask people what languages they use. People who have experimented with haskell or clojure are usually people who love programming more. PG has a good essay on why it makes sense to start a startup based around an esoteric language. I know for a fact that Jane Street uses their heavy reliance on ocaml as a recruiting tool. Your life will be much, much easier if you can hire better programmers. Hence, the startups with the really good engineers will want to know what programming languages you know. So yes, I agree that resumes are not that interesting, but also, programming languages are useful indicators for certain kinds of employers. The recruitee's github should reflect this. [1]
B. Sending links to apps or websites is all well and good, but as another commenter said, for some startups, it is basically useless. If you are trying to be the CTO of a company like 10gen (their CTO is a co-founder, but bear with me) you will want to know about their systems skill, not how pretty they can make a website. Backend talent, or understanding of algorithms is something you absolutely cannot get from this.
So at startups where backend technical skill is not highly valued, and the founder is very non-technical, this might be useful. If you are trying to work at a Palantir or a DropBox, you should probably ignore this advice, although admittedly, both are much further along than this guy is thinking of.
The links note is a good point. I was tailoring this towards my specific startup, and really early startups in general making their first "tech" hire. Once you've got a CTO or someone technical on staff, they'll handle the technical hiring and will understand the process and applicants far better than a non-technical founder ever will.
There are three reasons why I would suggest that you don't emphasise the proficiency in Ruby. The first is, as mentioned above, that you're probably overestimating the effort required to switch platform at this point. The second is that a good programmer who just happens to have no/limited experience with Ruby will probably be able to adapt pretty fast, provided he has experience with similar technologies. By limiting your search to those that already know Ruby well, you're avoiding a lot of potential.
But the main reason why I think it's a bad idea, is because you are making decisions that I believe is the domain of a CTO to make. By doing so, you are sending a signal that you don't respect/trust him to make that decision. That is going to make the type of person you'd want onboard think twice about joining. I'm not suggesting that you actually feel this way (I don't know you, so I couldn't pass that judgement), but you should be aware of the way it will read to - at least some - people in your target demography.
Regardless, the proper title for this piece is: "How to get hired by me." Nothing more.
The best way to get hired? Follow the instructions on applying provided by the company. If they fail to provide proper instructions, they'll probably fail at a lot of other things as well.
Nearly all of my work is behind the screen of an NDA. When I am looking for a job, I'll send code samples, but I get the feeling that's no longer good enough. Is this correct?
In any case, I am noticing these things and will probably force myself to start a blog at some point, even though it's completely counter to my nature.
In that case, though, you should work a bit to demonstrate your engagement with the field in some other way. The kind of people who I most want to hire at a startup are the ones who would still be coding on something even if that weren't the job. I strongly want to avoid clock-punchers who only program because that seemed like an easier job than dentistry.
Note that a blog isn't the only way to show your engagement. A bunch of good Stack Overflow answers. A very thoughtful cover letter. A link to some personal tech project you did. The presentation you did for a local user group. Mentioning the time you spend volunteering with the FIRST Lego League.
On the one hand, I did wish I had some code to show off, because a significant proportion of the companies that looked interesting wanted to see some nontrivial thing I had written as a precondition to an interview; “send us a link to your Github page” was not uncommon. On the other hand, I did get interviews and I did accept an offer from a place I genuinely thought was a good fit (and not just “well, it’s a good escape from the previous employer”), so it is possible.
Regarding not sending resumes - this is quite in hype now, which is bad - I prefer structured text over some heart-touching tale - and not everyone is great at writing. What author is looking instead of resumes, it is actually called a cover letter - so it can be sent _with_ a resume, not necessary a replacement.
What really struck me were two things:
- Outsourcing the MVP. I've seen a few people do it but it seems a very expensive way to get started. Wouldn't it be easier to pitch for funding/a technical partner without this?
- Building a recommendation engine in Ruby? Really? I've never used Ruby for numeric code but I wouldn't think it would be particularly fast and it doesn't have libraries equivalent NumPy AFAIK.
(Don't feel you have to vote this up. I'm on 666 karma right now. ;-)
So in this context spending a little savings on an MVP is a great way to go, it lets you show traction to get the funding or technical partner and can be done by raising from friends/family or working nights at another job.
http://www.amazon.com/dp/0596529325?tag=loucalnet-20&cam...;
There’s just no real barometer – it’s not like being a Doctor or a Lawyer where you can check the applicant’s college, GPA, and Bar Score (is that a thing?) and know the person is proficient.
If you're hiring technical staff and you clearly understand what you need these people to do on a daily basis and why you need them to do it then there is absolutely no excuse for not having even a basic set of minimum technical criteria.
If you don't clearly understand what you need them to do on a day to day basis then I think you may need to re-assess why you need them, or it's possible that someone else in the business should be handling the first stage of this hiring process.
Now to your 6 key points
1. Don't send a resume - That's a huge statement and your supporting points are severely lacking in elaboration. listing all the different languages you know is really only interesting to you and your peers Refer to my first point above.
2. Keep an updated blog - Sure. I can see this. What about the fantastic developers who don't have sufficient time to blog? Some of the best developers I know have a blog, most of the best developers I know don't.
3. Link to your previous work - Comfortably the best piece of advice in the entire article and I can't support this advice enough. I was recently looking for an iOS developer and the amount of CV's I received from people claiming to have amazing apps published in the app store yet no links to said app was just baffling.
4. If you’re not from the US (or the country you are applying for a job in), let me know what that means - Sorry but if you're my employer, the onus is upon you to be familiar with international hiring policies.
5. Show you’re interested in the product, and the process - if you could show that you’re interested in the business and aren’t going to leave when the next startup comes calling, that’s great That's one of the many reasons to interview someone. It's an opportunity to find out how much they truly know about you and your company. If you think you can derive this from an initial application, then again, I feel you are misguided.
6. Have a good answer for why you’re leaving your current job - This won’t be in the initial email, but is important, so I had to include it This should be in the initial email. This is always one of the first questions I ask prior to interviewing someone. If they tell me the reason they want out is because they are bored, then the obvious next question is 'why do you find it boring'.
This article should be titled How to make life easier for a non-technical hiring manager as I can almost guarantee your approach will contradict the thought process of most decision makers within the tech start-up community as opposed to getting a job offer from 'every company they apply to'.
Sorry to be so scathing as there are some useful pieces of info in your article however the title angered me.
The "startup ninja hacker" world is in need of a reality check
The "tradicional hiring" methods has some glaring defects, but people don't realize it's got a lot of things right as well!
I want your resume, yes. You don't need one if your name really rings a bell like Gosling, Stroustroup, Torvalds. Not "built JQuery UI plugins" famous, sorry.
Also, it's great if you can link to a previous work, but if you can't it's ok. Projects go offline (happened to me), are sold as part of a product (yes), or are part of a really expensive product (yep).
"Sorry but if you're my employer, the onus is upon you to be familiar with international hiring policies." I lost count of how many "recruiters" contacted me offering a job in the US (residents only). But you know, in the same place you got my email there was a disclaimer "need sponsorship to work in the US". So if you ignore this, I'm gonna assume it's a poor job offer (and it usually is)
That said... I actually generally get an interview with many of the startups I contact through a traditional resume and cover letter. I've been hired by some, rejected by others, but I believe it usually comes down to how well I handle a series of difficult technical interviews. They're usually around algorithms and data structures, and often test recursion. Threading is also a commonly tested subject.
Are these tests highly rigorous? All I can say is they're pretty tough for me. I've run the questions by other programmers, some say it's tough, others say it's not so hard, many just get so interested in the problem that they start working on it.
Anyway, I'd still say that the best way to get hired by every startup you contact is to be a pretty badass programmer, with a very strong grounding in algorithms and data structures, recursion, threading, and be ready to show you can apply that stuff in a very short amount of time under some pressure at the white board. It's just my opinion, but I believe I know very, very talented programmers who have been passed over because of their performance during these interviews.
Here's something good to take from this blog post - if you are a good and productive programmer who has trouble with the tech grilling, definitely make an effort to put some work out there on blogs and github, it might make the difference. Maybe the threshold for the technical grilling is more forgiving when the hiring team has more to work with, better examples of a candidate's ability?
I disagree that the lack of supply is temporary. I'm not even sure that's really the case. For one, there will always be more demand than supply for "A level" developers. This is a field where people have to really push themselves to keep up with the game and continue expanding their skills, and most people don't want to go through that effort. All you have to do is run faster than the average developers and the bar isn't very high. Also, there will always be "niche" areas where developers are hard to find and well in demand and those niches are everywhere.
Make sure that you are doing more than just sending out resumes. Get your name out there by being visible in places where employers might be looking for developers. Use Twitter, LinkedIn, create a tech blog and generally help people out. The more your name is out there, the greater your "luck surface area."
Freelancing is also a great way to land a job for a lot of reasons. When you are looking for a job, you have to sell yourself to the employer. With freelancing, you can get a lot of practice with selling and generally you will get more immediate feedback for your efforts because hiring a freelancer is far less risk / commitment than hiring a full time developer. Freelancing is also good for possibly meeting your next employer, if you are a great fit, then your freelance gig might turn into a full time position. Freelancing is also good for building up experience.
I would be extremely wary about joining a tech start-up that has to go through an open job application process for a CTO. If the founder can't make enough of a believer out of someone within his or her own network to join, I would see that as a bad sign -- not just in terms of the start-up's idea but also the founder's ability to sell his or her idea. If it's the case that the founder doesn't know viable candidates in his or her own network, then I'd be doubly concerned: it's a tech start-up and a strong network within tech circles will be necessary for other resources down the line (future engineering hires, advice, potential investors that add value to the company, etc). Additionally, if s/he isn't really plugged in to the tech community, I'd worry that s/he doesn't truly understand the business, my skills as it relates to the business, and the value that I bring to the table. And in this particular case, I'd also be concerned that social networking is what this start-up revolves around and the founder (again, from my limited view on the outside) doesn't appear to be able to network effectively enough to at least get introductions to suitable CTO candidates through secondary connections.
I'm not saying that this is necessarily the situation here but that's my thought process just based on the information available. I consider things like sales ability, existing network and hiring ability to be essential things for a non-technical founder to bring to the table before I would consider working for him or her -- otherwise, I'm almost as well-off starting my own thing and own a hell of a lot more equity.
There are a handful of non-technical people I know that I would join in short order if one of them ever called to talk about a job at his or her start-up. And if I declined I would refer them to other people I know that might be interested because I know no matter what he or she is doing, s/he has a great chance of succeeding. If you're not the kind of person that inspires that level of loyalty, being a lone non-technical founder at a tech start-up seems like it would make an already arduous journey incredibly difficult.
Of course this causes a class divide between:
A) People who are paid to contribute to open source (either as part of their job or in some cases their whole job) and therefor have many commits.
B) People who write a little open source code on the weekends.
C) People who already work 60-80 hour weeks on proprietary/in house software and have other commitments for the rest of their time.
Also the "you need to contribute to open source to get a new job" thing has a perverse incentive for companies. If they know that having you contributing to open source makes it easier for you to either leave or demand a higher salary (because it is easier for you to get hired elsewhere). It is then in their interests to stop you doing it whenever possible.
My advice would be to build up your portfolio with personal dev projects, fork projects on github, etc. The more of that you do it's likely people will even start contacting you with offers.