From abc13cf19bbaa94e5a2e2d1b7363ce824d9ee607 Mon Sep 17 00:00:00 2001 From: Andrei Vidrasco Date: Wed, 13 Apr 2022 16:56:02 +0200 Subject: [PATCH 1/5] Update README.md --- exercises/README.md | 52 +++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/exercises/README.md b/exercises/README.md index 8deac0e..8e5edcf 100644 --- a/exercises/README.md +++ b/exercises/README.md @@ -1,32 +1,42 @@ # Typical Mobile System Design Interview Questions The following exercises emulate typical interview scenarios using common system design questions. The solution to each question might not be accurate and should not be taken as the "ground truth". The purpose of the exercises is to demonstrate different interviewer-candidate interactions. -- [Design "File Downloader Library"](/exercises/file-downloader-library.md) -- [Design "Caching Library"](/exercises/caching-library.md) -- [Design "Image Library"](/exercises/image-library.md) -- Design "Location Sharing Library" -- Design "Network Library" -- Design "Json Parsing Library like Moshi/Gson" -- Design "Pagination Library" -- Design "Analytics Library" -- Design "A/B Experiment Library" -- Design "Photo App" +### Apps +- Photo App - [Mock Interview #1](https://www.youtube.com/watch?v=wGQSeiBGkrI) - upload / sync photos with backend -- [Design "Chat App"](/exercises/chat-app.md) -- Design "Clock App" -- Design "Recipe App" -- Design "Photo Editing App" -- Design "Live Wallpaper Display App" -- Design "Instagram Post Feed/Facebook News Feed" -- Design "Facebook/Instagram story" -- Design "Flight booking system" +- [Chat App](/exercises/chat-app.md) - [Mock Interview #1](https://www.youtube.com/watch?v=PYsXmMt5Kdw) +- Reddit - [Mock Interview #1](https://www.youtube.com/watch?v=3GROd_h4SDc) +- Yelp - [Mock Interview #1](https://www.youtube.com/watch?v=qHEe3vGUBEM) +- Spotify - [Mock Interview #1](https://www.youtube.com/watch?v=XTFRUtQwwUw) +- Stock Trading App - [Mock Interview #1](https://www.youtube.com/watch?v=qLdy-65LsGk) +- Amazon - [Mock Interview #1](https://www.youtube.com/watch?v=Ga8VGsBU8vA) +- Trello - [Mock Interview #1](https://www.youtube.com/watch?v=BB5fcvdHbuQ) +- Recipe App - [Mock Interview #1](https://www.youtube.com/watch?v=OQqv7CodFj4), [Mock Interview #2](https://www.youtube.com/watch?v=r1hxj6JOBkU) +- Clock App +- Photo Editing App +- Live Wallpaper Display App +- Contacts app with real time status + +### Libraries +- [File Downloader Library](/exercises/file-downloader-library.md) +- [Caching Library](/exercises/caching-library.md) +- [Image Library](/exercises/image-library.md) - [Mock Interview #1](https://www.youtube.com/watch?v=YVzhUN90rpM) +- Pagination Library - [Mock Interview #1](https://www.youtube.com/watch?v=a-bse-ETgVo) +- Account Settings Library - [Mock Interview #1](https://www.youtube.com/watch?v=Jk4OjzoEI4U) +- Location Sharing Library +- Network Library +- Json Parsing Library like Moshi/Gson +- Analytics Library +- A/B Experiment Library +- Instagram Post Feed/Facebook News Feed +- Facebook/Instagram story +- Flight booking system - How to cache status - How to handle case like leaving a page and coming back without previous information loss - How to handle transaction failure - How to lock seat selection -- Design "Contact app with real time status" -- Design "Push notifications system" +- Push notifications system - broadcast receiver + notification manager + persistent connection -- Design "File uploader library" +- File uploader library Feel free to [suggest](https://github.com/weeeBox/mobile-system-design/issues/new) your own topics. From 0834ede806dfe9630511fec2deabe69b4ff92b0e Mon Sep 17 00:00:00 2001 From: Andrei Vidrasco Date: Wed, 13 Apr 2022 17:10:01 +0200 Subject: [PATCH 2/5] Create android.md --- android.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 android.md diff --git a/android.md b/android.md new file mode 100644 index 0000000..64fae65 --- /dev/null +++ b/android.md @@ -0,0 +1,36 @@ +# Information for Android + +## Bare minimum +- This repo +- [Fundamentals](https://developer.android.com/guide/components/fundamentals) +- [Testing](https://developer.android.com/training/testing) +- Architecture + - [UI+Domain+Data](https://developer.android.com/jetpack/guide) + - A lot of UI layer architecture exist - MVP, MVC, MVVM, MVI, Redux, VIPER, etc. + - Know the pros and cons of some and be ready to go deep on your choice of pattern and the tradeoffs +- Recyclerview +- Paging +- Workmanager +- [Build for billions](https://developer.android.com/topic/billions) +- [Perf matters](https://www.youtube.com/playlist?list=PLWz5rJ2EKKc9CBxr3BVjPTPoDPLdPIFCE) +- Do mocks on popular apps + - [Discord group](https://discord.com/invite/AWDNrvqban) for finding partners + - [List of recorded mocks](https://codeshare.io/mobiledesignmocks) + +## Other Links +- [Android conference videos](https://github.com/igorwojda/android-kotlin-conference-videos) +- [Mobile At Scale](https://www.mobileatscale.com/) +- [Adam Bennett interview preparation](https://github.com/ditn/interviewprep) + + +## Notes from candidates who got an offer at Meta or similar: + +### Topics to focus on +- Background processing +- Caching +- Scheduling +- Perf matters +- Major components of android app +- Jetpack lib +- Third party library and their best use cases +- Explain different approaches for components and select the best one as per the use case From 4e3a7f66435332dd1f9723d410791b266b5d73cd Mon Sep 17 00:00:00 2001 From: Andrei Vidrasco Date: Wed, 13 Apr 2022 17:11:48 +0200 Subject: [PATCH 3/5] Create ios.md --- ios.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 ios.md diff --git a/ios.md b/ios.md new file mode 100644 index 0000000..7b2020d --- /dev/null +++ b/ios.md @@ -0,0 +1,25 @@ +# Information for iOS + +## Bare minimum +- This repo +- Architecture + - A lot of UI layer architecture exist - MVP, MVC, MVVM, MVI, Redux, VIPER, etc. + - Know the pros and cons of some and be ready to go deep on your choice of pattern and the tradeoffs +- Do mocks on popular apps + - [Discord group](https://discord.com/invite/AWDNrvqban) for finding partners + - [List of recorded mocks](https://codeshare.io/mobiledesignmocks) + +## Other Links +- [Mobile At Scale](https://www.mobileatscale.com/) +- [Adam Bennett interview preparation](https://github.com/ditn/interviewprep) + + +## Notes from candidates who got an offer at Meta or similar: + +### Topics to focus on +- Background processing +- Caching +- Perf matters +- Major components of iOS app +- Third party library and their best use cases +- Explain different approaches for components and select the best one as per the use case From d9ae0d131401df3229f78fcfd7a1030c2c9c634c Mon Sep 17 00:00:00 2001 From: Andrei Vidrasco Date: Wed, 13 Apr 2022 17:13:20 +0200 Subject: [PATCH 4/5] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index e03297b..a2e4eaa 100644 --- a/README.md +++ b/README.md @@ -633,5 +633,8 @@ Check out the [collection](/exercises) of mobile system design exercises. Check the guide [here](/common-interview-mistakes.md). ### Mock Interviews Check out the mock interview [archive](https://www.youtube.com/playlist?list=PLaMN-JyH50OYAfxJEpiQTYTD-gxTf7x9d) or [sign-up](https://forms.gle/Cez2R31wqtgp3RsX9) to be a candidate yourself! +### Platform Specific Content +- [Android](/android.md) +- [iOS](/ios.md) ## Consider "starring" the repository to help other people discover the guide! Thank you! From 515a2d73f6126dc45f90bda68d0cdb8b2b79fc11 Mon Sep 17 00:00:00 2001 From: Andrei Vidrasco Date: Sat, 16 Apr 2022 23:30:25 +0200 Subject: [PATCH 5/5] Update ios.md --- ios.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios.md b/ios.md index 7b2020d..f5749f1 100644 --- a/ios.md +++ b/ios.md @@ -12,7 +12,7 @@ ## Other Links - [Mobile At Scale](https://www.mobileatscale.com/) - [Adam Bennett interview preparation](https://github.com/ditn/interviewprep) - +- [General iOS Knowledge quizz](https://jasper-foe-e81.notion.site/F-L-A-S-H-C-A-R-D-S-592bc284ccce4b3991aa8044705bf573) ## Notes from candidates who got an offer at Meta or similar: