Skip to main content

Design a Cloud Book Reading Application - Software Architect Mock Interview

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
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:

  1. 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

Design a Cloud Book Reading Application - Software Architect Mock Interview

Comments

Popular posts from this blog

Fake CVR Generator Denmark

What Is Danish CVR The Central Business Register (CVR) is the central register of the state with information on all Danish companies. Since 1999, the Central Business Register has been the authoritative register for current and historical basic data on all registered companies in Denmark. Data comes from the companies' own registrations on Virk Report. There is also information on associations and public authorities in the CVR. As of 2018, CVR also contains information on Greenlandic companies, associations and authorities. In CVR at Virk you can do single lookups, filtered searches, create extracts and subscriptions, and retrieve a wide range of company documents and transcripts. Generate Danish CVR For Test (Fake) Click the button below to generate the valid CVR number for Denmark. You can click multiple times to generate several numbers. These numbers can be used to Test your sofware application that uses CVR, or Testing CVR APIs that Danish Govt provide. Generate

How To Iterate Dictionary Object

Dictionary is a object that can store values in Key-Value pair. its just like a list, the only difference is: List can be iterate using index(0-n) but not the Dictionary . Generally when we try to iterate the dictionary we get below error: " Collection was modified; enumeration operation may not execute. " So How to parse a dictionary and modify its values?? To iterate dictionary we must loop through it's keys or key - value pair. Using keys

How To Append Data to HTML5 localStorage or sessionStorage?

The localStorage property allows you to access a local Storage object. localStorage is similar to sessionStorage. The only difference is that, while data stored in localStorage has no expiration time untill unless user deletes his cache, data stored in sessionStorage gets cleared when the originating window or tab get closed. These are new HTML5 objects and provide these methods to deal with it: The following snippet accesses the current domain's local Storage object and adds a data item to it using Storage.setItem() . localStorage.setItem('myFav', 'Taylor Swift'); or you can use the keyname directly as : localStorage.myFav = 'Taylor Swift'; To grab the value set in localStorage or sessionStorage, we can use localStorage.getItem("myFav"); or localStorage.myFav There's no append function for localStorage or sessionStorage objects. It's not hard to write one though.The simplest solution goes here: But we can kee