Hacker News new | ask | show | jobs
by schoudha 6369 days ago
"Those VP jobs just don’t exist at startups, and the few VPs they have are the founders and a key early hire or two. Not you."

That's probably not fair. Successful startups are looking for talent, not pedigree - it's a question of whether the candidate can add significant value as a VP.

I think this blog post get's distracted from it's original point - if you're a software developer looking for a software developer position then emphasize software development skills. This applies to small companies and even big companies (like Google). The skill set to be a good developer is consistent no matter what the size of your company.

This doesn't mean that startups don't need business, product, or technical leadership because all the best ones have shown they attracted all these very early.

2 comments

So, even though I think Spolsky's posts have gone further and further off the rails, this is one that resonated with me:

* first, management jobs in startups do go to the founders and "key hires" (definition: if you have to ask if you are one, you aren't) --- and

* the key predictor for whether someone does well in a startup has, in my experience, been how willing they are to write lots of code, as opposed to just talking about code.

Every bad hiring decision I have ever contributed to has involved allowing myself to be impressed with someone's design/architecture/methodology/"engineering". Conversely, everyone I've ever neg'd because they didn't seem grounded or professional enough has gone on to depants me in the commit logs.

Even though I recognize you meant this, I'd edit your key predictor to read, 'the key predictor for whether someone does well in a startup has, in my experience, been how willing they are to write lots of _good_ code"

I've been at several startups where the developers who made the most difference where those who wrote concise, correct, and elegant code that did the job, and nothing more. They didn't get distracted into writing "architectures" when all that was needed was a "tool." Their code was a pleasure to build upon, and people instantly respected their ability to bang it out.

Sometimes less is more.

I actually didn't mean that. I meant: write lots of code.

The bad decisions I made?

(a) thinking that people who could talk and talk and talk about code (shut up I'm not interviewing with you) would write good code

(b) thinking that people who couldn't explain why they'd ever use a red-black tree instead of a hash table would write bad code.

I'm making a case for more-is-more. People who write code (really write, sure, not cut-paste) have work ethics, are really into actually writing code, can easily be trained to bring them up to a median "engineery" standard of code, and get stuff done.

I'm not sure where in the tree to place this, so I'll put it at the bottom.

The absolute best indicator I've found for separating quality developers from the 9 to 5 set is finding out what they read.

80% read nothing and admit to it.

15% will make up something like "I read lots of things" or "I read blogs". This is the dangerous group, they're the astronauts.

The last 5% will tell you books they're reading, and more often than not will recommend books to you because they are passionate about what they read.

This simple test has yet to fail me. I'm sure there are great programmers in the 9 to 5 crew, but they aren't the people I want to trust in a pinch. I'll always prefer the guy who is doing this because he loves it over the guy who does it because it's a paycheck.

I've met a lot of people who can talk very intelligently about code and design, and who have read the canon, and can't put a function in a text editor to save their lives. Obviously, I'm not the only person to notice this: it's the reason for the "fizzbuzz" test.
Well, there are two parts to this. First of all, here (Phoenix) the market is very full of the "I program because it pays the bills" sort, and when we do a posting we review hundreds of candidates (either who directly contact us or are sent to us). Of those hundreds, I'll talk to probably 30 to 50. Of that 30 to 50, maybe 5 or 6 will come in for a face to face. The conversation around software is a great start and it saves me a TON of time when screening candidates by phone. Once there here we can talk code samples or details.

The second part is that it is inevitable that someone will eventually talk a good talk but be unable to actually walk the walk. That's when it's nice that we're in a right to work state. There's no point keeping someone on if they can't do the job you've hired them to do.

Of course, all that being said, this only works because we are a small shop, and the person doing the hiring is the same person who will work with "the new guy" from day one. This makes it loads easier than having to deal with hiring for someone else's department or even company.

Conversely, I generally don't read books on software design. I buy books on business, math, graduate level CS, occasionally programming languages (but then usually just to get something I can go through once and quickly) - but not software engineering. It just seems so ... well, put bluntly, the concepts covered in most of those books are pretty boring and part of the conventional wisdom of engineering culture.

The crowd that reads all of the software engineering books seems to be evenly split between good engineers and wankers.

I want to see a portfolio with real code behind it. I want to read your code. If I can't do that, you've probably not convinced me you're a good programmer, no matter how much you can talk the talk.

Are we all disqualified because we waste too much time on HN?

Reading looks like a good wheat from chaff question because someone who reads is continually educating him/herself. What gets points for a candidate? Language/framework books, algorithms, professional practices, essays, science fiction?

Well, keep in mind that I'm just one guy. I'm not some sort of high powered executive; I'm a hacker that just happens to do hiring.

There is a world of difference between the people of the world who are interested in making themselves better developers and computer scientists and the people who just want to do the minimum necessary for a job.

Other than the obvious requirement of some modicum of honesty on a resume (like... if you're going to say you know Haskell on your resume, you'd better be prepared to tell me what a monad is), reading has been the best indicator of a hire for me than anything else. Of course, just because someone says they read a ton of books doesn't mean they're going to get a job, but I'll only do face to face interviews with people who give a shit about what they do.

We don't do the caliber of stuff that requires deep discussion about sorting a million integers with only 2MB of memory, but we do like to keep our shop as small as is humanly possible in order to keep the quality level as high as we can.

(a) It's not really the fact that they talk about code, imho, it's what they say about code. Anyone who's clearly a passionate geek and writes weird and wonderful programs in their spare time is likely to be good.

(b) I don't know how to answer that question, but I could easily look it up if I was doing some work that required this sort of optimisation. Despite that lack of knowledge, I've built two start-ups now.

You use a hash table when you just need lookup. You use a tree when you need sorted order. The only tree worth using is a red-black tree. There, now you don't need to look it up. ;)
If I asked that question in an interview, and that's the answer you gave, I'd probably not hire you (assuming the position was CS-intensive).

There are a number of special-purpose trees which are important in some domains (tries, B-tree, splay tree, ...)

Simple hash implementations also tend to assume that it's cheap to compute a hash on the given key type (not always true) and that you have a rough idea on the bound of items in storage. Hashes far below that level are often also less memory efficient since the hash-table is pre-allocated.

Cheers :-)
That's an interesting and intuitive-after-the-fact observation. Thanks.
"They didn't get distracted into writing "architectures" when all that was needed was a "tool.""

I'm fighting this fight right now :( Someone I work with feels the need to add 3 layers of leaky abstractions and a few anti-patterns (visitor patterns without double-dispatch for example) to solve every little problem.

I'd agree with pretty much all except the below quote.

"... So, even though I think Spolsky's posts have gone further and further off the rails ..."

From the article ...

"... But for startups, everything about your resume has to scream getting your own hands dirty... the only thing we REALLY need is code to be written, and customers to be called on the telephone ..."

reads to me, on-track. One thing I have noticed is JOS has always been skewed towards JOS type businesses (privately owned, bootstrapped software development companies) rather than Startups (fast revenue based technology companies that in the end are either sold or IPO'd). So the stories seem misaligned.

The off-the-rails comment is due to the blog's trend away from things like critiquing the Win32 API and talking about software scheduling, and towards Spolsky's theories of company management. It's the Inc. effect.

His writing is also less engaging now than it was 3 years ago; fewer stories about crazy bread machines, more bland prescriptions.

This applies to small companies and even big companies (like Google). The skill set to be a good developer is consistent no matter what the size of your company.

I agree only partially. It definitely applies to all sizes of companies, but larger companies seem to care less about it during interviews. This is a large part of why startups work more efficiently on average.

I dunno about other big companies, but Google seems to care about it a lot.
Agreed, they are an anomaly there in my mind.