A reason to not use blobs in db may be that you keep the db nimble, return data quickly and separately you retrieve the actual bytes from disk. UI renders some data quickly and full photo later. ...Now to hedge my statements because people will come after me (as the internet does). You can potentially achieve the same thing by using the db and querying twice (one for metadata, one for full data), and or using content provider to abstract the database reads (off the same table), and still use URIs. But even then, I think it doesn't scale well to multiple developers, because people may "SELECT *" anyway, and slow down queries, etc. So while yes, it may be an axiom and may not necessarily be true, it's nowadays somewhat of a convention and people will expect to be there, so more errors could occur if you don't follow it. Separating them could also help reduce contention accessing the resources (db + file vs db + db). All in all, it's extra effort just to have a non-conventional setup and "prove the world wrong". Cheers Alex!
You're 100% correct. That's how other apps usually recommends and does the implementation because of the points you mentioned. While scrolling images faster, the reads from the internal storage(file) with raw bytes is more efficient on the memory.
This content is Gold. Really liked the detailed feedback. I am surprised to as how come Image loading and performance issues were never mentioned by the interviewer or interviewee. On a side note though Indians have access to some of the cheapest internet plans in the world :)
@@alementuev Ha ha should have saw that coming. I have zero experience with System Design interviews right now. Learning currently thanks to the content creators like you! But, someday may be.
@@alementuev what if someone wants to volunteer here? Though I have not faced system design interview by big techs I would like to get similar experience in marathon. In India people try to be asshole if they are hiring far ahead of the time and nice when their previously hired candidate says I have better offer at 11th hour and does not join. 🤣
@41:51 - @42.10 - When user install app from that point of time he does not have any internet connection - 1 option can be , we can use FirebaseRemoteConfig with default values of country specific i.e. india - 2g - default config so FirebaseRemoteConfig will use default and compare with device , and once internet available any he can fetch updated new config.
@Alex Lementuev не знал куда написать, напишу здесь, хотел выразить благодарность за то, что поделился опытом в подкасте про фаанг на другом канале, у меня руки опустились в один момент и потом, я случайно наткнулся на то интервью, ты прям вселил в меня силы своей мудростью 😂. У меня прям второе дыхание открылось, вобщем спасибо. 👍
We can gather these for
Upload/Download Feature:
- photos
- approx size?
- parallel
- background
- pause, resume?
- encrypted?
- URI Sessions?
- metadata type? Unstructured?
- can be shared? Permissions?
- priority
- throttling
- notification update
- file integrity check
- outdated cleaning
Watching this video from India with 0 buffering Eugene😅😅 btw great video , very useful!
watching from India from a far distant village with speed 778MBps
A reason to not use blobs in db may be that you keep the db nimble, return data quickly and separately you retrieve the actual bytes from disk. UI renders some data quickly and full photo later.
...Now to hedge my statements because people will come after me (as the internet does).
You can potentially achieve the same thing by using the db and querying twice (one for metadata, one for full data), and or using content provider to abstract the database reads (off the same table), and still use URIs.
But even then, I think it doesn't scale well to multiple developers, because people may "SELECT *" anyway, and slow down queries, etc. So while yes, it may be an axiom and may not necessarily be true, it's nowadays somewhat of a convention and people will expect to be there, so more errors could occur if you don't follow it.
Separating them could also help reduce contention accessing the resources (db + file vs db + db).
All in all, it's extra effort just to have a non-conventional setup and "prove the world wrong".
Cheers Alex!
You're 100% correct. That's how other apps usually recommends and does the implementation because of the points you mentioned. While scrolling images faster, the reads from the internal storage(file) with raw bytes is more efficient on the memory.
This content is Gold. Really liked the detailed feedback. I am surprised to as how come Image loading and performance issues were never mentioned by the interviewer or interviewee.
On a side note though Indians have access to some of the cheapest internet plans in the world :)
Abhishek, I'd be happy to have you as a candidate and hear your thoughts on image loading performance issues! 🙂
@@alementuev Ha ha should have saw that coming. I have zero experience with System Design interviews right now. Learning currently thanks to the content creators like you! But, someday may be.
I was about to comment the same regarding the Internet thing 😅
@@alementuev what if someone wants to volunteer here? Though I have not faced system design interview by big techs I would like to get similar experience in marathon. In India people try to be asshole if they are hiring far ahead of the time and nice when their previously hired candidate says I have better offer at 11th hour and does not join. 🤣
25:45 bro system hanged up,pom pom
In India, Not only Internet cheap but we have free unlimited calls and sms as well, so dont care
Acknowledged
Great video and feedback!
Keep posting videos like these man .
@41:51 - @42.10 - When user install app from that point of time he does not have any internet connection - 1 option can be , we can use FirebaseRemoteConfig with default values of country specific i.e. india - 2g - default config so FirebaseRemoteConfig will use default and compare with device , and once internet available any he can fetch updated new config.
Loved the video but just one correction, India has cheapest internet available to indians. No network issues here.
Thanks for the mock and detailed feedback
Спасибо за мок интервью, круто и познавательное получилось 👍🏻
У кандидата опыт работы с Индии можно заметить по его акценту 😅
Alex being a slight d**khead by continuing to bring up the "software expert" comment 😂. I love it!
did he say that images shouldn't be stored on the backend for security reasons? If so, why?
Pls put the notes discussed in video.The text is too small
@Alex Lementuev не знал куда написать, напишу здесь, хотел выразить благодарность за то, что поделился опытом в подкасте про фаанг на другом канале, у меня руки опустились в один момент и потом, я случайно наткнулся на то интервью, ты прям вселил в меня силы своей мудростью 😂. У меня прям второе дыхание открылось, вобщем спасибо. 👍
Рад помочь! Дай знать, как пойдут интервью!
Do you think this is a good demonstration of Senior Android Engineer Level design?
good usefull.thanks
1:27:05 this ending is amazing 😂
wtf
Hi, I want to give a mock interview to you as well. Can we connect?
have sent you connect request on LinkedIn - we can connect there as well.
Poor network is a common issue in every country xD. If its India, I would worry about localization first.
43:34 feedback
узнал очень много про Индию и мало про нюансы реализации