How not to recruit for a startup
wepay.com
wepay.com
Also, of the portfolio sites you linked, Sacha's seems to be the good one. The others make errors ranging from "dies with no JavaScript" (Alex, Zach) to "spends the whole page talking about their childhood" (Zach) to "what is this, I don't even" (Dustin). Alex and Zach pass if we're talking about a junior role, but I'd filter them if it was for a sole or senior role.
p.s. I found out about this via this video: [1], scroll for transcript.
[0] http://www.atlassian.com/about/careers/recruiters.jsp
[1] http://blog.businessofsoftware.org/2011/09/from-0-100million...
Recruiters, like any other service professionals, are always trying to sell you on their experience, but you owe it to yourself to closely inspect their claims and methods. If recruiter is any good they won't be offended and would cooperate.
Contingency fee recruiters are especially renowned for sloppy work. If they only get paid when they place a candidate their only incentive is to sell you the first warm body they find. This type of attitude you have to nip in the bud.
Which means that any recruiter you can reasonably expect engage on a tactical basis is going to be drawn from the adverse selection pool.
Building a company is hard, hiring lots of good, loyal people in a short time is a lot harder than scaling some software.
Better to hire the best you can by other criteria and let the chips fall where they may.
The reason why is that people that you hire early and that put together the core of the company will have a bunch of extremely important knowledge that will be very hard to transfer to another new hire. If a start-up spends a great deal of time replacing people that were hired and that left just as fast that would seriously affect continuity.
It is for that very reason that in later funding rounds it is not unusual to ask these people to sign on for an X number of years in return for some stock with a vesting period.
Perhaps more apropos, skill is more of an unwavering quality than loyalty. The way to make a great developer loyal is to give them interesting stuff to work on and have the right culture. If loyalty is your metric, it's more effective to worry about your office conditions than to try to pick the right candidates.
I'm a prime example. At 33 I've only had 5 jobs since I was 20, so I look incredibly loyal as an employee. But there's a reason I stayed at each of those jobs for so long. I would not suffer a pointy-haired boss for a single day.
We did that to 3 recruiting companies. 2 of them shaped up and only send decent candidates. The other lost our business.
Regarding design candidates, there are some very very good designers working in big corporation and they don't have online portfolio or personal site (in many cases because HR does not allow it). For example, as far as know, designers working at Apple (which are probably people you want to hire) will not have online portfolio or personal blog site.
With engineers, at least there's a semi-reasonable way to see in a few hours if they can code. It's not clear that you can do anything similar for designers.
Also, someone who excels in the corporate world, where there are a dozen people working on the website, a dozen people working on any given project, and a couple of managers to make sure it all blends seamlessly, may not do so well in an environment where they are expected to create and deploy without guidance or oversight.
Yes, without a portfolio, you're guessing, but the problem with requiring candidate to have portfolio is that you will narrow the search to consulting/freelancer group which might not be the best pool of candidates.
Also many intelligent people which had startups or consulting end up working for corporations (Comcast, Apple, Oracle, etc.) because... because they are very very good and corporation pay with gold to get these kind of guys.
We launched with a duct-tape and baling wire version of an idea cobbled together from mostly stock components. It blew up overnight and kept on growing exponentially for months.
All that time we managed to extend the life of the first version by throwing money at the problem, buying larger servers and tweaking the bits to remove the bottlenecks whenever they popped up.
In the meantime we re-wrote the code until it would scale reasonably well, and this included the re-writing of a bunch of those off the shelf components that had kept things afloat.
That re-write took 3 times as many developers as we had had until that time.
The final version scaled through 4 orders of magnitude growth (in tests, in real life we never got that far) without any major hickups and I suspect it could have grown quite a bit further had we made all the right decisions.
Unfortunately we didn't and that's where we got stuck, around 100K uniques / day.
* UI. As your customer base grows (along with your company's reputation), the overall expectation of a quality product grows with it. Bugs that are a minor irritation for some people are dealbreakers for others, especially when you're taking on an industry giant - so minor problems make you lose customers (often permanently, given the "tried them three years ago, buggy, will not come back" attitude of most people). We're taking on PayPal - which, while not exactly known for a quality user experience, is extremely stable. We found this problem increased by at least an order of magnitude when we launched our stores product.
* Testing. Front and back-end. Like above, growth = reputation = expectation of quality. Gotta keep things stable, and there are some things that have absolutely zero margin for error (I've spent three days to produce a three-line patch, simply because I had to be aware of and handle dozens of different scenarios, and making an error could result in the wrong amount of money ending up in an account. Yes, it worked correctly)
* Support. If you're dealing with people's money, it's kind of a big deal. I'll let you use your imagination.
* Fraud. A non-trivial portion of our payment review involves human screening. With a couple hundred payments per day, that's manageable. Hundreds or thousands per hour? Not so much. We have to make smarter automated rules to avoid human screening where possible, and improve the UX in our back-end review panels so that humans can make intelligent decisions faster where necessary. Good code can replace (or free up, or avoid the need for) several human reviewers, and good human reviewers are just as hard to hire as good programmers. This and support are currently our tightest bottlenecks, since they directly limit the number of payments we can process in a day.
* UX. Not so much "is it pretty", but "does it do what I want?", "will I use it again?", etc. A huge percentage of our user base is virally acquired (ex. someone who previously made a donation comes back and sets up his own donation campaign and starts collecting money), which costs us nothing. The more we can entice users to stay engaged or engage their friends, the faster we can grow. If we can turn a payment receipt into a customer acquisition medium (customer meaning person collecting money, not paying), that's more users at effectively no cost to us.
* Scaling (in the traditional code sense). Not just server load, but weird problems that simply don't happen except at volume - database row locking, update collisions, etc. Detecting and fixing those types of problems is much harder than most people would think.
* Sales + Marketing. Not only expanding your markets, but making sure that as you're spending more on those efforts that your spending is effective. Have you saturated a tiny niche? You need more niches, and bigger groups to go after.
* Compliance and legal stuff. Did you know that as your annual payment volume increases, you have to adhere to stricter security guidelines for PCI compliance? While we've always held ourselves above and beyond the strictest guidelines, you still have to deal with compliance audits and such that don't happen at lower payment volume.
* Analytics and metrics. We're past the point where we can randomly guess at what's working and what's not. While we don't hold ourselves up with internal red tape and politics, we do actually need to measure the efficacy of the changes we're making. It's no longer a single new customer bumping the graphs by 20%, so we need pretty fine-grained measurements for this kind of thing (thankfully, we have enough volume where we don't need to let stuff sit in production for weeks to get a statistically significant sample size)
There's plenty more than that - most is quite general, though some is very specific to our company (fraud, in particular), and obviously not all of it is specific to engineering. My day-to-day is around payment stability and related back-end services, which also includes fraud management and our admin panel. Working 50+ hour weeks - quite a bit less intense than the 80+ I did during YC, but actually sustainable - simply doesn't allot me enough bandwidth to do everything that I need to do (I'm only commenting because the original post is a thinly veiled recruiting attempt and I've got desks that need filling). I have to solve problems like "an API call to a credit card processor timed out, how can I resume this automatically in a way where I know we will not accidentally charge a card twice" and "what changes do I need to make to ensure that a data integrity check never fails?" while at the same time architecting data models for new features, interviewing developer candidates, refactoring old systems for reliability and future-proofing, and providing our support team tools that allow them to do their job but don't allow them access to sensitive information (see again: PCI regulations). And I don't even touch the front end anymore.
Obviously, we're hiring. wepay.com/jobs :)
@Firehed you guys might also want to post your openings at http://news.ycombinator.com/jobs too. Miss you guys!
--Andrew M
1. Go into their office and sit down and do some database searches with them. Sift through a mountain of resumes and then show them what to look for and what to ignore. Be sure to note down searches that bring back decent results.
2. If you have existing staff that you want more of give the recruiter their resumes and sit each of them down to do an interview with the recruiter so they can be profiled.
3. Once you have a stack of perfect candidates that they can use as a reference do some analysis and look for the previous employers that are statistically significant and add all of these to a list for headhunting. Also add any special skill sets that someone in the past may have which would predispose them to having skills you are after now.
4. Sit down and write the recruitment ad together with the recruiter so it "calls" to the candidates you want. Make sure they CC every resume that comes in so you can quickly flick through them and ask them to screen any that look interesting. Recruiters will often reject perfect candidates because they do not fit the profile exactly or they miss something interesting.
The recruiter should now have a pile of information and reference points that they can use to seed numerous searches that have a much higher likelihood of delivering candidates of interest. If a submitted candidate is not right make sure to give feedback that can be used to further refine the search.
http://techcrunch.com/2010/04/27/php-founder-rasmus-lerdorf-...
I've had enough professional nightmares as a result of Rasmus' technical decisions in the past, so I didn't pursue it further.
Food for thought for anyone considering working there (if indeed he's even still there - I haven't kept up).
So I think design recruiting should be done by designers, and that's why I built Folyo (http://folyo.me). Companies that have submitted an offer have received an average of 8 replies each, and they're all from good designers with solid portfolios.
(By the way, if you're wondering WePay was one of the early users of the service, but the designers who replied were not in the US, and the visa issues proved to be too big an obstacle)
It's a litmus test I use for early-stage companies: who is doing the recruiting? At early-stage companies, having the right people is ultra-critical. It's not work to be outsourced at that stage.
We're a boutique shop, we're super-careful, and we still make mistakes: one of my recruiters sent a mail about Client A to an employee of Client B. She screwed up - she saw an old resume that didn't have Client B's name, and didn't double-check on LinkedIn. The employee was pissed, Client B was pissed, I was pissed, my recruiter was embarrassed, but we all got over it, because we're adults.
Second, on finding an agency you like, I wrote a blog post on this a month back: http://roosterpark.com/blog/hiring-a-recruiter-how-to-choose.... dmk23 is right that you should be asking real questions: I've included some examples in the post. (I've never even submitted this to HN before. Wonder why.)
So far as I can tell, they just get resumes off linkedin and make calls all day. Very low-value for us.
For a startup, I think your early employees are so critical that you have to do the recruiting job yourself. I know it is seductive to think that you can outsource it, but you really can't.
These days you've got an entire social network -- LinkedIn -- designed to have people help refer other people for jobs.
Further, it was very early in my career that I just completely gave up on working with recruiters, and long before social networks even existed. I think that other good programmers probably are the same way-- why send your resume to people who will retype it with typos just to remove your name, lie to you, and send it randomly to hiring managers without talking to you first?
Perfectly good blog post and amusing story. But I think that the startup culture would do well to evolve away from using recruiters and rely more on networking.
The problem with that is that it makes it even more incestuous and hard to enter from outside. Yes, yes, if you can't find an employee to introduce you, you're not trying hard enough, etc, just like pitching a VC.
But seriously, given how hard a time we're having getting new blood now, making it harder to get in is negative progress. It's a lose.
Also, kids in high school, new college grads, self taught hackers.... show me someone with a strong drive and I'm half sold.
So, no, I didn't mean to imply any sort of incestuousness... I'd like the opposite. I'm interested in a lot of people that reciters would filter out. "No college degree? Trashcan!" For me, its "No college degree because he spent the four years building a crappy startup that totally failed stupidly? Hire 'em!"
PS- please don't take this as me trying to recruit. I'm not. We're not ready for that, yet.
The author is an idiot.
ETA: I had a program manager who thought that having a blog meant the developer was an accomplished/published author. The developer quit for having to work 10 hour days after the first week and a half. Again, idiot.
Would their academic credentials have been more helpful?
I also caveated that comment: I may be missing out on some good candidates, but seeing something they've created is the only way I know how to screen design candidates. Perhaps that does make me an idiot :(
I'm not saying that having a blog makes you an "accomplished author" as the original commentator suggests I was implying, I'm just saying that seeing your work is the easiest/only way to screen for talent.
Designers design, and like to show off their designs. If a designer doesn't have anything to show off, it doesn't pass the smell test for me.