← Snowflake Interview Insights

Snowflake·Software Engineer·Onsite - Multi Round·Junior

JuniorPending
May 2026Toronto

Summary

New grad candidate in Toronto going through Snowflake's full interview loop, which includes two initial coding screens followed by a final virtual onsite with coding, behavioral, and system design rounds. The post is more of a prep request than a full debrief, so details are sparse, but the coding problems mentioned give a decent sense of what to expect.

Questions Asked (4)

Q1

Implement a tax calculation function given income brackets and rates.

Algorithms & Data Structures
Author's notes

Came up in the early screening rounds.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Clarify the input format (sorted brackets, inclusive/exclusive bounds, edge cases) and then design a function that iterates through brackets, computing tax for each portion of income. Use a loop with O(n) time and O(1) space, and test with examples including income below the first bracket and above the last.

Pro tip: Mention that brackets should be sorted and non-overlapping, and handle floating-point precision by using integers (e.g., cents) or rounding at the end. Also, discuss how to extend to progressive tax systems with deductions.

1. Clarify requirements and edge cases

Ask about input format (e.g., list of (upper_bound, rate) tuples), whether brackets are sorted, and how to handle income exactly at a boundary. Also consider negative income, zero income, and very large numbers.

2. Design the algorithm

Iterate through brackets, tracking the lower bound of the current bracket. For each bracket, compute the taxable amount as min(income, upper_bound) - lower_bound, multiply by rate, and add to total. Stop when income is exhausted.

3. Implement with clear variable names and comments

Write code that is easy to follow, using descriptive names like 'taxable_income' and 'total_tax'. Handle the last bracket as unbounded (e.g., upper_bound = infinity).

4. Test with representative cases

Test with income in the first bracket, middle bracket, last bracket, and exactly at boundaries. Also test zero income and income exceeding all brackets.

5. Analyze complexity and discuss optimizations

State that the solution is O(n) time and O(1) space. For multiple queries, consider precomputing cumulative tax at each bracket for O(log n) per query via binary search.

Key Points to Mention

  • Handling of bracket boundaries (inclusive/exclusive) and ensuring no double taxation
  • Use of integer arithmetic or rounding to avoid floating-point errors
  • Edge cases: income below first bracket, above last bracket, exactly at boundary
  • Time and space complexity: O(n) time, O(1) space for single query
  • Potential optimization for multiple queries: precompute cumulative tax and use binary search
  • Assumption that brackets are sorted and non-overlapping; if not, sort first

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q2

Merge two sorted linked lists.

Algorithms & Data Structures
Author's notes

Standard linked list problem.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem: confirm whether the lists are singly linked, sorted in ascending order, and if we can modify the input lists. Then, present an iterative two-pointer solution that uses a dummy node to simplify edge cases, and analyze its time and space complexity. If time permits, mention the recursive alternative and discuss trade-offs.

Pro tip: Always use a dummy node to avoid special-casing the head of the merged list; this makes the code cleaner and less error-prone. Also, explicitly state that you are reusing the existing nodes rather than creating new ones, which shows awareness of memory efficiency.

1. Clarify requirements and constraints

Ask about list properties (singly/doubly linked, sorted order), whether modification is allowed, and if there are any memory constraints. Confirm expected return type (head of merged list).

2. Outline the approach

Explain that you will use two pointers, one for each list, and a dummy node to build the merged list. Compare the current nodes and append the smaller one, advancing that pointer.

3. Walk through edge cases

Discuss handling empty lists, lists of different lengths, and duplicate values. Show how the dummy node simplifies these cases.

4. Analyze complexity

State that time complexity is O(n + m) where n and m are the lengths of the lists, and space complexity is O(1) for the iterative solution (excluding the output list).

5. Mention alternative solutions

Briefly describe the recursive approach and its O(n + m) space complexity due to call stack. Discuss when one might be preferred over the other.

Key Points to Mention

  • Use of a dummy node to simplify edge cases and avoid special-casing the head.
  • Two-pointer technique to traverse both lists simultaneously.
  • Time complexity O(n + m) and space complexity O(1) for iterative solution.
  • Reusing existing nodes instead of creating new ones to save memory.
  • Handling of empty lists and lists of unequal length.
  • Recursive alternative and its trade-offs (cleaner code but O(n + m) space).

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q3

A modified version of the tax calculation problem with altered constraints.

Algorithms & Data StructuresTechnical Trade-offs
Author's notes

They brought back the tax question but changed something, I think around edge cases or the bracket structure.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

First, clarify the modified constraints and how they differ from the original tax problem. Then, propose an algorithm that handles the new constraints efficiently, discussing trade-offs between time and space complexity. Finally, walk through an example and analyze edge cases.

Pro tip: Demonstrate that you can adapt known solutions to new constraints by explicitly comparing the original and modified problems. This shows strong problem-solving skills and attention to detail.

1. Clarify the Problem

Ask questions to understand the modified constraints, such as input size, tax brackets, and any additional rules. Confirm the expected output and edge cases.

2. Identify the Core Challenge

Determine how the modified constraints affect the original solution. For example, if brackets are dynamic or income is huge, a simple linear scan may not suffice.

3. Propose an Algorithm

Outline an approach that meets the new constraints, such as using binary search for bracket lookup or a prefix sum for cumulative tax. Explain why it works.

4. Analyze Trade-offs

Discuss time and space complexity, and compare with alternative approaches. Mention any assumptions and how they impact the solution.

5. Test with Examples

Walk through a sample input, including edge cases like zero income or income exceeding all brackets. Verify the algorithm's correctness.

Key Points to Mention

  • Time and space complexity of the proposed solution
  • Handling of edge cases (e.g., zero income, negative income, income above highest bracket)
  • Comparison with the original tax problem and why the modification requires a different approach
  • Use of appropriate data structures (e.g., arrays, binary search) for efficiency
  • Potential for optimization (e.g., precomputation, caching)
  • Clarity on assumptions and constraints (e.g., sorted brackets, integer vs. floating-point)

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.

Q4

An additional coding problem in the screening round (non-LeetCode style).

Algorithms & Data Structures
Author's notes

Can't remember the specifics but it didn't feel like a standard platform problem.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem requirements and constraints, then discuss possible approaches and their trade-offs before coding. Implement a clean, efficient solution and test it with edge cases.

Pro tip: Demonstrate strong communication by thinking aloud and explaining your reasoning; interviewers value problem-solving process over just the final code.

1. Understand the Problem

Ask clarifying questions to fully understand the problem, including input/output formats, constraints, and edge cases.

2. Brainstorm Approaches

Discuss multiple potential solutions, analyzing time and space complexity for each, and choose the most optimal one.

3. Implement the Solution

Write clean, modular code while explaining your thought process and handling edge cases.

4. Test and Debug

Walk through your code with sample inputs, including edge cases, and fix any bugs.

5. Reflect and Optimize

If time permits, discuss potential optimizations or alternative approaches, and summarize the solution.

Key Points to Mention

  • Clarify ambiguities and constraints before coding
  • Analyze time and space complexity of different approaches
  • Write modular and readable code
  • Consider edge cases and test thoroughly
  • Communicate thought process clearly
  • Discuss trade-offs and potential optimizations

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.