JOIN
Get Time
forums   
Search | Watch Thread  |  My Post History  |  My Watches  |  User Settings
View: Flat  | Threaded  | Tree
Previous Thread  |  Next Thread
Experiences with hiring... | Reply
We get a few stories posted back here of what it's like to apply at Microsoft or Google or something. I thought perhaps I'd describe what it's like being on the other side of the table at a smaller business.

We just got through hiring a couple programmers for junior level development positions. While the resumes came in a little slower than in previous hiring runs (it's a strong job market here), we got a good mix of people and a lot of resumes that looked strong. We got people with CS degrees, people with diplomas from technical schools, people with a fair bit of experience, new grads, referrals from current employees.

A big hint for this stage: make sure you know what the job is; then when you're asked what you want to do you can say things related to the job you're applying for. When you say you want to be doing "sales and management or something" in 5 years, it's hard to take you on as a junior developer. Being honest is great, but when you come to an interview for a coding position it's sort of catastrophic to say you don't like coding. It's hard to overstate how important this is.

Honestly, if you came into an interview with us fresh out of high school with no experience but said "I like programming and I want to be a programmer and here is some things I programmed" you probably would have made it to the final group (and if you could program, you'd be hired).

Speaking of which: develop something that can be shown to someone. We typically ask people for sample code or something - and mostly we get back garbage. Rudimentary school projects. Web sites that are long dead (and now just a parked page at GoDaddy or something). Vague "I helped with this part of this website" things. Applications that can't be run (or comprehended) without a certain database set up. Your code sample doesn't have to be spectacular; it just needs to be something that compiles and runs and does something and actually has some code that can be looked at by a human (and preferably one without a thousand frameworks installed). Not all job interviews are going to ask for something like this - but for ones that do you have a real leg up if you have something demonstrable (even if it's a game or trivial utility - by the time you get this far it'll be a technical person looking at you, and we like games).

Last hint: know how to program (and this part is probably wasted here). For our final cut, we had people do a coding exercise. Now you may be thinking - ooh, this is the part I'm interested in. Well... you'll probably be disappointed by the following story.

Here's what I had people do: Given an array of 1000 integers (values from 0 to 99), return the one that is the most common. In the case of a tie, return the smallest tied number. Before the exercise started, I demonstrated this on paper and made sure people understood the problem by giving them some samples and making sure they picked out the right one. I had people sit at a computer and code up the solution (in VB.net/VS 2005) while I watched and helped.

Some people didn't know VB syntax at all. This was kind of disappointing, given that the position was clearly a VB.net position, and we made sure during the interviews that people were familiar with VB (or at least claimed to be). And the people knew they were coming it to do a coding exercise. Anyways, this wasn't a big issue - when I saw people struggling to declare an array, I just told them how to do it. I wasn't really trying to test people's VB knowledge; a new syntax is easy to pick up if you're a competent programmer. I'm just saying that if you are applying for a Java job, you should get some basics of Java sorted out. Makes a better impression.

I was much more concerned with the problems people had coming up with an appropriate algorithm. I'm not talking about an efficient algorithm or the best algorithm or a bug-free one or something - I'm talking about anything. We had allotted an hour for the exercise, and by the end of the hour many applicants (including some with CS degrees(!!) or years of experience) hadn't made a real stab at the problem - and this is with some verbose help from me. At about the 20 minute mark I would talk to them about the general plan of going through the numbers and counting how many of each number they encounter. If they were stuck again by the 45 minute mark, I'd go over the plan of looping through the array of counts and remembering the largest count that had been encountered. Very few people got to the point where we were worrying about resolving ties. Lots of people went out on tangents trying to use SQL or sorting or something. While I guess some of that could have worked, it didn't help anyone who tried it.

In the end, the coding exercise was decisive. We had a couple people who walked through it fairly easily and we hired them.

Anyways, I come out of this with some reservations about the educational system and a renewed respect for TopCoder competitors. Some people may think I'm exaggerating something in the above - but I suspect those involved at hiring for smaller companies will hear the ring of truth.

Anyways, hopefully you found something in that useful, encouraging, or at least entertaining.

EDITS: minor, for clarity.
Re: Experiences with hiring... (response to post by jmzero) | Reply
Thanks for the stories!
This forum (General employment) is very instuctive overall, but posts like yours definitely bring something valuable to the community.
Re: Experiences with hiring... (response to post by jmzero) | Reply
Don't you have a CS degree yourself? If you have you must have gotten it at a better university than the one I got my (maths) degree. Otherwise you would have known you barely need any skills to acquire a CS degree. Let's just say I know you were not exaggerating.
Re: Experiences with hiring... (response to post by dskloet) | Reply
Interesting. I've always thought the same about CS degrees here, but I was pretty sure that this was a flaw of the french universities..
What about other countries ? Does `CS degree' mean anything there ?
Re: Experiences with hiring... (response to post by broutcha) | Reply
I haven't seen any 'CS' degrees in Brisbane, but the Information Technology degree with CS major at my university is the same.
Re: Experiences with hiring... (response to post by broutcha) | Reply
Wow - then I guess I'm really lucky to study in Warsaw.
Re: Experiences with hiring... (response to post by Krzysan) | Reply
How is it in Warsaw? Is it hard to get a CS degree? As hard as a math one?
Re: Experiences with hiring... (response to post by tywok) | Reply
How is it in Warsaw? Is it hard to get a CS degree? As hard as a math one?

Much harder. Only a handful (150 or so) CS students from all over the Poland are admitted each year. When you come to school, you have to pick your major in advance. In Poland you can't study English first and then decide to go for CS major - you have to be focused on CS from the get go.

After that, there are 5 quite though years (most people take part in Masters program). Year 1 is mostly theoretical, after that there's quite a lot of programming. I can give you a list of courses I took during my studies (courses with "lab" in the name take place in the laboratory and give separate grade). Each course is semester-long. If a course requires more time, it's divided into smaller pieces.

Year 1:
- Analysis 1.1
- Discrete mathematics 1
- Linear algebra 1
- Introduction to programming 1 (in ML or Pascal)
- Theory of sets

- Analysis 1.2
- Discrete mathematics 2
- Linear algebra 2
- Logics
- Introduction to programming 2 + lab (in ML or Pascal)

Year 2:
- Algorithms and data structures
- Analysis 2.1 (for math degree)
- Databases
- Databases: lab (design and implement a web page with PL/SQL backend)
- Object-oriented programming
- Object-oriented programming: lab (design and implement a game in Smalltalk)
- Topology 1 (for math degree)

- Analysis 2.2 (for math degree)
- Low-level programming (a lot of programming tasks in assembler)
- Software engineering
- Software engineering: lab (design a complex system)
- Concurrent programming
- Concurrent programming: lab (a lot of quite tough programming tasks in C)
- Probability theory 1 (for math degree)
- Differential equations (for math degree)

Year 3:
- Algebra 1 (for math degree)
- Languages, Automatas, Computations
- Numerical methods
- Probability theory 2 (for math degree)
- Semantic and verification of programs
- Operating systems
- Operating systems: lab (large programming tasks, like design and implement ACL module for linux kernel, each of 4-5 tasks can take 1-2 weeks of hard work)
- Team project 1 (design and implement complex system in Java in groups of 4)

- Computer Networks (I had to write a P2P system, this year people are writing VOIP telephony system)
- Team project 2 (as above)

All of above are compulsory and have to be taken as listed. It's very difficult to pass operating systems or computer networks unless you can program reasonably well. Some people, when they come here, can't, but since the classes are compulsory, students can collaborate and exchange information and programming techniques as they learn them. It's invaluable when working on some obscure and undocumented part of Linux kernel.

Other compulsory classes which can be taken in random order:
- Artificial intelligence
- Artificial intelligence: lab (write speach recognition system, or sth like that)
- Programming in logic (Prolog) (mostly useless and despised by many, next year will be dropped out from this list)
- Compiler design
- Compiler design: lab (write a full compiler, this year for Javalette)
- Algorithmics
- Functional programming
- Functional programming: lab (write something that shows how cool ML is)

Apart from that, one has to take a number of free-choice classes. There's also physical education and some general education classes, but it doesn't matter here.

As you see, we have number of theoretical and programming courses. You have to do reasonably well in both. You can't pass a programming class without doing some actual work and learning something.

Our CS program is still evolving. If a course doesn't prove itself useful (like prolog) it can be dropped out. If students are unhappy with a teacher, he/she can be replaced.

Everything is flexible. For instance, if you don't like to attend classes, but do your homework and write programs, you're fine. Recently a smaller Polish version of MIT's OpenCourseWare hed been started and lecture notes for all compulsory courses are available online. Even before that, most professors wrote and published online their own lecture notes.

A large population of students take part in programming contests. It's a hip shot, but I'd say it's 30-40% of all students. It's even more popular among students that take algorithms and data structures course as if you do well, you'll get a better grade.

The best thing is that there are all these smart people around you that you can learn from.

I have to say that I learned quite a lot thanks to this environment. If you take a look at my rating graph, it reflects not only my TC skills, but my general programming skills as well.

I'm a double math/CS student - I picked math because I loved it and CS just in case, to have better chances for a good job. During my senior year in high school, when I took part in CS workshop of Polish Children's Fund where tomek was one of the tutors, I remember he was totally horrified when he saw some of the code I produced there :-) In Warsaw I learned so much I fell in love with CS so much that math can't even compete :-) That's what I meant by "lucky" in my first post - I wasn't being cocky, I honestly admit I would be much worse programmer (if at all) if it weren't for this environment and people that pushed me to get better and better.

[edit] Did I mention the education is free? In fact, good students can get more than Polish average salary in scholarships.
Re: Experiences with hiring... (response to post by Krzysan) | Reply
Wow. And now I understand why Google comes to Poland :-)
Re: Experiences with hiring... (response to post by Krzysan) | Reply
This list of compulsory courses is quite similar to the one used in Spanish universities, and, I assume, in most CS curricula in other countries. So I find it very hard to believe that anyone in posession of such a degree (however hard it was for him to obtain) could have any trouble with such simple questions as the ones jmzero posed.
Re: Experiences with hiring... (response to post by elhipercubo) | Reply
Remember that in the states, there is much more freedom in the educational system. If you are good, you can take a lot of courses. If you are lazy, you can take whatever you want. A friend of mine took for his last high school year: English (compulsory), Goverment/Economics (compulsory), Advanced Woodshop, Advanced Autoshop and a support course. That's a good life!
Re: Experiences with hiring... (response to post by tywok) | Reply
The CS degrees at UF are ridiculously easy to achieve.

We offer much harder degrees in the Electrical & Computer Engineering department; Computer Engineering, Software Emphasis; and Computer & Science Engineering.

The Computer & Science Engineering one is really good, it requires all sorts of classes on OOP, AI, and all sorts of neat topics. The kids on that program usually pull off some really interesting projects. I'm Electrical & Computer Engineering, the most advanced software class I'll touch is Operating Systems, and maybe Design Patterns if I'm feeling good.

As a side note, most of our CS majors end up in IT, which is what they deserve for slacking.
Re: Experiences with hiring... (response to post by EmperorofUnivrs) | Reply
Interesting, most of our IT and ISys majors end up in IT :-)

I remember being surprised, actually, at the number of my classmates in some computer science classes that didn't intend to go into software.
Re: Experiences with hiring... (response to post by Krzysan) | Reply
Come to think of it, I don't see any courses on electronics, logical design or computer architecture in the list. So, just out of curiosity, is the CS degree in Poland restricted to the more "theoretical" or "mathematical" part of computer science?
Re: Experiences with hiring... (response to post by elhipercubo) | Reply
Only in technical schools - it's more like CS/EE over there.

Why should software engineer from a university have to learn circuit design and so on? Computer architecture, on the other hand, is useful and taught with low level programming.
Re: Experiences with hiring... (response to post by Krzysan) | Reply
Com'on don't lie to them :)

First of all - it's much harder to get to Warsaw University, but once you're in, it's very easy to stay, especially if you pass first year.

Having spend about 10 - 12 hours per week on average for the first three years for the studies (including courses, doing programs and learning for exams), I don't think it's "hard".

Of course, there's a lot of here to do, but only if you really want.

Also we have too much thereotical stuff, there's lack of teaching programs architecture and design, but that's changing right now for better.

It's strange that whenever I can, I try to give my university bad name - maybe to balance out the things.

Hmmm... instead of TC I should take some good english lessons :)

Edit: Maybe I've misunderstood you a little (2am is not good)
Re: Experiences with hiring... (response to post by Psyho) | Reply
First of all - it's much harder to get to Warsaw University, but once you're in, it's very easy to stay, especially if you pass first year.

Depends where you're coming from. For me the first year was easy, but the workload increased significantly with time. Maybe that's because of the double degree program.

Also we have too much thereotical stuff, there's lack of teaching programs architecture and design, but that's changing right now for better.

We have three mandatory courses and a couple of free choice, I guess that's not bad. I agree that level of object-oriented programming class is not very high, but that's because you're expecting too much - this course is for people that don't know a thing about it.

It's strange that whenever I can, I try to give my university bad name - maybe to balance out the things.

If you don't like something, go and change it instead of doing something like that.
Re: Experiences with hiring... (response to post by Krzysan) | Reply
Depends where you're coming from. For me the first year was easy, but the workload increased significantly with time. Maybe that's because of the double degree program.


I was from mediocre high school, without any skills in math, and my programming level could achieved within a week. So I can say that I had almost none prior knowledge about things which I'll be studying in the next few years.

And about general hardness, I'm only talking about how much time do you need spend only to pass the exams - nothing more.

We have three mandatory courses and a couple of free choice, I guess that's not bad. I agree that level of object-oriented programming class is not very high, but that's because you're expecting too much - this course is for people that don't know a thing about it.


I definitely don't expect too much. We have tens of in-depth theoretical courses about almost everything. But for practical skills like designing applications there's almost none. Our university is just good at training low-level developers and scientists - nothing more.

If you don't like something, go and change it instead of doing something like that.


It's not that I'm whining about this. I'm just trying to tell that it's not just great / hard / interesting university as everyone might think, hearing this all great opinions.

But I can't deny what you've said earlier - we really have a lots of smart people here, to work with, or to give us motivation. If not for them (and for my love for competitions), I'd never start participating in TC (by which I mean participating in algorithm competitions).
Re: Experiences with hiring... (response to post by Psyho) | Reply
I definitely don't expect too much. We have tens of in-depth theoretical courses about almost everything. But for practical skills like designing applications there's almost none. Our university is just good at training low-level developers and scientists - nothing more.

You're really picking on this one, and you're not right. There are:
- oo-programming (compulsory, introductory course)
- software engineering (compulsory)
- team project 1 and 2 (compulsory)
- software engineering (seminar)
- software design in J2EE (free choice)
- secure design in Java (free choice)
- oo design of information systems (free choice)
- extreme programming (free choice)

and a bunch for designing [oo]databases.
Re: Experiences with hiring... (response to post by Krzysan) | Reply
Well, I think a computer scientist should have a good grasp of how computers work, even if he's more software-oriented. I for one didn't enjoy my physics or analog electronics courses, but I found useful the ones on digital circuit design and the like, and I don't really see how computer architecture can be taught without these.
Re: Experiences with hiring... (response to post by dskloet) | Reply
It's the same in the UK where they are seen as vocational courses that churn out candidates with basic Java/C++/SQL skills who have had very little exposure to problem solving.
Re: Experiences with hiring... (response to post by Stroker_Ace) | Reply
I thought UK courses didn't want to teach you programmoing languages, but theoretical stuff, so you came out still unable to program!?
Re: Experiences with hiring... (response to post by jmzero) | Reply
It's clear you're exaggerating a lot.
We all know that many people manage to pass their exams knowing next to nothing, but it's blatantly obvious that anyone with a degree in CS will solve that task fairly easily, even those who struggle to pass the courses and finish several years later than expected. I wonder what kind of people were going to that interview if there is any truth to it.
Re: Experiences with hiring... (response to post by elhipercubo) | Reply
Actually, I doubt he's exaggerating at all.
Re: Experiences with hiring... (response to post by elhipercubo) | Reply
I'm glad you doubt me. From the other responses, I was starting to think maybe I had just set the bar too high or something and that I was wrong to be disappointed.

To be clear, I am in full agreement with you - I have no idea how you can get through a CS degree and not be able to solve that problem while holding your breath. And, to be clear, the bulk of the applicants were technical school grads, but there were some with CS degrees.

I guess the reason I wasn't more surprised is that this isn't our first attempt at this kind of thing. We'd previously done "on your own time" challenges with mazes and such - and got back either horrible, lengthy, non-solutions that barely passed the example (or just "that's too hard" or "I don't have time for that"). So while I made this challenge as easy as I could, in the back of my mind I kind of expected it to give people problems. I just didn't expect it to give an hour's worth of problems to so many people.

EDIT: here's the previous challenge we asked people to do a few years ago (before I was much involved in TopCoder - so I apologize for the ambiguous problem): here. The guy who turned in the only strong solution on this one is my office neighbour now.
Re: Experiences with hiring... (response to post by jmzero) | Reply
In 12 years of technical recruiting, I can say without reservation that what jmzero is describing happens every single day, not just in small companies but across every industry, company size and geographic location. I've given out very, very simple logic problems as well (problems that I can solve, and I'm completely useless when it comes to math or programming) and have gotten back at best 25% correct answers from CS graduates or even from those with Masters level degrees in CS. Here's an example: "given a 3 minute hourglass and a 5 minute hourglass, how could you accurately measure 7 minutes?" It would amaze you how many people with a CS degree from a good university can't solve that problem given 10 minutes. Some couldn't solve it given all the time in the world.
Re: Experiences with hiring... (response to post by harvey6ft) | Reply
I actually don't think that is a very good question for measuring "smarts" or ability. I think it falls into the "aha" category of questions. If you see the trick it is easy, if you don't, it's not.

I think jmzero's question is good because he makes sure people know how to solve the problem first. Therefore he is testing if they have the ability to convert a "human" algorithm into computer code.
Re: Experiences with hiring... (response to post by jmzero) | Reply
Oh but you should be disappointed about it! At least I am. I was just saying I was getting used to it. And of course you shouldn't lower the bar if you don't want to destroy your company by hiring incompetent people.
Re: Experiences with hiring... (response to post by jmzero) | Reply
It's my experience that people with CS degrees are a mixed batch of skills, but people with math degrees that do programming are generally good at it.
Re: Experiences with hiring... (response to post by jmzero) | Reply
At a company I interviewed with in the early 90's, when someone came in for an interview, the receptionist handed them a written test. The written test consisted of a single problem:

X^2 + 5X - 14 = 0

Solve for X.

If they could solve that, they got to talk to an engineer. If they couldn't, they were politely shown the door.

Only one person in ten got it.
Re: Experiences with hiring... (response to post by BradAustin) | Reply
Maybe my math is better than I thought.... I can solve that one!
Re: Experiences with hiring... (response to post by BradAustin) | Reply
I came into an interview for a entry level programming job a couple of days ago and was handed a written test on probability.

Expand P(T; S1, S2, S3... Sn)
a) When no assumptions can be made on S1, S2... Sn
b) When it can be assumed that S1, S2... Sn are all independent of each other.


I guess interview questions have gotten harder since the 90's :(
Re: Experiences with hiring... (response to post by Chikov2) | Reply
This reminds me of a math test joke:

1960s Arithmetic Test:

"A logger cuts and sells a truckload of lumber for $100. His cost of production is four-fifths of that amount. What is his profit?"

'70s new-math test:

"A logger exchanges a set L of lumber for a set M of money. The cardinality of set M is 100. The set C of production costs contains 20 fewer points. What is the cardinality of Set P of profits?"

'80s "dumbed down" version:

"A logger cuts and sells a truckload of lumber for $100. His cost is $80, his profit is $20. Find and circle the number 20."

'90s version:

"An unenlightened logger cuts down a beautiful stand of 100 trees in order to make a $20 profit. Write an essay explaining how you feel about this as a way to make money. Topic for discussion: How did the forest birds and squirrels feel?"
Re: Experiences with hiring... (response to post by BradAustin) | Reply
I would think most of our community could do that in their head.
Re: Experiences with hiring... (response to post by jmzero) | Reply
My tried and true (several times now) strategy for hiring: If you want someone who is competent in CS, hire someone with a degree in physics. If person speaks with a Ukraine accent _and_ has a physics degree, do not allow them to get out the door.

There is also a class of engineer I call "crusty old EE bastard" who works well (EE is electrical engineering degree). These are usually American.
Re: Experiences with hiring... (response to post by eraserhd) | Reply
I've always thought the following would make a good interview question:

Ask someone "Do you know the language Ruby? Ever used Lisp? What about toolkit XYZ?". Just keep asking until they go "Never used it" then put them in front of a computer with an internet connection and ask them to write a simple program (mean of a list for example) using said unknown. Substitute languages with any subset of computer software.

I've found that getting a job done is just as much about learning things you don't know, than it is doing things you do.
Re: Experiences with hiring... (response to post by jmzero) | Reply
I just wanted to chime in and corroborate everything that jmzero said. He couldn't have said it any better.

"Last hint: know how to program (and this part is probably wasted here). For our final cut, we had people do a coding exercise. Now you may be thinking - ooh, this is the part I'm interested in. Well... you'll probably be disappointed by the following story."

He hit the nail on the head here. You would probably be shocked at the number of people that are getting programming oriented degrees (Comp Sci., Computer Engineering, Electrical Engineering, etc) that really have no true programming abilities. Even things like OOP questions will get me blank stares when I ask them.

Now, I can't speak for much of the international community, but one of the biggest problems with North American colleges is that the majority of the courses aren't geared towards developing practical programming skills or the design process. They focus on the theory side and writing small segments of code to complete a massive code base. Unfortunately most of the funding coming into the schools is for theory based research not for enterprise style programming, so thats what the students learn--and it is very obvious in most interviews.

If you want to get a job in the financial industry coming out of college/university you want to take courses on the following things, in order of importance:
-OOP/Data Structures
-Concurrency/Multi-threaded programming (most schools dump this into their operating systems courses)
-Network programming
-Algorithm design
-Database programming

I would say in the next 6 months with some of the new technologies coming out you are going to see concurrency/multi-threaded programming dethrone OOP.

As for the actual interviews, I can't stress this enough (given my audience, I am probably preaching to the choir...) know how to read/explain what a block of code does, and in most cases, how to improve it. Even if it is in a language you don't know, draw on your knowledge of other languages. Interviewers don't want to hear "I don't know, let's move on". Personally, I like nothing more then when a person admits they don't know (honesty) and then takes a try at it explaining him/herself along the way.

Finally, like jmzero said, bringing in code that you have written is huge for your chances too--but that isn't enough, make sure you can explain it and why you made certain design decisions.

HTH

Chris Zuehlke
DRW Trading Group
Algorithmic Trading Group
Re: Experiences with hiring... (response to post by DRW_Chris) | Reply
Now, I can't speak for much of the international community, but one of the biggest problems with North American colleges is that the majority of the courses aren't geared towards developing practical programming skills or the design process. They focus on the theory side and writing small segments of code to complete a massive code base. Unfortunately most of the funding coming into the schools is for theory based research not for enterprise style programming, so thats what the students learn--and it is very obvious in most interviews.


That doesn't explain why the candidates couldn't code a simple algorithm in one hour.
Re: Experiences with hiring... (response to post by rusolis) | Reply
I like to think that the people that can, already have a job.
Re: Experiences with hiring... (response to post by dok) | Reply
Sadly, I know it's not true. :(
Re: Experiences with hiring... (response to post by meragrin) | Reply
You mean people weren't beating down your door trying to hire you without an interview once you learned how to code simple algorithms? The hell you say!
Re: Experiences with hiring... (response to post by rusolis) | Reply
That doesn't explain why the candidates couldn't code a simple algorithm in one hour.


Having proctored 1k+ technical interviews, I'm always surprised when candidates with CS degrees/x years of experience are unable to perform simple algorithms at the whiteboard (like, say, reverse a string in place in C or C++). Would you hire a magician for your kid's birthday party and not ask to see a few tricks first?

Smart companies like Google, Microsoft, Amazon (and DRW :-) will ask you to do a fair amount of mental gymnastics in their interviews. Strangely, a lot of companies in the finance industry don't do this, but that is attributable to sloppy interviewing standards.

In any case, there's a core set of things that you should always do in interviews, technical stuff aside:

  • Keep your posture straight. No slumping.
  • Speak slowly and carefully. THINK before you respond to a question, even if you already know the answer. This will make you appear more measured and mature.
  • Look the interviewer in the eye. (But don't stare too hard, that will freak them out.) When the interviewer asks you a question, maintain eye contact; when he's done, look up towards the corner or the side of the room to relieve the optical tension. Then look back when you are ready to respond.
  • Smile, keep an open body language. (Don't cross your arms. Don't put your hands behind your head -- this is classic alpha-monkey body language that is guaranteed to annoy your interviewer. Don't lean back and put your feet up on the table. Etc.) If your interviewer likes you, he's likely to forgive the fact that you couldn't perform mental trick xyz. If you annoy your interviewer, it doesn't matter how smart or qualified you are; you aren't going to get the job.
  • Be careful with what you do with your hands. No fidgeting, no pen twirling, no table drumming, etc. There are some simple things you can do with your hands that will portray you as a thoughtful candidate. These include the steeple (kind of like a prayer), and Bill Clinton's classic maneuver: right hand palm up, left hand palm down so that the two palms are touching; when you make a point, bring the left hand up and towards the interviewer palm up. These little things have to be mechanical and practiced; the interviewer will only subconsciously notice them, but will walk away thinking "What a thoughtful and wise candidate." (Hopefully. Unless you are interviewing with me, because I know all of these tricks...)
  • Always, always, always have a set of prepared questions to ask the interviewer. Write them down and bring them with you. Most interviewers will give you a chance to ask questions of them at the end of the interview, and when they see that you have a prepared set, you'll hear a little gasp of appreciation. This is your chance to really get an understanding of the company. Do they pass the Spolsky test ( http://www.joelonsoftware.com/articles/fog0000000043.html )? How does the review process look? What's the org chart look like? Do you require people to write unit tests? Do you have a daily build? What do you like about your job? What do you dislike about your job? How do they score on the Capability Immaturity Model ( http://www.stsc.hill.af.mil/crosstalk/1996/11/xt96d11h.asp )? What keeps you up at night? What kind of hardware will I get? What is your policy on internet access (you'd be shocked, some companies don't allow it)--etc. Ask the same questions to all your interviewers; you'll be surprised at how different their responses will be. They aren't just interviewing you -- you are interviewing them. When I get to the "You interview me now" part of the interview, and the candidate doesn't have any questions -- instant turn off.

    Good luck out there!

    Lyle Hayhurst
    Chief Technology Officer
    DRW Trading, LLC
  • Re: Experiences with hiring... (response to post by DRW_Lyle) | Reply
    THINK before you respond to a question, even if you already know the answer.

    I dont quite agree with that.

    In one of my interviews, the interviewer asked me the terrifically banal "How would you swap 2 (reasonably small) integers without introducing a new variable."
    I told him that i already knew the answer.
    A few months later i was having lunch with him at office and he told me that he asked the question only to see how honest the candidate was.
    I asked him how he could be sure if the person giving the correct answer was honest or not.
    He said that the moment they heard the question, their eyes lit up and then they would make all sorts of thoughtful faces. Some even topped the whole thing up with the *aha* look right at the end. :)
    Re: Experiences with hiring... (response to post by kurtrips) | Reply
    Honesty is always appropriate for an interview. I don't think he was advising you to look like you are thinking. The advice was to just be measured and deliberate about your answers. If the answer is completely obvious take a second to make sure that the obvious answer really is correct and to organize your thoughts so that you convey your answer appropriately.
    Re: Experiences with hiring... (response to post by madking) | Reply
    Yep, what madking said.
    Re: Experiences with hiring... (response to post by DRW_Lyle) | Reply
    I still think it's more honest just to start thinking out loud. You want to know the way people think, right? I remember an interview question about the number of possible ways to do something. I immediately said: "I would guess it's the nth Fibonacci number. But let me think whether that's right." Do you think I should have skipped that part of my answer?

    I might, of course, change my mind after I conducted some interviews myself.
    Re: Experiences with hiring... (response to post by dskloet) | Reply
    I still think it's more honest just to start thinking out loud. You want to know the way people think, right? I remember an interview question about the number of possible ways to do something. I immediately said: "I would guess it's the nth Fibonacci number. But let me think whether that's right." Do you think I should have skipped that part of my answer?


    Your reply seems pretty reasonable. Thinking out loud is a good way to give the interviewer a window into your problem solving style. But I don't think it is about honesty -- pausing 1500 milliseconds before saying "I would guess it's the nth Fibonacci number" is no less dishonest then blurting out the reply immediately.

    You take the second or two pause to mentally formulate your response, not to con the interviewer into thinking you are solving the problem.

    Another way of looking at it: if a interviewer gives you a problem you already know the answer to, the best tactic is to tell them that you've seen that problem and that you know that answer. Odds are you'll win points from the interviewer for being straight up with him. Pausing and acting like you've never seen the problem before is dishonest and unethical.

    Lyle Hayhurst
    Chief Technology Officer
    DRW Trading, LLC
    Re: Experiences with hiring... (response to post by DRW_Lyle) | Reply
    I'm sorry but your description of interview seems like you should be manipulative and strategic during an interview. I guess DRW is looking for mature candidates and not the energetic ones.
    Re: Experiences with hiring... (response to post by codager) | Reply
    I don't think he's suggesting that at all. In an interview you only get one chance to make a good impression. You could be the smartest person in the world, but if you are sending signals that make the interviewer think that you would be difficult or unpleasant to work with in any way, you might not get the job. I think he is merely suggesting that you be conscious of the image you are projecting, and that there are things you can do to help prevent those negative impressions from forming in the interviewer's mind.
    Re: Experiences with hiring... (response to post by codager) | Reply
    I'm sorry but your description of interview seems like you should be manipulative and strategic during an interview. I guess DRW is looking for mature candidates and not the energetic ones.


    Not at all! This year we picked up 5 college grads and 4 college interns. Most of our programmers are in their twenties or early thirties.

    Look at it this way: you are interviewing with a firm that requires that you wear a jacket and tie to the interview. Is it manipulative or dishonest to comply with their request, even though you think suits are lame? (DRW doesn't require a suit for interview, btw.) Let's say a candidate's natural instinct in the interview is to kick his feet up on the table, put his arms behind your head, mumble, and avoid eye contact. Is it dishonest, strategic, or manipulative for the candidate to try to curb his natural instinct?

    Like lots of other things in life, interviews are just another game, with a unique set of rules. The guidelines I gave are common-sense interviewing tips that you'll find in just about any guide to interviewing. I'm not suggesting that you be dishonest or manipulative -- just that you pay attention to your body language.

    As has been oft-quoted, you won't get a second chance to make a first impression.

    Lyle Hayhurst
    Chief Technology Officer
    DRW Trading, LLC
    Re: Experiences with hiring... (response to post by DRW_Lyle) | Reply
    Seems like I misunderstood what you wanted to convey in your earlier post.
    I agree with you on this one :).
    RSS