Design some time management or universal calendar kind of app.
Asked at
Microsoft
How to answer Technical questions
Interview Guide
Answers (1)
You'll get access to over 3,000 product manager interview questions and answers
Recommended by over 100k members
- Clarifications:
- What is meant by universal & time management over here?
- Can I assume, an application that can be used by a user for both is personal and professional needs.
- Also user can send an invite event to any email id and then the other user can add the event in their calendar.
- Question mentions, app by this do we specifically mean a web application or calendar application? you decide. Ok. Now since it is a universal time management app would assume it to be a mobile application as now-er days mobile is a device which the user keeps with him/her all the time.
- Also would want to understand that this question is more from system design or product design perspective? System design. Ok so will assume that the application similar to an apple or android default mobile calendar app.
- Product description:
- Google calendar is a time management application that helps users to organize their time.
- It allows users to:
- Block time on any user's calendar including your own self.
- Users can control visibility of the details of the calendar events to self or public.
- Also can decide to hide or show their calendar to participants.
- Users can create invite , add recipients, add attachments, description, time, subject. Edit invites, accept, decline or tentatively accept the invites.
- Hope this covers the main functionalities of the application? Yes.
- Users of the application:-
- Young professionals : Who have to multi task and thus looking for a single calendar application that suffices for all purposes.
- Middle aged and slightly senior population: looking for a application that can remind them of things they have to do since with age they are often forgetful and miss out on imp things that had to be done.
- Based on the size of the segment and propensity to use the app, I would like to select first user group i.e. professionals.
- Pain points of professionals:-
- Availability of a calendar app: at times the application fails to load and thus they are unable to add events, other users are unable to see who is free at what time.
- Sync across applications: Instant/Quick syncing of all the calendars which have been configured with the application, so that users know what meeting are coming up and don't miss out on imp meetings and events.
- Battery consumption : As a mobile app the battery consumption is always something which the user is concerned about.
- Visibility controls: to decide who is able to view what
- Success rate: of successfully creating invitees.
- Goal: As a user of the product, I want to quickly block time for various tasks based on participants's availability, see my schedule and get reminded of my upcoming events on time so that I can efficiently manage my tasks and my time.
- Out of the above pain points, based on the goal I think the most imp pain points are:-
- Availability of the calendar app
- Sync across applications
- Success rate
- Based on this the technical design :-
- To keep high availability & success rates we need a fault tolerant system thus:
- Build redundancy into the system by having multiple databases & servers so that if one server/database is unavailable.. other can takeover.
- Retry mechanisms: To handle API failures , retry mechanisms in place. tHis will help both to keep availability high and success rate also high.
- Caching: To keep the app light but still availability high, we shd have a caching mechanism on the device so that everytime when the user opens the app, all the events need not be repulled from database.
- We should keep track on the last time when the app was synced with the database, all the events that have been updated/created after the sync time only those should be repulled.. this will help in improving performance and improve availability of the app.
- Sync across calendars: so user will configure the calendars which he wants to keep synced with this universal calendar app via logging into the respective mailboxes.
- Polling mechanism: Poll the respective calendars/email ids to keep the calendars synced.
- Retry mechanisms:- in case on polling a specific app we are getting error response.
- Notifications : to inform the user if the app in unable to sync a specific calendar along with the error reason: like incorrect credentials, system down/unavailable even after trying multiple times. Notifications also required to inform the user of an upcoming event, also about the responses on the invites and if the user's data connection is not working for a specific time threshold then informing the user so that user knows that the app might me out of sync.
- Design:
0 likes | 0 feedback
Top Microsoft interview questions
- How would you improve Outlook for the use case when people get overwhelmed by number of emails received after returning from a vacation?11 answers | 9.2k views
- Evaluate the upsides and downsides of building a super app — an app having all major B2C features including entertainment, e-commerce, food ordering, hotel booking, cab booking, chat, holiday planning, gaming, med ordering, service booking, etc.11 answers | 15.7k views
- Design a product for job seekers to create resumes and find the best matching jobs easily and quickly.11 answers | 11.7k views
- See Microsoft PM Interview Questions
Top Technical interview questions
- Imagine you're the product manager for Facebook Marketplace. Since many sellers don't mark items as sold, what existing functionality and metrics could you use to determine whether an item has likely sold?7 answers | 20.9k views
- What happens when you enter a URL in your browser?6 answers | 10.8k views
- How does TinyURL work?5 answers | 317k views
- See Technical PM Interview Questions
Top Microsoft interview questions
- Design Netflix for Senior Citizens (Goal: Increase engagement time).10 answers | 10.9k views
- How would you design a car sharing platform like Uber for disabled people?9 answers | 11.3k views
- How many balls does it take to fill a 16x16 ft room?9 answers | 19.5k views
- See Microsoft PM Interview Questions
Top Technical interview questions
- How would you determine how to rank posts in the newsfeed?4 answers | 3.3k views
- The Chrome team is looking to reduce power utilization on mobile phones when using the browser. How would you go about solving this problem?3 answers | 3.7k views
- How would you map the ocean?3 answers | 2.9k views
- See Technical PM Interview Questions