Table of Contents
IntroductionJem Young introduces the course, discusses what it will provide for frontend interviews, and talks about solving a variety of ambiguous challenges around interviewing. The differences between different types of engineers and engineering needs within organizations is also discussed.
Challenges Interviewing for Front-End EngineeringJem further explores the challenges of interviewing for a front-end engineering position, including how broad the term ‘front-end’ can be, how broad the technologies are in the field, and even how difficult it can be to just get consensus on anything from building solutions to defining concepts.
Interviewer & Candidate PerspectivesJem explores the perspective of the candidate and of the interviewer, and makes the case that it is important to be aware of both perspectives and to contribute to the bettering of the interviewing process once hired.
Goal Setting & The Interview ProcessJem reframes what failure and success are when interviewing, sets basic goals to enforce this thinking, outlines the interview process and the importance of each step instead of just worrying about the on-site interview.
Before You ApplyJem suggests setting a direction, intention and purpose for a job search, and explains that this process will help gain control over building a career and identifying the types of cultures and challenges that lead to job satisfaction.
About Your ResumeJem gives advice on how a resume should look like to be effective. Specifical emphasis should be put on skills, experience, technology known, education, and accomplishments.
What to Do with No ExperienceJem addresses the problem many people face when starting out in their career: not having experience in the field one is trying to get hired into, and emphasizes the importance of starting wherever you can, getting experience building towards the coveted role, and pairing that with networking.
Evaluating ApplicantsJem explores the the role of the interviewer and points out some common pitfalls encountered when coming up criteria for a role. Some examples include: are they looking for realistic experience given the job, is there bias in the selection process, or does the experience they require match the requirements to actually perform the job?
Initial Call OverviewJem talks about the initial call part of the hiring process, and the common questions every hiring manager will ask. Jem goes over the importance of having solid, concise quick answers to these questions, what they are really getting at and how to prepare for them.
Preparing Interview QuestionsJem again takes the perspective of the interviewer and discusses questions an interviewer should be familiar with. These questions show familiarity with the team, culture, competition, work life, demonstrate an understanding of what it’s like to work in the role being interviewed for so that candidates get a clear understanding if they are a fit for it.
Code Test OverviewJem explains that large companies use code tests, explains what they are looking to uncover with them, and demonstrates how to approach these tests to come across as a desirable developer that communicates and works well with others and thinks holistically about where code fits into a larger context.
Giving & Evaluating a Code TestJem talks through best practices and requirements for an effective code test, how to prepare to help remove bias, and get better reviews on interviewee solutions.
Big-OJem covers the ‘Big-O’ concept, its lesser known notations ‘Big Omega’ and ‘Big Theta’, and introduces a shorthand way to think through Big-O in algorithms.
Phone Screen OverviewJem goes over the phone screen phase of the interviewing process from both the perspective of the interviewee and the interviewer, describes best practices, and gives a list of requirements that lead to a better screening process.
Phone Screen Coding ExerciseStudents are instructed to work on an example phone screen coding challenge.
Phone Screen Coding SolutionJem talks through his solution to the exercise, and what the solution was looking for in terms of understanding the participants knowledge - from pitfalls with performance, to understanding document fragments, rendering and not being dependent on any particular framework.
On-Site PreparationJem talks through important preparation tips for both the interviewer and interviewee. For the interviewee, Jem covers practicing without a computer, and the importance of focusing on process versus individual solutions. For the interviewer Jem drives home the importance of empathy and what helps identify the best candidates for the job being hired for.
On-site Interview & Concept Review
On-Site Interview OverviewFrom both the perspectives of interviewer and interviewee, Jem sets up the on-site interview and the types of questions that are likely involved.
What is a StringJem dives into covering useful information that comes up in on-site interviews, and starts with strings. Jem covers some useful methods, and brings up immutability and how turning a string into an array to manipulate it can help performance.
Reversing a StringAs a warm up question, Jem introduces the challenge of reversing a string using a function while highlighting the importance of talking through the problem as you solve it and general expectations around what you can use to solve problems in interviews.
Built-in MethodsJem covers ways to convert objects into arrays, and commonly used methods to work with arrays and what their expected outputs look like.
On-site Interview Example Questions
Removing Duplicate Strings ExerciseStudents are instructed to create a function that removes duplicate values from a string. Jem answers some questions that clarify what the solution should look like.
Removing Duplicate Strings SolutionJem live codes the solution to the removing duplicate strings exercise while walking through some other possible avenues.
Flattening an Array ExerciseStudents are instructed to flatten an array without using ‘.flat’. Jem offers more information in answering a question and pointing to recursion as a possible means of solving.
Flattening an Array SolutionJem live codes the solution to the array exercise while talking about what knowledge this interview question is meant to uncover.
Timing: Debounce SolutionJem live codes the solution to the Debounce exercise. Jem also brings up how you could also use throttle() to solve similar problems.
Trees ExerciseStudents are instructed to work on the Trees exercise. Jem also talks about trees, domTree how understanding roots, nodes, children and parents can help navigate and iterate through trees.
Trees SolutionJem live codes the solution to the Trees exercise.
Rendering ExerciseStudents are instructed to work on the rendering exercise. Jem also reviews the element RequestAnimationFrame().
Rendering SolutionJem live codes the solution to the rendering exercise and also talks through the math needed to figure out timing, distance and the rate of the moving element.
Promises ExerciseStudents are instructed to work on the promises exercise. Jem also talks about promises, and why it is important to understand them over simply relying on async await.
Promises SolutionJem live codes the solution to the Promises exercise while also setting up and solving a bonus question.