how can you become a software engineer in prestigious
TRANSCRIPT
HowcanYouBecomeaSoftwareEngineerinPrestigiousCompanies(USA)?
DonghoonKim,PhD
Assistantprofessor,ComputerScienceArkansasStateUniversity, USA
1
Contents
• ComputerScience§ Job
• Interviewprocess§ Resume§ Apply§ Phoneinterview§ Onsiteinterview§ Offer
• Interviewquestions§ Applicationsoftware,webbasedsoftware§ Systemsoftware
2
Contents
• ComputerScience§ Job
• Interviewprocess§ Resume§ Apply§ Phoneinterview§ Onsiteinterview§ Offer
• Interviewquestions§ Applicationsoftware,webbasedsoftware§ Systemsoftware
4
WorkinginUSAasaSoftwareEngineer
• NocountryboundaryinSiliconValley(USA)§ IndiaoMorethan50%
§ ChinaoGrowing
§ KoreaoPotential
• IsProgrammingKnowledgeRelatedToAge?§ Relationshipbetweenageandprogrammingskills?
5
References
• Crackingthecodinginterview§ https://www.careercup.com§ Interviewquestions,salary,resumetips
• Glassdoor§ Interviewquestions,salary,companyinformation§ https://www.glassdoor.com/index.htm
• LinkedIn§ Careermanagement§ https://www.linkedin.com
• Indeed§ http://www.indeed.com§ Easytoaccessotherresumes
• Monster.com§ https://www.monster.com/
6
ComputerSciencemajor
• Onceyoufinishyourschool(BS,MS)§ Companyasasoftwareengineer§ Government(State,DoD,DoE(Pentagon),etc.)ifyouareUSCitizenorgreencard
§ GoforPhD§ Others(business,etc.)
7
Softwareengineer
• Role§ SoftwareEngineeroDesign,development,testing,maintenance,andevaluation
§ SoftwareDesignEngineerinTestingoWritingtoolsandautomation
§ SoftwareTestEngineer(STE)o Limitedprogrammingexperience
• StartingsalariesinMay2016oUndergrads:averaging$72,419(median$71,250)oMSgraduates:averaging$102,249(median$110,000)
Ref:https://www.csc.ncsu.edu/future-students/
8
Interviewprocess
Searchajob
Submit aresume
HRscreening
PhoneInterview
OnsiteInterview
Offerletter Accept
Work!
9
InterviewprocessSearcha
job
Submit aresume
HRscreening
PhoneInterview
OnsiteInterview
Offerletter Accept
Work!
10
• Totalprocessingtime:2monthsto6months§ Internationalstudentsneed1or2monthsmoreforworkingpermission (e.g.,H-1BVISA)
• Youneedtoapply6monthsbefore§ IfyouplantoworkinDecember2017,youshouldbegintoapplyaroundJune
§ But,companieshavetheirownhiringperiodorurgentneeds• Thismeansthatyouhavetoprepare(complete)yourresumeandinterviewstudybeforeJune
Differentworkingculture:Koreav.s.USA
Korea(E.g.,Samsung) USA(E.g.,IBM,SAS)• Hiringas agroup• EnteringExams• Workasagroup• Assignaprojectfromupperlevel
• GroupactivitypTutoringsystem• Working8amto9pmpWorkatofficepNoweekendguarantee• Almostnolayoff
• Hiring asanindividual• Nospecificexam• Workasateam• Eachteamhasanindividualprojectp Proposeaproject• Individualactivityp Notutoringsystem• Working8amto5pmp Workathomep MondaytoFriday• Layoff
11
Searchajob(1/4)
• Visitallcompanywebsitesyouwanttowork§ Submit(complete)yourresumeforeachposition§ Eachcompanyhasdifferentformatandrequirements
12
Whichcompany?
• https://www.careercup.com/categories
• Location(majorcities):§ WA(Seattle),CA(SiliconValley,SanDiego),OR,TX(Austin,Dallas),NC(RTP,Raleigh),MA(Boston),NY(NYC,NewJersey),FL
13
CompanyIapplied
14
• Morethan30companiesand300positions§ Ipreferredsystemcompany
• Ihadphoneinterviewsinthesecompanies
Searchajob(3/4)
• Readjobdescriptions:Google§ ResponsibilitiesoWriteserver-sidecodeforweb-based…
§ QualificationsoBSdegreeinComputerScienceo Experienceworkingwithtwoormore:– Webapplicationdevelopment,UNIX/Linuxenvironments
§ PreferredqualificationsoMaster’s,PhDdegree,futureeducation
16
Searchajob:maincomponents(4/4)
• Readjobdescriptions.Example,forgoogle§ ResponsibilitiesoWriteserver-sidecodeforweb-based…
§ QualificationsoBSdegreeinComputerScienceo Experienceworkingwithtwoormore:– Webapplicationdevelopment,UNIX/Linuxenvironments
§ PreferredqualificationsoMaster’s,PhDdegree,furthereducationo Java,C/C++,C#,Python
19
Submityourresume(1/4)
• Comparethejobdescriptionwithyourresume• Update(modify)yourresumebasedon
§ Jobdescription§ Keyword§Minimumrequirement§ Preferredqualification
20
Submityourresume(2/4)
• Whatisagoodresume?1. Onepageresumeortwo2. NoObjective3. UseaResumeTemplatewith
columns4. UseTables5. ShortBullets6. Accomplishmentoriented7. Qualify8. GPAifit’satleast3.0orhigher9. Projects10. Additionalexperiences11. LanguagesandSkills12. Whatdidyounotinclude?
21
Reference:https://www.careercup.com/resume
Submityourresume(3/4)
• Youdonotneedtoaddallrequirements• Eachpersonmayhavedifferentstrongpoints
• Howdoyouknowifyourresumeisgood?§ IfyouarecontactedbyHRyouapplied§ ItmaynotbeeasytomakeagoodresumeoAlthoughyourresumelooksgood,youmaynotknowuntilyouapply
oAlthoughyouhavegoodskills,HRmaynotrecognizehowgoodyouare
§ Yourresumeshouldcontainyourstrongpoints
22
Submityourresume(4/4)
• Youshouldupdateyourresumewheneveryouhavesomethingtoupdate§ Jobdescription§ Keyword§ Personalinformation§ Projectachievement§ Award§ etc.
23
HRscreening
• HRscreensresume§ Thecompetitionrateisreallyhigho SelectONE outofseveralhundred(morethan300to1)
• OnceHRselectsyourresume,HRsendsyourresumetoahiringmanager
• Ifthehiringmanagerlikesyourresume,thehiringmanagerrequestaphoneinterview
• HighchancetopassyourresumefromHR§Matchkeywordsbasedonjobdescription§ ImpressivepointsoGoodschooloGoodGPA(above3.7)oProjectexperience,Workexperienceinknowncompanyo InternalReferral
24
PhoneInterview(1/3)
• EmailfromHR(examplefromMicrosoft)§ Scheduleyourphoneinterviewschedule§Willreceiveaconfirmationemail
25
Phoneinterview(3/3)
• Overthephoneorskype• 30minsto1hour• Interviewquestions
§ Algorithm,OS,Network§ Codingquestionviaonlinetexteditor
27
OnsiteInterview(2/2)• 4hourstofulldays(6hours)• OnetooneoronetoMany(rarely)• Meetmorethan4people
§ HRo Introductionaboutinterview
§ Hiringmanagero Culturefit,Priorexperienceo Characteristics,Personality– Doyoulikeworkaloneortogether?
– Whatisyourcareerplan?» 1yeargoaland5yearsgoal
§ Softwareengineers(2to3)o Codingskills,analyticalabilityo Mainly,technicalquestions
29
TheofferandBeyond
• Offerdeadlinesandextensions§ Deadlineareonetofourweeks
• DeclininganOffer§ Declininganoffermatters§ Thisisasmallworld;wemaymeetagain.
• FinancialPackage§ Negotiatesalary§ Signingbonus,relocation,Stockoptions§ Costoflivingdifference
• CareerDevelopment§ Howgooddoesthecompany’snameonmyresume?§ HowmuchcanIlearn?§Whatisthepromotionplan?§ etc.
31
Ifnooffer
• Somecompanieshavearuleforthosewhoarerejected§ Cannotapplyin6months§ Applyafter6monthlater(e.g.,Google,Microsoft)
• Askwhenyoucanre-apply• DoNOTgiveuphope!
• Forme,§ Ihaveappliedmorethan300positions§ Spentaboutfull8monthsonlyforinterview
32
Phoneandonsiteinterview
PhoneInterview OnsiteInterview• 30 minsto1hour
• OnetoOneinterview§ Overthephoneorskype
• Interviewquestions§ Fundamentalquestions§ Codingquestionsviatext
editor
• Halfdays(4hours)tofulldays(6hours)
• One toOneorOnetoMany§ Morethan4people
• Interviewquestions§ Fundamentalquestions§ Discussion§ Codingonthewhite
board
33
Note:BothInterviewquestionsarealmost same,butdetails
Howtoprepareinterviewquestions
• Non-technicalquestions§WithHRandHiringmanageroCulturefit,personalityoPriorworkingorprojectexperiences– Theyareaskingquestionsbasedonyourresume
• Technicalquestions§Withsoftwareengineers(technicallead)o Theyareverysmartandexpertsintheirdomain.oHowever,wemayhavethesamelevel(fundamental)knowledgeintermsoftechnicalquestions
34
Beprepared!How?
Non-technicalquestions• HR
§ Whencanyoubegintowork?§ Whendoyougraduate?§ Canyourelocate?§ Ifyouareaninternationalstudent,theyaskaboutyourvisastatus
• Hiringmanager§ Whatismydreamjobafterfinishingyourschool?§ Whatisyourplanfornext5yearsand10years?§ Whatdoyouknowaboutmycompany?o NetAppo WhydoyouwanttoworkatNetApp?
§ Whatdidyoudoatschool?o Projectexperienceorresearchexperienceo Mostofthequestionsarebasedonyourresume
35
Technicalquestions
• Types§ Datastructures(Linkedlist,Tree,Array, String)§ Algorithmandconcepts(bitmanipulation,sorting,searching,OOP)
§ OS(criticalsection,deadlock,semaphore,mutex)§ Network(TCPvs.UDP)§ Programminglanguages(C++,Java,etc)o virtualfunction,synchronized
§ Others(difficult)oDesignpattern,Dynamic programming,etc
36
Technicalquestions
• Technicalquestions typesarealittledifferent:§ Dedicatedsoftwarecompany(Microsoft,Google,Facebook,BloombergLP,etc)oAlgorithm,designpattern
§ Dedicatedsystemsoftwarecompany(Amazon,Qualcomm,Intel,NetApp,EMC,etc)oOS,Network
39
Technicalquestions
• Alarm.com§ Java:whatisthedifferencebetweeninterfaceandabstract?§Whatisthesingletonpattern?§WhatisthedifferenceofC++,C#,andJava?
• Intel(parallelteam)§ Intelarchitecture§WhatdoyouknowaboutCachecoherence?§Whatisvirtualfunctionandtemplate?
• Amazon§Whatistheobject-orientedprogramminglanguage?§Whatisinterfaceandabstract?
• NetApp§Whatisthedifferencethreadandprocess?
40
Technicalquestions
• Microsoft§ Singletonpattern§ Howdoyoufindacircularinalinkedlist?§Whatisvolatilevariable?
• NetApp§ HowdoescacheworkinCPU?§Whatisset,map,array,linkedlist?§Whatislockandmutex lock,read/writelock?§Whatisthroughputandlatency?
• EMC§ staticvariable§ OS:mutex,semaphore,lock,unlock§WhatisMemoryleakandfunctionpointer?§ Pointerquestions
41
Programmingquestions
• [Amazon]Pleasewriteafunctionthattakesinputfromaparagraphoftextandoutputsthenumberofoccurrencesofeachwordintheparagraph.
• [NetApp]find“aps”inagiveninput§ stringS=“netappnetappnetapp...................”
• [Datami]§ Givensandtarenullterminatedcharacterarrays,whatdoesthefollowingdo?
while((*s++=*t++)!='\0');§ Implementafunctionthattakesintwointegersandoutputsthenumberofbitsthatarethesameintheirbinaryrepresentations.Usebitoperatorswheneverpossible.
42
Programmingquestions
• [JuniperNetworks]WriteaprogramtocheckifthesystemusesBigendianorlittleEndian
• [Amazon]WriteafunctiontogenerateFibonaccinumber
43
Howtoresolveprogrammingquestions
• Understandquestions§ asktoyourinterviewerifyoudonotfullyunderstand§ Discusswithyourinterviewer§ Addcomments(e.g.,startwith//comparetwonumbers)
• Programmingbody:§ Input(whatisinputparameters?)§ Errorcheckingroutineforinvalidinputs§ Body(mainalgorithm)§ Return(output)
• Create“testcases”§ Invalidinput§ Extremecase§ Validinput
44
Technicalquestions:usefullinks
• RecentInterviewquestions§ https://www.careercup.com/page
• Codingpractice§ https://codility.com§ https://leetcode.com
45
Planyourcareer
• Graduationisnotanend.But,itisanewstart• Maintain yourGOODGPA• Focus onclassesyouaretakingnow• Setupyourtimelineuntilgraduation;
§ Youmayneedyourdailyandweeklyscheduleaswell§ 7habitsofhighlyeffectivepeople1. Beproactive2. BeginwiththeEndinMind3. PutFirstThingsFirst4. ThinkWin-Win5. SeekFirsttoUnderstand,
thentobeUnderstood6. Synergize7. SharpentheSaw
46
Whatshouldwedonow?
• Focusonclassesyouaretakingnow§ Please,donottrytolearnatop-notchtechnique§ Fundamentalknowledgeismoreimportantthantop-notchtechnique
• MaintainagoodGPA§ E.g.,Undergraduate:>3.5,Graduate:>3.7
• Improveyourprogrammingskills§ Pickoneprogramminglanguageandgointodeep§ Spendalotoftimeonwritingcode
• Donottakemanyclassesifyouareclosetograduate(lastsemester)§ Buildyourgoodresume§ Startagroupstudyo Studytogetherwithlessthan3students
§ Yourfriendsarenotyourcompetitors,butcolleaguesinthefuture
47