How to Pass an Interview for Software Engineer

57
How to Pass an How to Pass an Interview for a Interview for a Software Engineer? Software Engineer? What to Do and What to Avoid? What to Do and What to Avoid? Nikolay Kostov Nikolay Kostov academy.telerik.com Technical Technical Trainer Trainer http://nikolay.it Telerik Academy Telerik Academy

Transcript of How to Pass an Interview for Software Engineer

Page 1: How to Pass an Interview for Software Engineer

How to Pass an How to Pass an Interview for a Interview for a

Software Engineer?Software Engineer?What to Do and What to Avoid?What to Do and What to Avoid?

Nikolay KostovNikolay Kostov

academy.telerik.com

Technical TrainerTechnical Trainerhttp://nikolay.itTelerik AcademyTelerik Academy

Page 2: How to Pass an Interview for Software Engineer

Table of ContentsTable of Contents

1.1. What is a Job Interview?What is a Job Interview?

2.2. Preparation for an InterviewPreparation for an Interview

3.3. Typical Interview Questions andTypical Interview Questions andAnswers for Software EngineersAnswers for Software Engineers

Classical QuestionsClassical Questions

Technical QuestionsTechnical Questions

Non-Technical (Personality) QuestionsNon-Technical (Personality) Questions

Questions to AskQuestions to Ask

4.4. Typical Mistakes and How to Avoid Typical Mistakes and How to Avoid Them?Them?

2

Page 3: How to Pass an Interview for Software Engineer

What is a Job What is a Job Interview?Interview?A Stressful Situation or a Chance A Stressful Situation or a Chance

to Demonstrate Your Knowledge to Demonstrate Your Knowledge and Skills?and Skills?

Page 4: How to Pass an Interview for Software Engineer

What is a Job What is a Job Interview?Interview?

A A job interview job interview is a meeting aimed to is a meeting aimed to assess a candidate for a certain job assess a candidate for a certain job positionposition The candidate should prove he or she is The candidate should prove he or she is

the right person for the offered positionthe right person for the offered position

The interviewers asses the The interviewers asses the skillsskills of the of the candidate and his or her candidate and his or her personalitypersonality

By questions and small tasksBy questions and small tasks

The candidate tries to prove his or her The candidate tries to prove his or her skillsskills

The candidate demonstrates his or her The candidate demonstrates his or her personal characterpersonal character

4

Page 5: How to Pass an Interview for Software Engineer

How to Overcome the How to Overcome the Stress?Stress?

The job interview is a The job interview is a stressful situationstressful situation!!

You need to present yourself in the best You need to present yourself in the best wayway

In most cases candidates fail to In most cases candidates fail to demonstrate their skills due to stressdemonstrate their skills due to stress

How to How to overcome the stressovercome the stress??

Just be well prepared!Just be well prepared!

Prepare yourself for the technicalPrepare yourself for the technicaland non-technical questionsand non-technical questions

Expect the questions and have good Expect the questions and have good answersanswers

5

Page 6: How to Pass an Interview for Software Engineer

Interview Interview PreparationPreparation

What is the Best Way to What is the Best Way to Prepare Yourself for an Prepare Yourself for an Upcoming Interview?Upcoming Interview?

Page 7: How to Pass an Interview for Software Engineer

Steps to Prepare for an Steps to Prepare for an InterviewInterview

Once you have scheduled and interview, Once you have scheduled and interview, be sure to be sure to prepare yourself prepare yourself for itfor it It is important to put enough effort in It is important to put enough effort in

your interview preparationyour interview preparation

Half an hour is not enough, invest at Half an hour is not enough, invest at least few daysleast few days

Steps to prepare for an interviewSteps to prepare for an interview Research the company and the HRsResearch the company and the HRs

Research the offered positionResearch the offered position

Prepare for technical questionsPrepare for technical questions

Prepare for personality questionsPrepare for personality questions7

Page 8: How to Pass an Interview for Software Engineer

Research the CompanyResearch the Company Always research the company you apply forAlways research the company you apply for You should expect a question at the You should expect a question at the

interview like "interview like "What do you know about our What do you know about our company?company?"" If you answer "Nothing", you will failIf you answer "Nothing", you will fail If you say something incorrect, it is even If you say something incorrect, it is even

worseworse HowHow to find information? to find information?

Obligatory explore in details the company Obligatory explore in details the company Web site, brochures, publications, ads, etc.Web site, brochures, publications, ads, etc.

Look for articles, blogs, forums, etc.Look for articles, blogs, forums, etc. Ask your friends what do they knowAsk your friends what do they know

8

Page 9: How to Pass an Interview for Software Engineer

Research the Company Research the Company (2)(2)

WhatWhat information you should know? information you should know? The company products / services portfolioThe company products / services portfolio The target market and customersThe target market and customers The technologies used in the development The technologies used in the development

(e.g. C#, Silverlight, SQL Server, RIA (e.g. C#, Silverlight, SQL Server, RIA Services, etc.)Services, etc.) Download the products and play with themDownload the products and play with them

You will be asked what you know about the You will be asked what you know about the products related to your prospective jobproducts related to your prospective job

The company mission, vision, projects, The company mission, vision, projects, etc.etc.

The corporate culture, corporate valuesThe corporate culture, corporate values9

Page 10: How to Pass an Interview for Software Engineer

Research the Offered Research the Offered PositionPosition

Obligatory Obligatory research the offered positionresearch the offered position, , requirements, advantages and requirements, advantages and responsibilitiesresponsibilities You should research all mentioned products, You should research all mentioned products,

services and technologies in the job services and technologies in the job descriptiondescription

E.g. if you see "E.g. if you see "Experience with Selenium is a Experience with Selenium is a plusplus", be sure to install and play with Selenium", be sure to install and play with Selenium

Be sure to know all "unknown words and Be sure to know all "unknown words and acronyms" in the job descriptionacronyms" in the job description

Be ready to demonstrate skills and experience Be ready to demonstrate skills and experience in the fields from the job descriptionin the fields from the job description

10

Page 11: How to Pass an Interview for Software Engineer

Prepare for Technical Prepare for Technical QuestionsQuestions

How to prepare for the How to prepare for the technical technical questionsquestions?? Typical general technical questionsTypical general technical questions

Data structures and algorithmsData structures and algorithms

Logical thinking and puzzlesLogical thinking and puzzles

Software engineering questionsSoftware engineering questions

Object-oriented programming (OOP)Object-oriented programming (OOP)

Specific questions for the offered positionSpecific questions for the offered position

If the job description says "If the job description says "JSF and JSF and RichFacesRichFaces", you should learn these ", you should learn these technologiestechnologies

11

Page 12: How to Pass an Interview for Software Engineer

Prepare for Technical Prepare for Technical QuestionsQuestions

How do you How do you prepare for a certain prepare for a certain technologytechnology?? Pass a course / tutorial / read a book / blog Pass a course / tutorial / read a book / blog

article about the unknown technologyarticle about the unknown technology

Obligatory Obligatory create a small project create a small project usingusingthe technology and play with itthe technology and play with it

This is the only way to get someThis is the only way to get somereal-life experience, live in a projectreal-life experience, live in a project

If you have never used a certain If you have never used a certain technology (e.g. technology (e.g. JSFJSF) you cannot say you ) you cannot say you are preparedare prepared

The best way to learn it is by practicingThe best way to learn it is by practicing12

Page 13: How to Pass an Interview for Software Engineer

The Interview The Interview ProcessProcessTypical Scenario for a Technical Typical Scenario for a Technical

InterviewInterview

Page 14: How to Pass an Interview for Software Engineer

Technical Interview: The Technical Interview: The ProcessProcess

A A technical interview technical interview for software for software engineer / IT professional consists of the engineer / IT professional consists of the following parts:following parts: The candidate presents himself or herselfThe candidate presents himself or herself

The interviewers present the company, its The interviewers present the company, its business, products, services, etc.business, products, services, etc.

Technical assessment – solve few technical Technical assessment – solve few technical problems and demonstrate the way of problems and demonstrate the way of thinkingthinking

Personal character assessmentPersonal character assessment

Negotiation – salary expectations, start Negotiation – salary expectations, start date, …date, … 14

Page 15: How to Pass an Interview for Software Engineer

Presenting the Company / Presenting the Company / PositionPosition

Typical Typical start of an interviewstart of an interview::

The interviewers presents themselvesThe interviewers presents themselves Usually there is more than one interviewerUsually there is more than one interviewer

HR (or HRs) and senior devs and / or team HR (or HRs) and senior devs and / or team leadersleaders

The interviewer presents in short the The interviewer presents in short the company, his department, his team, the company, his department, his team, the current and upcoming projects, current and upcoming projects, technologies used, etc.technologies used, etc. Some companies skip this step and expect Some companies skip this step and expect

the candidate to know all this stuffthe candidate to know all this stuff15

My name is … Our company is … bala-bla-bla … We My name is … Our company is … bala-bla-bla … We are leader in … bla-bla-bla … Our products bla-are leader in … bla-bla-bla … Our products bla-bla-bla … Our projects … bla-bla-bla … We are the bla-bla … Our projects … bla-bla-bla … We are the best!best!

Page 16: How to Pass an Interview for Software Engineer

Presenting YourselfPresenting Yourself Typical next step in an interview:Typical next step in an interview:

The candidate is expected to The candidate is expected to say few say few words about himself / herselfwords about himself / herself

Be prepared to talk Be prepared to talk 33--55 minutes minutes Explain how did you start programmingExplain how did you start programming

Your last job and projects (if you have)Your last job and projects (if you have)

Your current occupation (e.g. student at Your current occupation (e.g. student at NBU)NBU)

How did you learn about the position and How did you learn about the position and your motivation to applyyour motivation to apply

16

Present yourself in short – your relevant Present yourself in short – your relevant experience, education, how did you start experience, education, how did you start programming, etc.programming, etc.

Page 17: How to Pass an Interview for Software Engineer

Technical AssessmentTechnical Assessment The technical assessment is one of the The technical assessment is one of the

two most important parts of the interviewtwo most important parts of the interview You will be given You will be given technical questions technical questions to to

answer and answer and technical tasks technical tasks to solveto solve

Always come with a pen and writing padAlways come with a pen and writing pad It is not so important whether you solve It is not so important whether you solve

correctly the tasks or answer correctlycorrectly the tasks or answer correctly You should demonstrate your way of You should demonstrate your way of

thinking!thinking!

The interviewer wants to know how you The interviewer wants to know how you attack the problem, not whether the result attack the problem, not whether the result is correctis correct

17

Page 18: How to Pass an Interview for Software Engineer

Technical Question – Technical Question – ExampleExample

You should You should demonstrate your way of thinking demonstrate your way of thinking by saying what you think at the moment, e.g.by saying what you think at the moment, e.g.

Being silent for a minute while you think is Being silent for a minute while you think is evil!evil!

18

In C# which explain the fastest algorithm to sort In C# which explain the fastest algorithm to sort a list of customers by their first name?a list of customers by their first name?

… … I know the build-in Array.Sort() method, but I I know the build-in Array.Sort() method, but I am not sure it is the fastest.am not sure it is the fastest.

If I had a computer I would perform a Google If I had a computer I would perform a Google search.search.For multi-core CPUs I could try the parallel For multi-core CPUs I could try the parallel sorting using LINQ with parallel extensions.sorting using LINQ with parallel extensions.

I should either implement own comparer or use a I should either implement own comparer or use a lambda function to sort by the FirstName lambda function to sort by the FirstName property.property.

Page 19: How to Pass an Interview for Software Engineer

Technical Task – ExampleTechnical Task – Example Suppose you are given a simple problem Suppose you are given a simple problem

like:like:

The first thing to do it to get the writing The first thing to do it to get the writing pad and pad and write an examplewrite an example!!

This shows a correct and serious way of This shows a correct and serious way of thinkingthinking

By using the pen explain how you could By using the pen explain how you could randomize the sequence of cardsrandomize the sequence of cards

Explain how you will represent a single card Explain how you will represent a single card and a sequence of cards (data structures)and a sequence of cards (data structures)

Explain how you could test your solutionExplain how you could test your solution19

How do you can randomize a sequence of playing How do you can randomize a sequence of playing cards?cards?

Page 20: How to Pass an Interview for Software Engineer

Personal Character Personal Character AssessmentAssessment

Assessment of your Assessment of your personal personal character character qualities is very qualities is very important for the company!important for the company! Good software companies will Good software companies will

weight your personal skills more weight your personal skills more than your technical skillsthan your technical skills

You will be asked somehow You will be asked somehow irrelevant questions that reveal irrelevant questions that reveal your character, e.g.your character, e.g.

20

Do you have experience working in a team? What do Do you have experience working in a team? What do you prefer – being a leader or a player?you prefer – being a leader or a player?

Do you play some kind of sport? At what position?Do you play some kind of sport? At what position?

How do you react if you are about to miss a How do you react if you are about to miss a deadline?deadline?

Page 21: How to Pass an Interview for Software Engineer

Personal Character Personal Character Assessment (2)Assessment (2)

At the personal assessment questions At the personal assessment questions there is no correct or wrong answerthere is no correct or wrong answer Just be youJust be you

Don't recite some other's wordsDon't recite some other's words

Very important: Very important: be positive!be positive! Negative people are not welcome Negative people are not welcome

anywhereanywhere

Be confidentBe confident Avoid saying "Avoid saying "I don't knowI don't know""

Demonstrate willingness and ability to Demonstrate willingness and ability to work in a harmony and with pleasure with work in a harmony and with pleasure with the othersthe others

21

Page 22: How to Pass an Interview for Software Engineer

NegotiationNegotiation If your interview runs well, you will reach If your interview runs well, you will reach

the "the "negotiationnegotiation" part" part

Salary expectations – always have a good Salary expectations – always have a good answeranswer

Eventual start dateEventual start date

Other terms of the contract (bonuses, Other terms of the contract (bonuses, holidays, working time, etc.)holidays, working time, etc.)

Companies don't like "money-driven" Companies don't like "money-driven" employeesemployees

You should demonstrate motivation to work You should demonstrate motivation to work hard for long-term and continuously improve hard for long-term and continuously improve your skillsyour skills 22

Page 23: How to Pass an Interview for Software Engineer

Your QuestionsYour Questions Finally you will have a chance to Finally you will have a chance to ask ask

your questionsyour questions Having no questions is not goodHaving no questions is not good

Demonstrate interest to start workingDemonstrate interest to start working

Ask about your first project, about the Ask about your first project, about the development process, about your team, development process, about your team, etc.etc.

Never ask about salary raises, bonuses, Never ask about salary raises, bonuses, parking space, fitness and sport facilities, parking space, fitness and sport facilities, etc.etc.

You should demonstrate motivation to You should demonstrate motivation to work hard, not claimswork hard, not claims

23

Page 24: How to Pass an Interview for Software Engineer

Typical Interview Typical Interview Questions and Questions and

AnswersAnswers(for Junior Software Development (for Junior Software Development Positions)Positions)

Page 25: How to Pass an Interview for Software Engineer

Typical Interview Typical Interview QuestionsQuestions

At a technical interview you will be At a technical interview you will be

given questions from given questions from several several

categoriescategories::

General questionsGeneral questions

Technical questionsTechnical questions

Abstract thinking questionsAbstract thinking questions

Personal character questionsPersonal character questions

The "salary" questionThe "salary" question25

Page 26: How to Pass an Interview for Software Engineer

General QuestionsGeneral QuestionsExperience, Education, Future PlansExperience, Education, Future Plans

Page 27: How to Pass an Interview for Software Engineer

Typical General Typical General QuestionsQuestions

27

Where are you from?Where are you from?

What High school have you graduated?What High school have you graduated?

What University have you graduated / studying What University have you graduated / studying now?now?When you started programming?When you started programming?

How many books about computer programming you How many books about computer programming you have read? What was the name of the last?have read? What was the name of the last?

Do you believe that computer programming is your Do you believe that computer programming is your passion and your future job?passion and your future job?

Can you work on full time (8 hours/day)? If not Can you work on full time (8 hours/day)? If not how many hours a week you can work?how many hours a week you can work?

Page 28: How to Pass an Interview for Software Engineer

Typical General Typical General Questions (2)Questions (2)

28

What are your English skills? Can you freely talk What are your English skills? Can you freely talk on the telephone in English?on the telephone in English?

What are your plans for the next few years? How What are your plans for the next few years? How you see your career after 2 or 3 years?you see your career after 2 or 3 years?

How you inform yourself about new technologies? How you inform yourself about new technologies? Do you read news or blogs? Which sites?Do you read news or blogs? Which sites?

Shall you study more after you graduate your Shall you study more after you graduate your current University degree? Maybe abroad?current University degree? Maybe abroad?

How will you describe your typical work day?How will you describe your typical work day?

What do you know about our company?What do you know about our company?

Page 29: How to Pass an Interview for Software Engineer

Technical QuestionsTechnical QuestionsAlgorithms, Databases, Web Algorithms, Databases, Web

Technologies, Etc.Technologies, Etc.

Page 30: How to Pass an Interview for Software Engineer

Typical Technical Typical Technical QuestionsQuestions

Algorithms and data structures:Algorithms and data structures:

30

Explain what is a hash-table and how it works.Explain what is a hash-table and how it works.

Explain how the QuickSort works. How fast is it?Explain how the QuickSort works. How fast is it?

You are given a set of words. Find all their You are given a set of words. Find all their subsets.subsets.

Can you draw a picture of a linked list?Can you draw a picture of a linked list?

You have to implement a Web spider which runs on You have to implement a Web spider which runs on a cluster of machines. How you will design it?a cluster of machines. How you will design it?

Explain how polymoprhism works in the object-Explain how polymoprhism works in the object-oriented programming (OOP)?oriented programming (OOP)?

What is typical for the Strings in C# / Java / What is typical for the Strings in C# / Java / PHP?PHP?

Page 31: How to Pass an Interview for Software Engineer

Typical Technical Typical Technical Questions (2)Questions (2)

Databases and SQL:Databases and SQL:

31

What is database constraint? How constraints What is database constraint? How constraints work?work?You have a table consisting of: EmployeeId (PK), You have a table consisting of: EmployeeId (PK), Name, Salary, ManagerId (FK), DeptId (FK).Name, Salary, ManagerId (FK), DeptId (FK).

Write a SQL query to find the name, salary and Write a SQL query to find the name, salary and department of the employee that has minimal department of the employee that has minimal salary in his/her department. If many employees salary in his/her department. If many employees take the minimal salary, display just one of take the minimal salary, display just one of them.them.

How we implement one-to-many and many-to-many How we implement one-to-many and many-to-many relationship in relational databases?relationship in relational databases?

When we use "1 x 1" relationships in database When we use "1 x 1" relationships in database modelling? Give an example.modelling? Give an example.

Page 32: How to Pass an Interview for Software Engineer

Typical Technical Typical Technical Questions (3)Questions (3)

XML questions:XML questions:

Multithreading questions:Multithreading questions:

32

How we execute multiple tasks in the same time in How we execute multiple tasks in the same time in C#?C#?

What is the difference between DOM, SAX and StAX What is the difference between DOM, SAX and StAX parsers for XML? How you use DOM in C# / Java / parsers for XML? How you use DOM in C# / Java / PHP?PHP?What is XPath and how it works? Give an example. What is XPath and how it works? Give an example. How you use Xpath in C# / Java / PHP?How you use Xpath in C# / Java / PHP?

You have to download 500 files from Internet but You have to download 500 files from Internet but your network bandwidth is not too wide to handle your network bandwidth is not too wide to handle 500 downloads simultaneously so you want to 500 downloads simultaneously so you want to download the files by 10 at a time. How you download the files by 10 at a time. How you implement this?implement this?

Page 33: How to Pass an Interview for Software Engineer

Typical Technical Typical Technical Questions (4)Questions (4)

Web development questions (front-Web development questions (front-end):end):

33

Explain the meaning of the following CSS rule:Explain the meaning of the following CSS rule:

.newscolumn {.newscolumn { width: 400px;width: 400px; float: left;float: left; clear: both;clear: both;}}

Explain the difference between HTTP GET and POST Explain the difference between HTTP GET and POST requests.requests.

We have a <div> element in a HTML page which is We have a <div> element in a HTML page which is visible. How to hide the <div> with JavaScript?visible. How to hide the <div> with JavaScript?

How to do the above in jQuery?How to do the above in jQuery?

Page 34: How to Pass an Interview for Software Engineer

Typical Technical Typical Technical Questions (5)Questions (5)

Web development questions Web development questions (server side):(server side):

34

What is custom tag / user control in a ASP.NET / What is custom tag / user control in a ASP.NET / Java based Web application? How it works? When we Java based Web application? How it works? When we need this technology?need this technology?

How you could implement a shopping cart in How you could implement a shopping cart in ASP.NET / Java / PHP?ASP.NET / Java / PHP?

What is AJAX and how it works? How we use AJAX in What is AJAX and how it works? How we use AJAX in ASP.NET / jQuery / PHP / Java based Web ASP.NET / jQuery / PHP / Java based Web application?application?We have a list of products that have name, price We have a list of products that have name, price and photo. We need to display them in a Web and photo. We need to display them in a Web application. Describe the steps to do this in application. Describe the steps to do this in ASP.NET / Java / PHP.ASP.NET / Java / PHP.How we implement URL rewriting in ASP.NET / Java How we implement URL rewriting in ASP.NET / Java Web application / PHP?Web application / PHP?

Page 35: How to Pass an Interview for Software Engineer

Typical Technical Typical Technical Questions (6)Questions (6)

Software engineering questions:Software engineering questions:

35

What is source control repository? Which source What is source control repository? Which source control software you have used and when?control software you have used and when?

What is software requirements specification What is software requirements specification (SRS)? What is the typical structure of such (SRS)? What is the typical structure of such document?document?

What is unit testing? When we need it? What unit What is unit testing? When we need it? What unit testting frameworks you have used?testting frameworks you have used?

How the continous integration works?How the continous integration works?

Explain what is agile development. What is SCRUM? Explain what is agile development. What is SCRUM? Explain the most important practices of SCRUM.Explain the most important practices of SCRUM.

Page 36: How to Pass an Interview for Software Engineer

Abstract Thinking Abstract Thinking QuestionsQuestions

Puzzles, Unsolvable Problems, Etc.Puzzles, Unsolvable Problems, Etc.

Page 37: How to Pass an Interview for Software Engineer

Abstract Thinking Abstract Thinking QuestionsQuestions

Questions in the category "Questions in the category "abstract abstract thinkingthinking" aim to check the level of " aim to check the level of alertness, ability to think and to alertness, ability to think and to attack unsolvable problemsattack unsolvable problems In some cases there is no correct In some cases there is no correct

answer and your task is to answer and your task is to demonstrate your thinkingdemonstrate your thinking

37

Estimate how many gas stations exist in Sofia.Estimate how many gas stations exist in Sofia.

Do you see the tree outside on the street? Can Do you see the tree outside on the street? Can you calculate how many leaves it has?you calculate how many leaves it has?

You have 8 balls. One of them is defective and You have 8 balls. One of them is defective and weighs less than others. You have a balance to weighs less than others. You have a balance to measure balls against each other. In 2 weighings measure balls against each other. In 2 weighings how do you find the defective one?how do you find the defective one?

Page 38: How to Pass an Interview for Software Engineer

Personal Character Personal Character QuestionsQuestions

Your Best and Worst Qualities, Ability Your Best and Worst Qualities, Ability to Work in a Team, How do you Handle to Work in a Team, How do you Handle

a Stressful Situation?a Stressful Situation?

Page 39: How to Pass an Interview for Software Engineer

Typical Personal Typical Personal CharacterCharacter

Assessment QuestionsAssessment Questions Questions to assess your personal Questions to assess your personal character:character:

39

Describe the ideal software company from your Describe the ideal software company from your dreams.dreams.Can you describe an ideal collague / team member?Can you describe an ideal collague / team member?

What are your 5 best personal character What are your 5 best personal character qualities?qualities?What are your 5 worst personal character What are your 5 worst personal character qualities?qualities?What kind of sport do you practice? At which What kind of sport do you practice? At which position do you play?position do you play?

What shall you do if you have a deadline until What shall you do if you have a deadline until tomorrow and your project is not completed?tomorrow and your project is not completed?

How do you resolve a conflict with a colleague?How do you resolve a conflict with a colleague?

Page 40: How to Pass an Interview for Software Engineer

Typical Personal Typical Personal CharacterCharacter

Assessment Questions Assessment Questions (2)(2) Questions to assess your personal Questions to assess your personal

character:character:

40

Do you prefer to work independently or in a team?Do you prefer to work independently or in a team?

Give some examples of a team work from your Give some examples of a team work from your experience.experience.

Describe a difficult work situation / project you Describe a difficult work situation / project you have experienced and how you overcame it.have experienced and how you overcame it.

What does motivate you and what does not?What does motivate you and what does not?

How do you handle stress and pressure?How do you handle stress and pressure?

How you can evaluate your results. What is How you can evaluate your results. What is success?success?

Page 41: How to Pass an Interview for Software Engineer

Typical Personal Typical Personal CharacterCharacter

Assessment Questions Assessment Questions (3)(3) Questions to assess your personal Questions to assess your personal

character:character:

41

What were your responsibilities at your last What were your responsibilities at your last job / last project?job / last project?

What major challenges and problems did you face? What major challenges and problems did you face? How did you handle them?How did you handle them?

Why are you leaving your current job?Why are you leaving your current job?

What interests you about this job?What interests you about this job?

What challenges are you looking for in this What challenges are you looking for in this position?position?

Why we need to hire you, not someone else?Why we need to hire you, not someone else?

Page 42: How to Pass an Interview for Software Engineer

The "Salary" QuestionThe "Salary" QuestionHow to Answer in the Best Way?How to Answer in the Best Way?

Page 43: How to Pass an Interview for Software Engineer

The "Salary" QuestionThe "Salary" Question The typical salary question is like The typical salary question is like

this?this?

Your answer should demonstrate that Your answer should demonstrate that your work is more important than the your work is more important than the paymentpayment

Examples of possible answers:Examples of possible answers:

43

What salary do you expect?What salary do you expect?

I don't care about the payment. I want to work at I don't care about the payment. I want to work at the company for long-term and I believe that if my the company for long-term and I believe that if my results are good I will be paid accordingly.results are good I will be paid accordingly.

I understand that I have to learn a lot. Thus now I I understand that I have to learn a lot. Thus now I think I could start with a salary of XXX leva and think I could start with a salary of XXX leva and in a year I expect to become more skillful and get in a year I expect to become more skillful and get a pay rise of YYY (or be fired if I don't meet your a pay rise of YYY (or be fired if I don't meet your expectations).expectations).

Page 44: How to Pass an Interview for Software Engineer

The "Salary" Question The "Salary" Question (2)(2)

You always talk about a You always talk about a net salary net salary (after all (after all the taxes are deducted) for a full-time job (8 the taxes are deducted) for a full-time job (8 hours)hours)

Some candidates will say:Some candidates will say:

Some companies have a policy for this case:Some companies have a policy for this case:

Most companies will force you to say a Most companies will force you to say a certain number and you should say certain number and you should say something – something – be readybe ready!!

44

I don't know what salary to expect. Please make an I don't know what salary to expect. Please make an offer for me.offer for me.

You will be a junior developer (trainee). For this You will be a junior developer (trainee). For this position our salary range is from XXX to YYY leva.position our salary range is from XXX to YYY leva.

Page 45: How to Pass an Interview for Software Engineer

The "Salary" Question The "Salary" Question (3)(3)

Typical net salary ranges (Sofia, January Typical net salary ranges (Sofia, January 20122012) for full-time software engineer jobs:) for full-time software engineer jobs: Junior .NET / Java developer – Junior .NET / Java developer – 900900--13001300 leva leva

Junior PHP / Web site developer – Junior PHP / Web site developer – 600600--900900 levaleva

Junior QA engineer – Junior QA engineer – 600600--900900 leva leva

Junior support officer – Junior support officer – 400400--700700 leva leva

Junior system administrator – Junior system administrator – 600600--900900 leva leva After a After a 1-1.51-1.5 years you could expect twice years you could expect twice Senior developer (4-5 years) – Senior developer (4-5 years) – 2000-30002000-3000

levaleva45

Page 46: How to Pass an Interview for Software Engineer

Typical Mistakes Typical Mistakes and How to Avoid and How to Avoid

Them?Them?One Wrong Word Could Spoil the One Wrong Word Could Spoil the Deal!Deal!

Page 47: How to Pass an Interview for Software Engineer

Typical MistakesTypical Mistakes Never say bad words Never say bad words about former about former

employers, colleagues, etc. (don’t employers, colleagues, etc. (don’t hate anyone)hate anyone) Always Always be positivebe positive!!

Typical "catch-you" questionTypical "catch-you" question

Possible nice answer:Possible nice answer:

47

Did you have colleagues or classmates who you Did you have colleagues or classmates who you can't stand? What were they? Why you can't stand can't stand? What were they? Why you can't stand them?them?

Generally I can stand anyone. I don't like too Generally I can stand anyone. I don't like too much XXX kind of people but if I need to work in a much XXX kind of people but if I need to work in a team with such colleagues I will defenitely find a team with such colleagues I will defenitely find a way.way.

Page 48: How to Pass an Interview for Software Engineer

Typical MistakesTypical Mistakes Generally all kinds of Generally all kinds of inadequate claims or inadequate claims or

pretentions are evilpretentions are evil Requesting too high salary, too high Requesting too high salary, too high

position, too short work-time (less than 8 position, too short work-time (less than 8 hours / day)hours / day)

Being negative about something or Being negative about something or someonesomeone Be positive, be successful, be skillful, be Be positive, be successful, be skillful, be

professional, don't blame somebody else!professional, don't blame somebody else! You should demonstrate high motivation You should demonstrate high motivation

to work hard for long-termto work hard for long-term Anything confirming the opposite is harmfulAnything confirming the opposite is harmful

48

Page 49: How to Pass an Interview for Software Engineer

Typical Mistakes (2)Typical Mistakes (2) Requesting too high salaryRequesting too high salary

Requesting too high position for a Requesting too high position for a startstart

You should always show You should always show willingness to work for a long-termwillingness to work for a long-term

49

This is my first job and I want to start with 1800 This is my first job and I want to start with 1800 leva net salary because I am very smart and leva net salary because I am very smart and experienced.experienced.

I will work in your company for few months and I will work in your company for few months and will go abroad for a better job after I get some will go abroad for a better job after I get some experience.experience.

I want to start a job at some management position I want to start a job at some management position because I have graduated University in UK.because I have graduated University in UK.

Page 50: How to Pass an Interview for Software Engineer

Typical Mistakes (3)Typical Mistakes (3) Putting university / exams as your Putting university / exams as your

first priorityfirst priority

You could say the same in a better You could say the same in a better wayway

50

I want to start working but my University I want to start working but my University education is my first priority. Thus I will be education is my first priority. Thus I will be unable to come at work each Tuesday and each unable to come at work each Tuesday and each Wednesday and when I have tests, exams and Wednesday and when I have tests, exams and projects.projects.

My first priority is my job. In the same time I My first priority is my job. In the same time I have some commitments in the University but I am have some commitments in the University but I am flexible to do my best to move them out of working flexible to do my best to move them out of working time. Sometimes (e.g. once monthly) I will have to time. Sometimes (e.g. once monthly) I will have to take tests / exams in the University and I hope we take tests / exams in the University and I hope we could find a way to avoid harmful consequences for could find a way to avoid harmful consequences for my projects at work due to my eventual absence. Do my projects at work due to my eventual absence. Do you think this would be possible?you think this would be possible?

Page 51: How to Pass an Interview for Software Engineer

Other HintsOther HintsDo not Come Late, Usual Do not Come Late, Usual

Dressing, …Dressing, …

Page 52: How to Pass an Interview for Software Engineer

Other HintsOther Hints Be sure to Be sure to come exactly at the appointed come exactly at the appointed

timetime Not earlier, not later!Not earlier, not later!

Eventually come Eventually come 55 minutes ahead minutes ahead Dressing codeDressing code

Be sure to come with Be sure to come with clean dresses clean dresses and and shoesshoes

Dress yourself in your everyday styleDress yourself in your everyday style

Software engineers do not need to wear a Software engineers do not need to wear a suitsuit

If you are nervous, train for the interviewIf you are nervous, train for the interview52

Page 53: How to Pass an Interview for Software Engineer

Recommended BooksRecommended Books

How to Answer Hard Interview How to Answer Hard Interview Questions, Charlie Gibbs, 2nd Questions, Charlie Gibbs, 2nd Revised edition, 2009, ISBN: Revised edition, 2009, ISBN: 1845283732 1845283732 http://www.amazon.com/dp/1845283732

Programming Interviews Programming Interviews Exposed: Secrets to Landing Exposed: Secrets to Landing Your Next Job , John Mongan, Your Next Job , John Mongan, Wrox, 2006, ISBN: Wrox, 2006, ISBN: 09357134250935713425 http://www.amazon.com/dp/0935713425

53

Page 54: How to Pass an Interview for Software Engineer

HomeworkHomework

1.1. Read the recommended IT interviews bookRead the recommended IT interviews book

Find and read IT interview web sites in Find and read IT interview web sites in InternetInternet

2.2. Practice for a sample interview with Practice for a sample interview with friendsfriends

Imagine you have applied for a certain job Imagine you have applied for a certain job position in certain companyposition in certain company

Prepare for the interview following our Prepare for the interview following our guidelinesguidelines

Try to play the "interviewer" roleTry to play the "interviewer" role

Try to play the "candidate" roleTry to play the "candidate" role54

Page 55: How to Pass an Interview for Software Engineer

Homework (2)Homework (2)

3.3. Try to go to few interviews (just for Try to go to few interviews (just for practicing)practicing)

Find in Internet a job opening related to Find in Internet a job opening related to you skills and interests, prepare and you skills and interests, prepare and submit a job applicationsubmit a job application

Choose a small company where you don't Choose a small company where you don't want really to work (some day)want really to work (some day)

Never say to the interviewer you are just Never say to the interviewer you are just practicing, just for funpracticing, just for fun

Practicing interview will reduce your stress, Practicing interview will reduce your stress, will increase your self-confidence and gain will increase your self-confidence and gain experienceexperience 55

Page 56: How to Pass an Interview for Software Engineer

How to Pass an How to Pass an InterviewInterview

for Software Engineer?for Software Engineer?

Questions?Questions?

Page 57: How to Pass an Interview for Software Engineer

Thank You!Thank You!