Are you ready to Ace your next Software Architect job interview?
In this video, Keith Galley conducts a mock full-length real-world coding technical interview with Kylie Ying for a software engineering role. They discuss how to use object-oriented programming and dynamic programming to solve questions and get the job you want.
Technical interviews are challenging for software engineers as they require working on solutions, optimizing them, and writing code or pseudo code on the spot. The purpose of these interviews is to assess problem-solving abilities, understanding of data structures and algorithms, coding level, and coding ability. In this mock interview, Keith Galley will ask Kylie Ying questions similar to those in a real software engineering interview. The interview questions for Software Engineer job in a Product or Service company would cover below topics in details.
Design a Cloud Book Reading Application - Software Architect Mock Interview |
Understanding the reasoning behind technical interviews
- Technical interviews help interviewers evaluate candidates' problem-solving skills, ability to understand problems deeply, and optimize solutions.
- These interviews also assess candidates' knowledge of data structures and algorithms as well as their coding proficiency.
Introduction to the mock interview
- Keith Galley will conduct a mock interview with Kylie Ying.
- The questions asked will resemble those in real software engineering interviews.
- The specific question is unknown to Kylie Ying beforehand.
Designing an online Cloud reading application
The problem scenario involves designing a book system for an online Cloud reading application. The requirements include:
- Users should have a library of books that they can add or remove from.
- Users can set a book from their library as active.
- The reading application should remember the last page the user read in a given book.
- The reading application should display one page of text at a time in the active book.
Object-oriented design for the book system
To implement the book system, two classes are suggested:
- Book class:
- Attributes: title, content (pages), last page
- Methods: display page, turn
Introduction to Indexing Content
- The speaker discusses the use of a mono-spaced font for indexing content.
- Characters per page are determined and used to index into the content.
- Turning the page triggers a function call.
Granularity and Function Customization
- The granularity of turning pages is discussed.
- The advantage of having a customizable function is highlighted.
Multiple Users Sharing Books
- Consideration is given to multiple users sharing books in the system.
- Customization may be specific to each user, while books and content are shared among all users.
Storing Books in a Database Table
- Books can be stored in a database table, such as SQL.
- Each book can have an ID, title, and content stored in the table.
- Customization are per user, while books and content remain common.
Handling Duplicate Entries in the Table
- When adding to the collection, check if the title and content already exist in the table.
- If they do, return the existing book instead of creating a duplicate entry.
Designing an Algorithm for Detecting Plagiarism
- The task is to design an algorithm that detects the two most likely books with plagiarism.
- Plagiarism is defined as having the longest shared common section of text.
- The length of the shared section should be determined.
Understanding Sub strings and Consecutive Characters
- Sub strings are explained using examples.
- Consecutive characters are not necessary for a sub string, as long as the characters appear in order.
Class Breakdown
- Suggests further breakdown of classes to improve the solution.
- Proposes a separate display class to handle font sizes, characters per page, etc.
Critique on ID Structure
- Comments on the structure of IDs and suggests adding more details for robustness.
- Mentions the idea of retroactively grabbing an ID based on title or book contents.
Feedback on IDS and Book Identification
- Suggests using title and author as a better solution for book identification.
- Acknowledges the challenge of not having access to a proper library system.
Breaking Down Components
- Suggests breaking down components into separate classes, such as user-specific book classes.
Positive Feedback on Algorithm Solution Approach
- Commends the candidate for explaining their thoughts and considering pros and cons during algorithm solution.
- Appreciates the iterative approach in finding a more optimal solution.
Dynamic Programming Solution Discussion
- Highlights the challenge in formulating a dynamic programming solution.
- Mentions potential improvements regarding tenses and punctuation matching.
Positive Feedback on Dynamic Programming Solution
- Praises the candidate for running with the dynamic programming solution once given a starting point.
- Recognizes the optimal nature of the longest common subsequence or substring approach.
Reflection on Interview Performance
- Reflects on the challenging nature of the problem and areas for improvement.
- Discusses the importance of rebound
Comments
Post a Comment