Conversation with hiring manager - Part 2

Timothy is a hiring manager of a large software company, he explained about the kind of students that he wanted to hire:

“Many software students believe that a technical interview only involves writing code but that is a misconception. Since they graduate from Computer Science or Software Engineering, they must have programming skills so I prefer to give them problems to solve and observe how they do it. Most students expect that I would give them a clear requirement where they can code just like an assignment in class but that is NOT that simple. The fact is not all problems are clearly stated and there are many ways to solve it. When given a problem, most students would jump in coding right away rather than take time to understand it. It is an indication that they are the type of people who would “Code first, ask question later” therefore, their work might have defects and need more testing. Good students would ask questions to clarify the problem until they fully understand it and only then, they code. This is the kind of people that I would hire.”

“However this is a major problem with international students as many do not know how to ask. They may have just enough English to study in school but not enough to have a good conversation. Some come from a culture that do not encourage asking question of authority so they hesitate to ask but by not asking during the interview, they portrait an image of being passive rather than a self-driven type. That is very negative as they may have good technical skills but not communication skills. Today soft-skills are very important as technical skills alone are NOT enough. That is why many international students miss the opportunity to get hired into top companies because they lack of communication skills. Let me explain to you about students who hurry to write code without understand the problem. In reality, requirements are often not well stated and customers often change their minds. What happen when requirements are changing as they are coding? That means they have to change their codes and that is how most defects happen. The more they change their code the more errors happen. It also means students know how to code but do NOT know how to solve problem. Today many schools only focus on coding but NOT solving problem. Although coding is important but there are more in software development than just coding. A prepared candidate knows how to ask question before implement anything and that is why they get hired.”

“There are students who know about theories and algorithms as they can memorize a lot but when come to practice, they cannot do anything. In the past, I have made mistakes by hiring students like that. These “Theoretical students” have good memory but no practical knowledge and do not know how to get things done. Many are victims of an obsolete education system that values “memorization” but have NO actual practice. They may do well in exams by cramming all the books and theories but cannot implement anything. This is why most interviews are now based on “actual performance” rather than oral interview of questions and answers.”

“There is another important factor that we consider important: Teamwork. A student may be the best programmer but if he cannot contribute to the team, he is losing most of his value. We do NOT want to hire “Hero” as software is teamwork, NOT individual work. A good developer may finish his work but if he does NOT help the rest of the team then project may fail. A good developer is always in touch with all the works that are going on within the team, and is ready to help when needed. Good developers take responsibility for their own works and make other team members better by helping them and view their team like a family. Many developers prefer to work in isolation and do NOT like to talk with others. They will never go far in their career because teamwork and communication are important skills. During interview, I would ask them about their team and how they get along with others. Some students would say bad thing about their team or about certain person on the team such as “She is not good enough” or “He is lazy so I have to do most of the work” These negative comments reflect an arrogant attitude and I never hire these students. If they cannot say anything positive about their team, they are not a good team player.”

“One of the most important factors is the continuous learning attitude. Good developers constantly learn new things as they are thirsty for new knowledge. During the job interview, I always ask students what are the most recent technical books that they have read in the past few months. Based on their answers, I can determine whether they are the right person for our company or not. Today students do not read much but only focus on what they are taught in school and that is NOT enough. We are living in a “connected world” and there are so many emerging technologies that impact our society. When I ask them about new trends such as Big data or cloud computing, many said that they never heard of such things. If they do not read well and know what is going on in the industry, I would not hire them.”

“As a large and successful software company, we often visit universities and review their training curricula. We ask professors to suggest “high potential” student that we could hire. If students do not have good relationship with professors or take advantage of professors' office hours then they miss the chance. Some students go to school but never talk to their professors and as the professors do not know them, they cannot recommend them. We often follow students' progress several months or even a year before they graduate to make sure that we identify the best students to hire. We offer them internships so we can observe them. We collaborate with universities by let them know what kind of skills that we need in the next three to five years and suggest that universities provide training in those areas. In exchange we hire their students and provide feedback to the university on their performance. If students are doing well, we will continue to hire more students from that university. That is our industry-university relationship model and that is why we prefer to hire graduates from certain programs and certain schools.”

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University