Table of contents
TogglePreface
Before writing this software engineer interview tips, first of all, I would like to express my special thanks to KyleMo. that he is willing to let me refer to the structure of his article.
2023 Web Full-Stack & FE Engineer Interview Review. This is a very good interview article and I recommend you to read it carefully.
Background
- My previous job was a year and eight months as a full time engineer, the first half of the year was for an app team developing IOS and Android apps using Flutter, and the second year was spent developing using React & ASP.Net.
- He started working on projects when he was in college, and after graduation, he joined a new team as a front-end engineer for a period of time.
- Front-end skills : back-end skills 7 : 3
- At the time of the interview, I was preparing for the interview as a bare resignation.
- Leetcode nearly 300 questions, more than half of them Medium
- Graduated from the Department of Electrical Engineering, National Cheng Kung University
Goal
- Join a multinational team and communicate in English.
- Flexible and remote work (although I personally like the idea of working in a physical location)
Software Engineer Interview at Yahoo!
Yahoo! is a Software Engineer, which is a front-end oriented software engineer. Besides front-end development, he/she also needs to be in touch with back-end development and project management.
When I saw the vacancy on LinkedIn, I asked my friend to put me forward for the position. I also learnt from my friend that the position was in a multinational team, and that English was required for daily meetings, and that there might be a time difference.
Interview Process
0th HR Phone Call → 1st Online Interview (2 hr) → 2nd Onsite Interview (4.5 hr) → HR notification of passing the interview → Taiwan verbal Offer → U.S. Headquarter physical Offer
The overall experience of the interview was very good, and HR would explain in detail what parts of the interview would be emphasised on before the interview.
Therefore, I prepared myself based on the interview tips of Silicon Valley companies, and brushed up on the articles of Acreage, so that I would not be so scattered in the direction of preparation.
Each barrier is nearly a month apart, and before entering the next barrier, HR will ask again about the current wishes and whether there are other interviews running, which can really feel HR's dedication and professionalism in recruitment.
0th D + 14
I spoke to HR and generally understood that the vacancy was for a multinational team using native programming languages.
Subsequent levels will focus on English, native code, system design, data structure algorithms, and professional knowledge.
D + 33
There were three interviewers who asked me about my past experience, front-end and back-end knowledge, information security, and browser knowledge.
Part I:Experience
The experience of the CV is the subject of a detailed enquiry, for example:
Why did you choose Flutter over React Native?
Why choose to use Tailwind What are the pros and cons?
Why do you use MonoRepo and what are the difficulties?
The interviewer will also ask about various technologies and will go into great depths in relation to the work experience, so it is advisable to analyse the strengths and weaknesses of each technology in the course of the back-and-forth.
I once heard a saying that I found useful: "If you can't think of more than three solutions to a problem, it means you don't know what the problem is." Therefore, for any experience or technique that is listed on my CV, I take time to refresh my knowledge and rethink the context in which I used it and whether there are any other solutions.
Here are the knowledge listed on the CV which will be added later, e.g. Kubernetes, Docker, TypeScript, PHP, Flutter, GCP....
Part II: Domain Knowledge
Go ahead and do the Q&A on the front and back end of the knowledge.
For those who are interested in JavaScript Async Await, please refer to this article.
For those who are interested in JavaScript Higher Order Function, please refer to this article.
D + 64
There are four interviewers in total, divided into several parts, including English interview, experience questioning, and programme practice.
Part I: English Self-Introduction & Behavioural Interviews
The interview took about half an hour and included an introduction of yourself and your experiences in English.
However, I have been practising my English all along, so I didn't have to prepare for this interview specifically in English.
Part II: Resume Insight
This time, we asked more in-depth questions about resumes, including the underlying principles of Flutter, and whether we've ever dealt with incompatibility between Android devices and packages.
Part III: HTML, CSS layout
I used CodePen to do the Onsite Coding Interview, but there were a few hiccups.
It just so happened that at that time, writing any HTML code would automatically generate redundant code, and it took more than ten minutes to solve this bug, so I finally had to open the VS Code I was used to and finish the project.
The most difficult part for me was the on-the-spot reaction, because I had used CodePen the day before to practice my handwriting, but I didn't expect that I would encounter a bug that would make me unable to write the programme, haha.
Part IV: Data Structure and Algorithms
I have a habit of brushing up on problems, usually using Python, but for simpler problems that can be written intuitively, I use JavaScript.
There are a total of three questions, personal experience is a question Easy two questions Medium, the first warm-up question is a classic question, this side of the direct and fast use of JavaScript to give two solutions.
I've forgotten the second and third questions, but they both used recursive functions. The third question was also a backtracking question as soon as I saw it, and because I was more familiar with Python syntax when I was brushing up on the questions, I also asked the interviewer if it was possible to use Python, and I ended up finishing the second and third questions in advance.
Part V: JavaScript Dom Operations
This was one of the levels that I spent a lot of time preparing for because I knew that the team was using Vanilla JavaScript (pure JavaScript), so I spent a lot of time going through the front-end interview tips for FAANG, which is also a Vanilla JavaScript test.
Although this level was a bit rushed and the final keyboard control was not implemented, there was communication with the interviewer to explain how to implement the keyboard function and the final bonus points were also implemented.
Part VI: Behaviour Question
The other interviewers went offline first, and the Technical Manager conducted the last part of the interview. I had actually prepared the Behaviour Question separately.
Although many people feel that behavioural interviews only ask some very basic questions, such as: Have you encountered any difficulties at work and how did you solve them?
However, in fact, this type of question can be answered using the STAR approach, but also let the interviewer know whether there is a cross-team, cross-departmental or even a unique interviewer, so I have prepared two or three ways of answering the common questions.
Finally, I talked with the interviewer for thirty minutes, and introduced the company, the team, the technology .... At that time, I personally felt that the atmosphere was pleasant during this part of the interview.
HR notified of passing the interview D + 77
During the interview, I was told that I would be informed of the interview result within one to three weeks. But I was really lucky here, I was told that I passed the interview within a week, and I was also told that after I passed the interview, it would take a week or two to discuss the follow up, including salary, benefits, etc. I was also told that I would be able to get the interview results within a week or two.
Yahoo! Taiwan Oral Offer D + 80
In fact, only a few days after I passed the interview, I got a verbal offer from Yahoo! I think it may be because the approved salary is already in line with the ideal salary, and I don't need to make a Compete Offer, so it's faster.
After getting the verbal offer from the Taiwan company, HR also helped to send it to the U.S. headquarters to run the process, and also told me that it would take nearly a month before I could get the formal offer.
Yahoo! US Headquarters Offer D + 84
It was only four days ago that I was notified again that the offer from the US had been sent to me, so I was really lucky!
Because I myself expect that I will finish the interview at the end of October, sign the Offer in December, and report to work in January next year.
But I didn't expect that the timetable would be advanced by a whole month, and I was offered a formal offer in early November.
Preparation
The way to prepare for the test is to prepare for what is expected to be on the test at the beginning of the day.
It is also recommended to look at how interviews are conducted overseas, and it is highly recommended to communicate back and forth with the interviewer to confirm the requirements before starting to write the programme.
I myself treat programming interviews as workplace scenarios, and the Coding Interview stage as Pair Programming, where you communicate with each other back and forth to make sure the interviewer understands your ideas, and to sort out the process of programming and your thinking.
Although the system design part was not tested in the interview, I am sharing it with you because I spent a lot of time preparing for it.
Data Structure and Algorithm
This is actually what is commonly known as brushing questions, at the time of the interview, there were nearly 300 questions, including: JavaScript 30, Blind 75, Neetcode, SQL questions, but I did pick the more common algorithms and data structure to do practice.
Data Structure
Array & Hashing、Stack、Tree、Tries、Heap、Queue、Graph
Algorithm
Two Pointer、Sliding Window、BInary Search、Backtracking、Dynamic Programming、Greedy
However, to be honest, Dynamic Programming is not easy to prepare for, so most of the time you should focus on the types of questions that are common in big companies.
Special Recommendation
Neetcode、Blind 75、three-acre plot、javaScript-algorithm
For those who need it, here's my Github Leetcode solution. leetcode-solution
We'll still be updating regularly, so feel free to like and favorite it!
Domain Knowledge
Frontend
JavaScript, HTML, CSS, Vue, React, all common and uncommon questions are prepared, I am skilled enough to say that 80% of the questions encountered can be answered directly by reflex, which also includes newer technologies, very low-level technologies, performance optimisation, front-end architecture.
Backend
Python, Node.js, OOP, SQL syntax, this side of the preparation of the way in fact not so in-depth, probably point to the end, after all, really have to prepare for too many things, in addition to database optimisation, API optimisation to read a series of articles.
Mobile
Flutter, React Native, these two are I have another time to study their underlying operation, I have a feeling I will be asked a lot of related questions, so in the preparation for the interview stage, there is a good understanding of their underlying practice, differences, advantages and disadvantages.
Front-end Coding
JavaScipt Dom Manipulation
I have a few additional widgets that use Pure JavaScript implementations, for example: Todo List、Typeahead、Validation Form、Cacluator、Timer、Tic Tac Toe、Infinite Scroll、Drag Drop List。
CSS Layout
Because I was born in the front-end, and often in the cut version, so the cut version of the more troublesome part of the practice, but also practice Flex & Grid.
My own assumption here is that if I complete a page in Flex today, I should also be able to use Grid to complete the cutout and analyse the advantages and disadvantages of two or three different ways of writing it.
JavaScript Implementation
The scope of implementation here is actually very wide, so I have a carpet to implement all the common functions myself.
Curry、Throttle、Debounce、DeepEqual、Memoize、Promise、Flatten、Polyfill、PromiseAll、Promisify、ShallowClone、DeepClone、Apply、Generator。
There's another practice Reduce、Event Loop、Promise、Proto , a large number of programming topics.
Recommended Resources
KyleMo Medium & Front-end Performance Optimisation Tutorial
Yii|Flutter|Cross-Platform Developer
Behavioural Interview
Here I have prepared almost 10 questions on common Silicon Valley Behaviour questions, and I have practiced to answer each question reflexively. I especially recommend you to take a look at One Acre and Three Cents, there are a lot of articles from Silicon Valley Chinese, through their articles, you can really know that there are too many places where you are not enough.
In addition to using the STAR approach for the Behavior Question, I also focused on the Job Description and Yahoo! corporate culture to optimise and correct my answers, so as to avoid spending too much time on unimportant pages.
Recommended Resources
System Design
When I heard about the system design test in the HR Phone Call, I was actually quite nervous, after all, it was an interview that I had never prepared for, so I crawled through a lot of articles and compared many different types of system design articles. I finally chose between ByteByteGo and Grokking Modern System Design Interview. In the end, I used Grokking Modern System Design Interview to prepare for the interview with Repo, a well-known system design article.
System Design Principle
In the beginning, when I was preparing for the system design, I started with the rules to understand what was included:
Availability、Reliability、Scalability、Maintainability、Fault Tolenrance、Back-of-the-envelope Calculations
System Design Components
Then start with breadth and figure out each system component to include:
Domain Name System、Load Balancers、Database、Key-value Store、Content Delivery Network、Sequencer、Monitoring、Cache、Messaging Queue、Pub-sub、Blob Store、Distributed Search
System Design Exercise
Then practice common system designs that are included:
Youtube、Uber、Web Crawler
However, when I really all practice only to find that there are really too many deficiencies, but also good actually in the interview, did not meet the system design barrier, the future should be slowly written into the system design articles. On the one hand, I will make up for my shortcomings, and on the other hand, I will share my skills with you.
Recommended Resources
Grokking Modern System Design Interview
Postscript
I've come to the end of this interview, and I have a lot of people to thank.
I've also asked a lot of people about how to conduct interviews and mock interviews.
I was really lucky that I was asked questions that I had prepared for this interview.
And the subsequent process is really under the auspices of the Goddess of Luck, so I can sign the Offer so smoothly.
Lastly, I would like to advertise that I am running a self-media business. hogan.tech, if you are interested, please follow up!
Currently, all interview-related questions and answers are posted in the Subscriber's Area.
Subscription support is welcome!