I applied through a recruiter. The process took 2 months. I interviewed at Snap
Interview
Remote 5 Hour Project Interview with 5 different interviewers, all Software Engineers. Last half hour is left to evaluate and ask questions about the company.
Implementation of a chat system with 3 parts: Messaging, Feed Sync and Privacy (Friend Messaging only).
Interview questions [3]
Question 1
PHASE 1 - MVP Messaging
For the initial version of Chat, Snap has decided to only support messages between 2 users. Users will only be able to enter text in the chat box and send messages to each other. Your TL has provided the below skeleton code for the API that will receive incoming messages from the client. Please implement the sendMessage and getConversation functions:
def send_message(sender_id: str, recipient_id: str, message: str) -> None:
def get_conversation(sender_id: str, recipient_id: str) -> ???:
PHASE 2 - Feed Sync
Now that basic sending and receiving of messages are working, the client team wants to work on the "Feed" screen for messages. The "Feed", in snapchat is a list of conversations that a user is a part of. The feed is sorted by the newest message at the top of the feed.. The client team has asked you to implement the following API:
[Java]
def sync_feed(user_id: str) -> ???:
PHASE 3 - Privacy Settings
To support privacy controls you will:
Create a new service that the ConversationService will use to check the relationship between two users.
Add a new method to the ConversationService that allows users to update their privacy settings.
Add logic to check if a user can send a message to another user based on their privacy settings.
from enum import Enum
class Privacy(Enum):
PUBLIC = "PUBLIC"
FRIENDS = "FRIENDS"
class ConversationService:
def set_privacy(self, user_id, privacy):
pass
class FriendService:
def is_friend(self, user_id, friend_id):
def add_friend(self, user_id, friend_id):
def remove_friend(self, user_id, friend_id):
I applied online. I interviewed at Snap (New York, NY) in Jan 2024
Interview
Pretty straight forward. started with introduction, then coding and 5 mins extra time for me to ask any question. Overall I was able to answer all questions. my code worked andI had extra time to optimize it.
I got rejected the next day.
I applied online. The process took 2 weeks. I interviewed at Snap (Wien) in Mar 2024
Interview
First is HR call (half an hour), about company, what the team is responsible for, visa sponsorship.
Then technical interview with the manager (go through the CV, almost 1 hour), asking the details about the previous projects.
After that will be live code test in Hackran. Leetcode data structure and algorithm.
Interview questions [1]
Question 1
What might cause the segmention fault error and how to provent it?