Tech Interviews: This might be your next question
Tags: techinterview, systemdesign, coding
Published: 2018-12-31 17:13:23

---
title: Tech Interviews: This might be your next question
published: true
description: A list of articles, videos, books for interview preparation
tags: #TechInterview #SystemDesign #Coding
cover_image: https://thepracticaldev.s3.amazonaws.com/i/4wxq2k8jzbjfm6ckgjuw.jpeg
---


![Badge](https://img.shields.io/badge/Tech-Interviews-blue.svg)


A list of articles, videos, books for interview preparation....

#### This might be your next question…[github](https://simplymanas.github.io/TechInterviews/#this-might-be-your-next-question)

## System Design[](https://simplymanas.github.io/TechInterviews/#system-design)

[Log System](https://engineering.linkedin.com/distributed-systems/log-what-every-software-engineer-should-know-about-real-time-datas-unifying)

[High Scalability blog](http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html)

[Systme desgin primer by donne martin](https://github.com/donnemartin/system-design-primer)

[System Desgin by Shashank](https://github.com/shashank88/system_design)

[Redis architecture](https://medium.com/kokster/highly-available-redis-architecture-613c89f887b4)

[System Desgin Interview Question](https://hackernoon.com/top-10-system-design-interview-questions-for-software-engineers-8561290f0444)  [cont..](https://github.com/checkcheckzz/system-design-interview)

[Online Movie Ticket booking](https://medium.com/@narengowda/bookmyshow-system-design-e268fefb56f5)

[Recommedation and personalisation](https://medium.com/netflix-techblog/system-architectures-for-personalization-and-recommendation-e081aa94b5d8?_sm_au_=iVVV1H5rMRH7P7NQ)

[Netflix Developer](https://medium.com/netflix-techblog/full-cycle-developers-at-netflix-a08c31f83249)

[System desgin case studies](https://github.com/sjuvekar/System-Design-Case-Studies/blob/master/studies/dropbox.md)

[System desgin for collab edit](https://hackernoon.com/building-conclave-a-decentralized-real-time-collaborative-text-editor-a6ab438fe79f)

[How web works](https://github.com/vasanthk/how-web-works)

[Bloom Filter](https://hur.st/bloomfilter/)

#### [How does HTTPS actually work?](https://robertheaton.com/2014/03/27/how-does-https-actually-work/)[](https://simplymanas.github.io/TechInterviews/#how-does-https-actually-work)

## Architecutre[](https://simplymanas.github.io/TechInterviews/#architecutre)

[Cassandra](https://docs.datastax.com/en/archived/cassandra/2.1/cassandra/architecture/architectureIntro_c.html)

[Whatsapp Architecture](http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html)

## Scaling[](https://simplymanas.github.io/TechInterviews/#scaling)

[Whatsapp](http://www.erlang-factory.com/upload/presentations/558/efsf2012-whatsapp-scaling.pdf?_sm_au_=iVVV1H5rMRH7P7NQ)

[Whatsapp Scaling](https://vimeo.com/44312354?_sm_au_=iVVV1H5rMRH7P7NQ)

## Microservices[](https://simplymanas.github.io/TechInterviews/#microservices)

[At amazon](https://docs.aws.amazon.com/aws-technical-content/latest/microservices-on-aws/introduction.html)

## Distributed Systems[](https://simplymanas.github.io/TechInterviews/#distributed-systems)

[Distributed Systems in One Lesson by Tim Berglund](https://www.youtube.com/watch?v=Y6Ev8GIlbxc)

### CAP Theorem  [CAP by Shekhar Gulati](https://shekhargulati.com/2018/08/08/week-2-cap-theorem-for-application-developers/)[](https://simplymanas.github.io/TechInterviews/#cap-theorem-cap-by-shekhar-gulati)

-   Consistency: Every read is guaranteed to return the most recent write or an error
-   Availability: Every request receives a non-error response from a non-failing node in a reasonable time. It is expected that the client may not receive the most recent write
-   Partition tolerance: The system continues to operate when network partition happens

## Deployment[](https://simplymanas.github.io/TechInterviews/#deployment)

[Kubrnetes](https://cloud.google.com/kubernetes-engine/kubernetes-comic/)

## Coding[](https://simplymanas.github.io/TechInterviews/#coding)

[Interview Question - geekForgeek](https://www.geeksforgeeks.org/must-do-coding-questions-for-companies-like-amazon-microsoft-adobe/)

[Interview Question - DonneMartin](https://github.com/donnemartin/interactive-coding-challenges)

[Interview Question - simple programmer](https://simpleprogrammer.com/programming-interview-questions/)

[Interview Question - hackernoon](https://hackernoon.com/50-data-structure-and-algorithms-interview-questions-for-programmers-b4b1ac61f5b0)

[Interview Question - LeetCode](https://leetcode.com/explore/featured/card/top-interview-questions-easy/)

[Data Structures and Algorithms in Java](https://github.com/donbeave/interview)

[JAVA Interview questions - interviewbit ]
(https://www.interviewbit.com/java-interview-questions/)

#### Add Two Numbers[](https://simplymanas.github.io/TechInterviews/#add-two-numbers)

[this is a problem](https://leetcode.com/problems/add-two-numbers/)

[Explanation of the solution](https://medium.com/the-renaissance-developer/problem-solving-skills-add-two-numbers-1db9af05039)

[Ultimate Guide](https://medium.freecodecamp.org/the-ultimate-guide-to-preparing-for-the-coding-interview-183251ee36c9)

## Datastructure[](https://simplymanas.github.io/TechInterviews/#datastructure)

[All about tree](https://www.codementor.io/leandrotk100/everything-you-need-to-know-about-tree-data-structures-pynnlkyud)

[How To Not Be Stumped By Trees](https://medium.com/basecs/how-to-not-be-stumped-by-trees-5f36208f68a7)

[Vaidehi Joshi’s world of Datastructure](https://medium.com/basecs)

[When to use linkedlist over arraylist in java](https://stackoverflow.com/questions/322715/when-to-use-linkedlist-over-arraylist-in-java)

## DDD (Domain Driven Design)[](https://simplymanas.github.io/TechInterviews/#ddd-domain-driven-design)

[How to define service industries](https://hackernoon.com/how-to-define-service-boundaries-251c4fc0f205)

[Capability-mapping-and-context-mapping](https://hackernoon.com/capability-mapping-and-context-mapping-95cf862f0753)

[DDD the 5 mintue master](https://medium.com/the-coding-matrix/ddd-101-the-5-minute-tour-7a3037cf53b8)

## Caching[](https://simplymanas.github.io/TechInterviews/#caching)

[Caching Tutorial for Web Authors and Webmasters](https://www.mnot.net/cache_docs/?_sm_au_=iVVV1H5rMRH7P7NQ)

## Security[](https://simplymanas.github.io/TechInterviews/#security)

https://www.youtube.com/watch?v=otWst36CKyM

## Login system[](https://simplymanas.github.io/TechInterviews/#login-system)

[Definitive guide for website authentication](https://stackoverflow.com/questions/549/the-definitive-guide-to-form-based-website-authentication/477578#477578)

## Courses[](https://simplymanas.github.io/TechInterviews/#courses)

[Safari Books - Learn design pattern](https://www.safaribooksonline.com/videos/learn-design-patterns)

[Safari Books - Break away system](https://www.safaribooksonline.com/videos/break-away-programming)

[Safari books - Java Inteview Guide](https://www.safaribooksonline.com/videos/java-interview-guide)

## JAVA[](https://simplymanas.github.io/TechInterviews/#java)

[10 JAVA interview question](https://dzone.com/articles/top-10-java-interview-questions-that-i-recently-fa?edition=385432&utm_source=Weekly%20Digest&utm_medium=email&utm_campaign=Weekly%20Digest%202018-08-29)  [Java Interview question](https://www.edureka.co/blog/interview-questions/java-interview-questions/)

## REST[](https://simplymanas.github.io/TechInterviews/#rest)

[RESTful APIs](https://restfulapi.net/)

[Microsoft Dcouments on API-Design best practice](https://docs.microsoft.com/en-us/azure/architecture/best-practices/api-design)

## Networking[](https://simplymanas.github.io/TechInterviews/#networking)

[100 networking question](https://career.guru99.com/top-100-networking-interview-questions-answers/)

## Design Pattern[](https://simplymanas.github.io/TechInterviews/#design-pattern)

[Design Pattern - DZONE](https://dzone.com/refcardz/design-patterns?chapter=1)

[Design Pattern - JavaTPoint](https://www.javatpoint.com/creational-design-patterns)

## Database[](https://simplymanas.github.io/TechInterviews/#database)

[Understanding nosql](https://www.kdnuggets.com/2016/07/seven-steps-understanding-nosql-databases.html)

### Process & Standard[](https://simplymanas.github.io/TechInterviews/#process--standard)

[Clean Code](https://engineering.videoblocks.com/these-four-clean-code-tips-will-dramatically-improve-your-engineering-teams-productivity-b5bd121dd150)

## Success Stories[](https://simplymanas.github.io/TechInterviews/#success-stories)

[System Desgin](https://medium.freecodecamp.org/how-to-system-design-dda63ed27e26)

## Almost Everything[](https://simplymanas.github.io/TechInterviews/#almost-everything)

[Everything](https://github.com/andreis/interview)

## Web Architecture 101[](https://simplymanas.github.io/TechInterviews/#web-architecture-101)

[Web Architecture 101](https://engineering.videoblocks.com/web-architecture-101-a3224e126947)

## Online Videos[](https://simplymanas.github.io/TechInterviews/#online-videos)

[5 Tips for System Design Interviews](https://www.youtube.com/watch?v=CtmBGH8MkX4)

[System Design: How to design Twitter? Interview question at Facebook, Google, Microsoft](https://www.youtube.com/watch?v=KmAyPUv9gOY&t=449s)

[Tech Dummies - Narendra L](https://www.youtube.com/watch?v=wYk0xPP_P_8&list=PLkQkbY7JNJuBoTemzQfjym0sqbOHt5fnV&index=3)

[All about algorithms](https://youtu.be/9TlHvipP5yA)

[Tech Primers](https://youtu.be/Wa_q8C6Qo68)

## Interview Formats[](https://simplymanas.github.io/TechInterviews/#interview-formats)

[For many comapnies](https://github.com/yangshun/tech-interview-handbook/blob/master/non-technical/interview-formats.md)



# Some FAQ 

#### (will continue adding to this in my git page)

### FAQ#1 : Difference between JWT (Java Web Tokens) & Oauth

[jwt-vs-oauth](https://community.apigee.com/questions/21139/jwt-vs-oauth.html)

[Deep Copy vs Swallow Copy](https://dzone.com/articles/java-copy-shallow-vs-deep-in-which-you-will-swim)

[RFC7519](https://tools.ietf.org/html/rfc7519)



| JWT | OAuth |
|--|--|
| its a token, JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties | its a framework to dispense token  |
| JWT is a different kind of OAuth token | OAuth token is not the only token
| is not a pointer to information |  a pointer to information
| JWT contains real information, it can be large | can be small as its just a pointer
|JWT are self-validating" what they mean is, any holder of the JWT can open it, validate it, and then make authorization decisions based on the claims presented in it. | Oauth are not
|JWT supports "Federation" - anyone can generate a token, and anyone can read and validate a token . | used when there is no federation
| used when asynchrony is required|
|  security. Both are bearer tokens. Both need to be protected as secrets.|same
|useful for self authenticating tokens|
|has lot more context about the user, session - including the signature.|less context
|better at performance as no server call requried|server clal required|
|forced to have lower expiry times to these tokens, as they are valid till the pre-defined rules re valid|





## FAQ#2 : Difference between Container and VM

[differences](https://www.docker.com/what-container#/package_software)

|Container |VM
|--|--|
|Shares the OS and resources|A full virtualized system gets its own set of resources allocated to it, and does minimal sharing.|
|If you just want to isolate processes from each other and want to run a ton of them on a reasonably sized host, then Docker/LXC/runC seems to be the way to go.|If you want full isolation with guaranteed resources, a full VM is the way to go
|**How containers works at low level?**   Each container runs in its own namespace but uses exactly the  _same_  kernel as all other containers. The isolation happens because kernel knows the namespace that was assigned to the process and during API calls it makes sure that process can only access resources in its own namespace. | **How virtualization works at low level?**    The net effect is that virtualization allows you to run two completely different OS on same hardware. Each guest OS goes through all the process of bootstrapping, loading kernel etc. You can have very tight security, for example, guest OS can't get full access to host OS or other guests and mess things up.|
|A virtual machine is a convenient way of packaging up virtual hardware, a kernel, and a user space. |A container, on the other hand, packages up only the user space; there is no kernel or virtual hardware.|
|Sharing an entire virtual machine with other developers can be inconvenient because of a virtual machine’s size and format|Containers have the advantage of providing developers, architects, quality engineering, release engineers, and systems administrators with a currency for collaboration that has the entire user space packaged and shipped in a convenient and easy to use format.|


### FAQ#3 : CAP Therorem
https://www.infoq.com/articles/cap-twelve-years-later-how-the-rules-have-changed

### FAQ#4 : Difference between Redis and Memcache
https://stackoverflow.com/questions/10558465/memcached-vs-redis

### FAQ#5 : Why Databases shouldn't be used as Message Queues
https://www.youtube.com/watch?v=9T-gNZ5bGCw

Here are possible drawbacks:

1) Polling intervals have to be set correctly. Too long makes the system is inefficient. Too short makes the database undergo heavy read load.
2) Read and write operation heavy DB. Usually, they are good at one of the two.
3) Manual delete procedures to be written to remove read messages.
4) Scaling is difficult conceptually and physically.


## Same thoughts from github

[interview by rockoder](https://github.com/rockoder/interview)


## Conclusion

These are just pointers where you can get some more details about a particular topic, but almost all of them required working knowledge for a deep dive and more thoughts on using the same.

All the best for your next round :)
Simplymanas

##### [AboutMe](https://simplymanas.github.io/TechInterviews/about.me/simplymanas)  |  [Blog](http://manasdash.thoughts2share.in/)  |  [Github](https://github.com/simplymanas/)[](https://simplymanas.github.io/TechInterviews/#aboutme----blog--github)