Most folks either have a depth of knowledge in an area or a breath of knowledge in a couple of areas. For example, if you are working on the fraud detection of your product, you will have in-depth knowledge of what is fraud, what are the rules to detect fraud, how do the fraudsters keep ahead of the system, the rules, the penalties and everything associated with fraud. Many people might not have a total understanding of the product, all its features, its customer base or things related to ranking or relevance.

If you are asked about the architecture of your product at a high level, can you draw the boxes on a whiteboard and run through the workflow, the functions of each box. Do you understand the technologies used to build the product and the reason those technologies are chosen over others available in the market? When would you use Casandra versus SQL for the database of your system? Technical interviewers expect interviewees to have this information under their belt.

Architectural problem

As explained in my earlier post, software architectural problems are problems related to components needed for designing a software system and their dependencies. The objective of these questions is not to see the abilities and thought process.

Following is an example and a possible approach on the problem:

Design the online shopping experience of a shoe shop

  1. As always, make sure you understand the question before starting to work on the solution to the problem. ASK QUESTIONS. Ask a lot of CLARIFYING QUESTIONS. 
  2. What does online shopping mean? Is it only a website? Does it include tablet, mobile and desktop apps. Ask appropriate questions to clarify it. 
  3. Have you researched the competition in the market? Talk about Zappos who are the leaders in the online shoe buying experience. Have you researched eBay, onlineshoes and overstock, not to forget our dear Amazon? 
  4. How does the interviewer (or you) want to differentiate self in the space that already exists? Are there gaps that you can think of? 
  5. How will you approach user research for this product? Talk about a couple of options on it. 
  6. Ask the interviewer about the time, resources and budget constraints.  
  7. List 8 – 10 top UI features for V1 of the project. 
  8. List another 4 – 5 features that would come in a future version 
  9. Describe the architecture of the system including the main modules and workflow process 
  10. Explain architecture of the system. Whiteboard them if possible. 
  11. Again, remember, you need to answer all this in 45 minutes, so space yourself appropriately 
  12. Ask questions and feedback from the interviewer and include it in the design

Algorithmic problem

Problems related to patterns, themes, algorithms, data structures and computer science applications are algorithmic problems.

A simple example and an approach to it:

Check if a string is a palindrome or not

  1. The first important thing here is understanding what is a palindrome and some examples
  2. Palindromes are words that have the same characters both front and backwards. Examples of palindromes include wow, madam, kayak, redder.
  3. If you had 2 lists one reading forward (call it forward) and the other reading backward (call it back), start comparing the position of the forward with back until you read the middle position.
  4. A more efficient way of doing it would be to have a single list and compare the first position and last position until you reach the center.
  5. If at any point, there is a mismatch, we know that it is not a palindrome.
  6. Draw a diagram of the workflow.

Resources coding examples in Introduction, Beginners programming questions and advanced programming questions)

Ready to improve your online presence?

Contact us today to start the process to design your online presence

Contact Us