

Updated by Snowflake candidates

Software Engineer Interview Experience
Interview process
OA is sent automatically to everyone who applies. Resume screening happens after. Questions are generally very difficult. The phone interview is done through AI, and asks you technical questions about your experience, projects, and challenges.
- Online assessment
- Phone interview
Interview tips
Practice difficult leetcode problems, especially on DP. The AI interview is quite responsive and feels like a conversation. It's fairly natural.
Company culture
I never interacted with any human during the process. I asked a recruiter for accommodations, but they were quite slow to respond. They also send everyone the OA and AI interview, meaning the applicant has to put in much more effort while they just get the screened results.
Questions asked
Question types asked
Specific questions asked
A database team is moving a database to a new architecture of clusters. You need to determine if it is possible to create controller-worker configurations for each subtree in a network of databases. Given: • A tree with network_nodes nodes • Two arrays network_from and network_to representing edges The configuration rules: • Each node must be paired with exactly one adjacent node • Each node can be part of only one configuration For each node, determine if a valid configuration is possible for its subtree. Return a string of 'I's and 'O's where: • 'T means a configuration is possible • 'O' means it is not possible In the examples, pairs are colored light or dark green. The character 'I means a coloring is possible, and 'O' means it is not. Note: A subtree for a given node in a rooted tree is defined as the tree consisting of all vertices that are descendants of a node in the original rooted tree, including the node itself. Node x is a descendant of node y if there is no path in the tree from y to the root without traversing x. Edges connect each pair of consecutive nodes in a path. Example network_nodes = 4 network_from = [1, 3, 2] network_to = 12, 1, 4] • Node 1 subtree: Can be configured with pairs (1,3) and (2,4) →1 • Node 2 subtree: Can be configured with pair (2,4) → T • Node 3 subtree: No valid configuration → '0' • Node 4 subtree: No valid configuration → '0' Return "1100", Function Description Complete the function isColoringPossible in the editor with the following parameters): int network_nodes: the number of nodes int network_from/network_nodes - 1]: one end of the edge int network_tolnetwork_nodes - 1: other end of the edge Returns string: ith character denotes whether ith node's subtree can be colored as required, 'O' = no, 'l' = yes Constraints • 2 ≤ network_nodes ≤ 3 * 105 • 1≤ network_fromlil, network_toll ≤ network_nodes
A string must be transferred using a custom network protocol. The protocol processes the string as follows: • Each pair of characters in the string is processed together. • If any pair contains matching characters (e.g., "aa"), it requires an additional sameTime seconds. • The string can be split into substrings before transmission, with each partition adding partitionTime seconds. Calculate the minimum possible total extra time required, which is the sum of: • Time for processing pairs with matching characters. • Time for creating partitions. Example s = "abcabc" sameTime = 1 partitionTime = 4 Two optimal approaches are: 1. Split into ["abc", "abcc"]: • "abc" has no matching pairs: O seconds • One partition: 4 seconds • "abcc" has one "c" pair: 1 second • Total: 0 + 4 + 1 = 5 seconds 2. Keep as ["abcabcc": • 5 matching pairs ("aa", "bb", "cc", "c", "C"): 5 seconds • Total: 5 seconds The minimum possible extra time is 5 seconds. Function Description Complete the function getMinimumTime in the editor with the following parameters: strings: the string to transfer int sameTime: the extra time taken to process a pair of matching characters int partitionTime: the extra time to partition a string
Get full access with a membership, or share your experience to try it free.
