Low Level Design of a Fitness App and Mock LLD interview with Intuit SWE @Keerti Purswani

preview_player
Показать описание
Grab some hot chai and enjoy the video. Cheers.

You can also follow Keerti here:

Do subscribe to her channel and share the love.

------------------------------------------------------------------
Recommendations
------------------------------------------------------------------
Our full courses on youtube:

Some paid courses that we recommend:

------------------------------------------------------------------
About Us
------------------------------------------------------------------
Created and Instructed by:
Yogita Sharma

Post-production(editing, thumbnail etc) managed by:
CiKi

Colors and design by:
Naini Todi

Both Arpit and Yogita are software engineers and want to help other software engineers become better by providing high quality and well researched content by adding their creativity and teaching twist.

------------------------------------------------------------------
Join Us
------------------------------------------------------------------
Hangout with sudoCode:

For business:
Рекомендации по теме
Комментарии
Автор


Hello people, The very talented Keerti Purswani has shared her time with us by solving a LLD problem of designing a fitness app. Please note this is a mock live interview which means Keerti didn't know about the question until we pressed record. Her attempt to solve the problem is absolutely natural and how it happens in a real interview. There might be multiple ways of solving this problem and you can share how you would have solved it. Both Keerti and I will be open for constructive feedback but I request you guys to type with kindness. This is an experiment and many of you requested for such mock interviews and we are trying the same. We sincerely hope that you derive some value from this LLD mock interview video.

sudocode
Автор

Very chaotic discussion. A lot of decisions made by the candidate didn't make sense, but interviewer always replied make sense to everything.

rajangarg
Автор

Thank you for having me Yogita. Such an honor ❤️
Plus got to have so much fun ❤️❤️😇😇

KeertiPurswani
Автор

Great efforts by both. Few suggestions
1) matrics and goals don't seem related so I don't see a point of having common interface.
2) in user class to store goals, you could have considered list instead of vector as it will be better in case of delete and generally we will anyways traverse through complete list so random access of vector doesn't help much. At least consider the trade offs.
3) I don't see a point of config class. Generally configs are maintained in the ini or config files so that you can just change the value and it will work without having to compile the binaries every time we just change the value of any config option.
4) as notification was discussed in much detail in the requirements part, you should have touched upon it. Having one common interface INotifier and different notifiers(msg, email, push notifications) derived from it and using some kind of event subscription mechanism to handle notifications.

varunbhatt
Автор

Excellent problem statement and great effort by both to give a feel of LLD interview. Few suggestions:
1. I think the main component should have been analytics, whereas the discussion revolved a lot around Goals, configuration etc.
2. The key requirement was to know how the device would give data. In what format it would give data, as this will influence the entire analytics calculation for weekly, daily, etc and also classes. I think this should have got clarified from the interview before starting with classes.
3. I don't see a relation between goals and metrics directly. A goal is just a placeholder for target, progress, reward point, etc. It should have been associated with a class like AnalyticsManager which knows that a particular metric should update goal values.

akshayshah
Автор

Too much of requirement gathering discussion in the beginning. It makes the video little off-colour. LLD should be straight to the point and as and when the things start getting complicated, interviewer should have a chance to spice it up a little and dig deep through it.Somewhere I felt Keerti was in project maintenance mode.

amishsumit
Автор

Thanks a lot for starting the LLD series, really liked the way of interaction to solve these problems. These videos are quite helpful. Could you please start LLD and HLD series as well on designing UBER, Whatsapp, facebook etc like open ended problems. Thanks

ChandraShekhar-bycd
Автор

Hey there,
I appreciate the amount of effort which was taken in making the video however there are certain approaches which need to be followed instead of jumping onto solutions after gathering requirement:

(Usually in MNC product based companies, interviewers expect candidates to follow the following approach during LLD round - iOS/Backend)
- Requirement Gathering
- Reiterate the requirements by jotting down use cases
- Define what would be the core actors & helpers
- Create a use case diagram that defines your use-case as an overview
- You can now create an Activity diagram to define the flow
- Now to go in depth, this is where the real LLD starts, you'll have to create ER diagram (entity relationship diagram that represents the classes its properties and methods present inside every block.)

PS: We can also call out that we are not going to take care of sharding or load balancing as it's assumed that it's already been taken care of which doesn't comes under the scope of iOS, for backend you've to cover theses aspects as well which are missed in iOS)

aktgaming
Автор

1. Can't we make Goal an interface and let HeartBeat, Steps, Water Intake, .... implement it?
Goal can have { Status, Reward,
2. We could also have an interface Metric and have implementations like HeartBeatMetric,
( Metric is part of Goal )

vipinraip
Автор

Should we intensionally do ask to add features? Won't this make the interview a bit difficult

anandyadav_
Автор

waiting for LLD course
thank you so much for creating and help the community

eshanjain
Автор

I don't get the ideas of interfaces generally like How did they figure it out that Analytics has to be a Interface and not a class?

leetcodebaby
Автор

That’s good conversation, I learned so many things from this video.

vikaskad
Автор

Hi Yogita mam, Saw your videos multiple times and my understanding of a system has been levelled up. Thanks for all your contribution.

exodus
Автор

Informative !!! Please start this as a weekly series.

vaibhavmehta
Автор

The requirements consumed a lot of time. Maybe they could have just reduced the number of requirements and focus more on how to actually code for LLD. Focusing on one component would have helped here.

sayalii_shelke
Автор

Watching this video a day before my LLD interview. Fingers crossed🤞

NaukiKumar
Автор

Great discussion!! Even though toughest LLD problem I have ever seen. Would never want to have in any interview.

UntamedRogueMavrick
Автор

Great conversation.I would like to suggest that we can keep the metrics as separate from goals and a goal should be an observer of an observable metric using observer pattern and hence can update its progress and status.

sumalyasaha
Автор

A SDE2 is interviewing a Senior Software Engineer damn keerthi ma'am was so humble and she acted like she's really giving an interview. Now the problem is Ab mujhe preparation karna hai bhay

alphacoder