---
# System prepended metadata

title: Mudit Jha | 3 years exp

---

# Mudit Jha | 3 years exp
- Ok with DB design, Have to change the columns when asked to write the query.
- Able to write a wrapper function for continusous calling a function, but couldnt resolve [heap out of memory] issue. 

- Not good for SDE 2. Can consider for SDE 1 role.

# Question 1: Facebook Posts.

- post, likes, comments(infinite level), share

SELECT * FROM POSTS WHERE USERID = `USERID`; 
#For each post that we fetch for a user
SELECT * FROM COMMENTS WHERE POSTID = `postId` where ParentCommendId = NULL;
Post.ID = Comment.PostID 

SELECT Post.ID, Post.Content, Post.Likes, Post.Comments, Comment.CommentContennt, Comment.User, Comment.Date, Comments.Likes, Like.PostID, Like.CommentID, Like.UserID ON Post.ID = Comment.PostID AND Comment.ID = Like.CommentID FROM Post, Comment, Like WHERE Post.UserId = `UserId` AND Comment.ParentCommentId = NULL; 



Post
- ID
- Content
- User
- LikesCount
- CommentsCount
- Likes
- Comments
- Media
- Shares

Comment 
- PostID
- CommentID
- ParentCommentID
- CommentContent
- User
- Date
- Likes

Like 
- ID
- PostID 
- CommentID
- UserID #who liked the post

Share
- ID
- PostID
- UserID  #user who has made the shared post

Media
- ID
- S3 URL


- Share : An action to create a new Post instance





User
- ID
- Other details





#Wrapper function to keep calling the SQS client and return data if present

class SDKClient:


def get_latest_message_from_queue(client: SQSClient):
        #Make internal call to SDK
        while True:
            count = sdk_client.get_queue_length()
            if count > 0:
                #We want to fetch messages
                message = sdk_client.get_latest_message()
                #Do processing based on some field
            else:
                break


    