Can interview puzzles help find startup ideas?
unschooled.org
unschooled.org
---
I think there might be value to those dumb interview puzzles after all. Let me explain.
Last week there was a Hacker News link to a post about a 140 interview questions Google supposedly asks. I read over some of them and was quickly drawn in. Not because I expect to be interviewing for a job, but because a puzzle like that is like a virus that infects my mind. It spreads until it’s my top idea, and then holds up residence until I solve it.
After figuring out a few of them and being frustrated by how long they took me, I wondered if there were general strategies I could use to solve them.
One pattern quickly jumped out at me: Almost all of these puzzles exploit blind spots in our thinking. Their answers frequently lie in assumptions we don’t even know we’re making.
Have you heard the one about the four travelers who each walk at different speeds and have to cross a bridge in 17 minutes?
It’s easy as soon as you realize you don’t have to send the same person back right after he crosses, and that you don’t just want to optimize for the return-trip time.
Or what about the one where you have to find which of eight balls is heavier than the others, using a balance exactly twice? It’s straightforward as soon as you stop assuming you should use a divide-and-conquer approach and weigh all the balls in your first weighing.
Naval Ravikant and Andrew Parker both blogged about how many popular web services have sprung from challenging assumptions about privacy. This is a specific instance of what I’m talking about. We make certain assumptions about privacy without always examining why we’ve made them.
Frequently it’s the case that the assumption was valid when we first made it, but technological or social change has rendered it invalid. We still have lots of those floating around our culture. How could we not? It’s not like all of society is a giant decision-making machine that reevaluates every statement we hold to be true the second a new technology pops up. As a whole, society goes through this process gradually, as someone inevitably notices the contradiction or error in our thinking and a new order begins to spread. Jobs did this with the assumption that computers weren’t for personal use. Gates did this with the assumption that the money was to be made in the hardware rather than the OS business.
If you want to build a company that changes the world, look for these assumptions. They’re in our collective blind spots. Places we don’t want to look or places we look past every day. They’re buried treasures, because the first person to identify one gets first mover advantage and a window of time in which others haven’t realized what they previously held to be true isn’t.
I think the eight balls problem is particularly interesting, since it feels like it was designed to exploit the way most CS people think.
In the end, execution is key. I value polish over cleverness. Someone who can execute quickly and cleanly is who I want. Testing for those qualities is more difficult and interactive than simple interview questions.
You aren't pegging the CPU, are you? Right now, you're probably using 0% CPU or thereabouts, and you don't have a problem caching can solve. What you do have is a limited pool of connections. Having KeepAlive on causes any browser that grabs a connection for any reason to hold onto it for a few extra seconds, to improve its performance on subsequent requests for e.g. static resources. Unfortunately, if you have more clients than you can service, they all get to wait until the keepalive period is over so that one connection gets released, immediately satisfies an additional client with cached data, and then does nothing for another few seconds. This looks to people in the queue like your server died.
Apache KeepAlive defaults to on in several popular distributions, including Ubuntu last time I checked. That default interacts very, very poorly with common conditions for blogs in 2010.
(Edit: I don't think this was the original problem, since when the site went down the CPU was in fact pegged. Regardless, it sounds like I should have KeepAlive off.)