Live data from Hacker News

The Mother of All Interview Questions

raganwald.posterous.com

91–100 of 136 posts

Re: The Mother of All Interview Questions

#91

Earlier quoted context omitted.

The question of bias is an excellent one to ponder. I agree that my phrasing is biased, but so is: The last three times you faced a "build or buy (/use open source)” situation, which did you choose, and why? ...in a way, as it only covers places where there is a perception that there was a straight-up choice. One of the things I am interested in is places where the invetion-oriented folks didn’t perceive there was a…

When I was at Google I wished they had a few 'uncoders', people who made it their goal in life to leave the source tree with fewer lines of source than they found it. True story: I went to a talk given by one of the 'engineering elders' (these were low Emp# engineers who were considered quite successful and were to be emulated by the workers :-) This person stated when they came to work at Google they were given the…

Not understanding the system is rarely a good reason to rewrite it. Let me guess, the system they rewrote was Google Groups? Because I remember back in 2006 it was working perfectly. Now their search of Usenet posts can hardly find anything.

Anyhow, I was working on a system once which had a very crappy implementation. Thousands lines of code in each source file. Spaghetti code everywhere. I spent a lot of time fixing bugs in that system. Clearly it wasn't productive. I decided to completely rewrite it. Spent a couple of months working on it, but when it was done, it had a cleaner implementation and far fewer bugs. I noticed that I hardly spend any time on that system any more - an indirect indication that the decision to rewrite was the right one.

Fast forward two years. I moved on to other projects. A new guy comes along (senior than me actually). His task is to make the old system work with new requirements. He comes with an idea - a complete rewrite. Since I worked on that system before, I get to review his design. He explains to me how his new implementation is going to have various "new" features. Then I ask him if he knows that the existing implementation does all that already and more. He had to admit that he have no idea how the existing system works, so he doesn't want to touch it - thence the desire to rewrite.

I gave him my advice but he proceeded with the rewrite anyway. The old code obviously got scrapped. Now, looking back I can't see where his new code ended up. Most likely his rewrite failed, so the new implementation never saw the light of day.

The moral of the story: even if you don't like the old system, you have to understand how it works in order to create something better.

Re: The Mother of All Interview Questions

#92
post #37

Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. "What do you think this is?" One advisor, an engineer, answered first. "It is a toaster," he said. The king asked, "How would you design an embedded computer for it?" The engineer replied, "Using a four-bit microcontroller, I wo…

(Shrug) I'd use a knob, a bimetallic strip, and a pair of tungsten contacts, but I'm weird that way.

Re: The Mother of All Interview Questions

#93
post #91

Earlier quoted context omitted.

When I was at Google I wished they had a few 'uncoders', people who made it their goal in life to leave the source tree with fewer lines of source than they found it. True story: I went to a talk given by one of the 'engineering elders' (these were low Emp# engineers who were considered quite successful and were to be emulated by the workers :-) This person stated when they came to work at Google they were given the…

Not understanding the system is rarely a good reason to rewrite it. Let me guess, the system they rewrote was Google Groups? Because I remember back in 2006 it was working perfectly. Now their search of Usenet posts can hardly find anything. Anyhow, I was working on a system once which had a very crappy implementation. Thousands lines of code in each source file. Spaghetti code everywhere. I spent a lot of time fixin…

Rewriting might still be faster then understanding an existing implementation.

Re: The Mother of All Interview Questions

#94
post #67

Earlier quoted context omitted.

I hate to depart from the group think, but there's another explanation aside from a smart engineer getting carried away with their own brilliance: They remarked how they spent a couple of days looking over the system which was complicated and creaky, they couldn't figure it out Now it may be the case that they didn't really try to fix it and are just using that as an excuse, but OTOH, they may actually have been stum…

The problem is not that the system was rewritten; it may well have needed it. The problem is that the engineer did not replace the existing system. Now they have two systems that do nearly the same thing.

It is often not possible for the rewritter to change all the uses of the old system.

Re: The Mother of All Interview Questions

#95
post #37

Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. "What do you think this is?" One advisor, an engineer, answered first. "It is a toaster," he said. The king asked, "How would you design an embedded computer for it?" The engineer replied, "Using a four-bit microcontroller, I wo…

(Shrug) I'd use a knob, a bimetallic strip, and a pair of tungsten contacts, but I'm weird that way.

The problem with that approach is that tuning it is hard, i.e. it's rather harder to ensure that the knob somewhat linearly adjust from "not toasted" to "black" and the useable control range isn't just a tiny part at one end of the full range.

Luckily changing software doesn't (usually) require a solder iron.

Re: The Mother of All Interview Questions

#96
I'm not sure I buy "invention", the creation of something new.

I prefer to ask questions that determine whether people are able to mine their own experience and apply solutions from one domain to another entirely different domain.

It seems to me, that most invention is finding novel approaches to existing problems, and that most problems already have solutions that just need to be discovered and matched up with their problem. The harder part is that it is usually the case that the solution is in a different problem domain than the problem at hand.

The most inventive people I know are the ones who are open to learning everything, who consume all knowledge and are always listening. These people store solutions in a problem-domain invariant way, such that when they encounter a problem they already know the solution even though it's non-trivial for everyone else.

Re: The Mother of All Interview Questions

#97
post #91

Earlier quoted context omitted.

When I was at Google I wished they had a few 'uncoders', people who made it their goal in life to leave the source tree with fewer lines of source than they found it. True story: I went to a talk given by one of the 'engineering elders' (these were low Emp# engineers who were considered quite successful and were to be emulated by the workers :-) This person stated when they came to work at Google they were given the…

Not understanding the system is rarely a good reason to rewrite it. Let me guess, the system they rewrote was Google Groups? Because I remember back in 2006 it was working perfectly. Now their search of Usenet posts can hardly find anything. Anyhow, I was working on a system once which had a very crappy implementation. Thousands lines of code in each source file. Spaghetti code everywhere. I spent a lot of time fixin…

Wow. So when you rewrite something, it's perfectly justified. When someone else decides to do the same thing, you twist the argument around on its head. Sounds completely hypocritical, mate.

Re: The Mother of All Interview Questions

#98

Earlier quoted context omitted.

When I was at Google I wished they had a few 'uncoders', people who made it their goal in life to leave the source tree with fewer lines of source than they found it. True story: I went to a talk given by one of the 'engineering elders' (these were low Emp# engineers who were considered quite successful and were to be emulated by the workers :-) This person stated when they came to work at Google they were given the…

I hate to depart from the group think, but there's another explanation aside from a smart engineer getting carried away with their own brilliance: They remarked how they spent a couple of days looking over the system which was complicated and creaky, they couldn't figure it out Now it may be the case that they didn't really try to fix it and are just using that as an excuse, but OTOH, they may actually have been stum…

If just looking at it doesn't help you figure it out, you start writing tests and use test coverage analysis to ensure completeness of your tests. Then you can refactor safely.

Re: The Mother of All Interview Questions

#99
post #44

Does anyone know the answer to the problem posed in the XKCD comic? http://xkcd.com/356/

http://pgraycode.wordpress.com/2011/02/23/solving-xkcds-nerd...

While certainly a nicely written and interesting post, it's not a solution, it's a rough numeric approximation.

Re: The Mother of All Interview Questions

#100
post #81

Earlier quoted context omitted.

Why would you be so combative? Wouldn't you grant the interviewer the benefit of the doubt and describe the most recent three things you can talk about? Is the question somehow offensive?

There's nothing at all combative in what I said. If you see it as such, the problem is with the way you relate to people. If someone asks me today specifically for the most recent three things I have invented, I am not going to lie in my answer. I am going to explain why I can not disclose any of those three and ask if they would rather hear about ones I can disclose. That you see this response, which is correct, tru…

I don't want to be an ass, please take this as friendly advice. You are obviously smart and good at what you do, but I really feel you are not coming across as well as you think you are. Your answer was quite combative, and I can illustrate how. Obviously it was terse, but I assume that was merely for illustration and not how you would actually speak.

Firstly, your first answer is a direct parry to the question. Whilst factual, it doesn't assume good faith of the interviewer, that they would be happy to hear about three recent things that you can talk about. I think you are on the wrong side of the line between the principle of quality and the principle of quantity -- you mention it would be lying not to talk about the literal three most recent, but I don't think most people would interpret it that way.

You then make what could easily be interpreted as a boast in relation to the multiple patents you hold. This is not a directly aggressive statement, but it is an offensive move in the status game you are playing with the interviewer. I wouldn't say it is the wrong thing to say; but it might be the wrong time to say it.

You then riposte with a reasonable question, but given you just slammed their question and asked them to clarify, it is unfortunate to then ask another question, basically forcing them to decide whether to mollify you or continue their own questioning.

Finally, you make another powerful status signalling move. Think of it this way -- if the people are impressed by these signals, they want to hire you already so why are you even having an interview? Therefore, chances are this interview is for someone else's benefit (HR or management) and neither of those groups will respond well to your attempt to take high status.

It's not a bad answer, it could certainly work well in some circumstances, obviously it could come across differently in actual conversation, but as it appeared it is combative.

I recommend reading http://en.wikipedia.org/wiki/Cooperative_principle and http://en.wikipedia.org/wiki/Gricean_maxims.

Post reply on HN