LogIn
I don't have account.

Spinny SDE-1 Interview Experience (Selected)

Kunal Dixit
774 Views
  • Company: Spinny
  • Role: SDE-1 / Associate Software Engineer
  • Interview Mode: Remote
  • Total Rounds: 4
  • Difficulty Level: Medium
  • Timeline: 1–2 Weeks
  • Result: Selected

Recently, I interviewed with Spinny for an SDE-1 role. The process consisted of four rounds covering coding, low-level design, project discussions, Java fundamentals and SQL. The overall experience was structured and focused on evaluating both problem-solving ability and practical software engineering skills.

Unlike some interview processes that focus heavily on data structures and algorithms alone, Spinny's interviews also emphasized system design, database knowledge and understanding of real-world engineering challenges.

Interview Process Overview

Round Focus Area
Round 1 Coding Round (HackerRank)
Round 2 Low-Level Design
Round 3 Project Discussion + Java
Round 4 SQL + Technical Discussion

Round 1: Coding Round

The first round was conducted on HackerRank and consisted of two medium-level coding problems. The interviewer was primarily interested in problem-solving approach, code quality and complexity analysis.

Problem 1: AVL Tree Based Problem

The first question involved AVL Trees. The problem required understanding:

  • Self-balancing binary search trees
  • Tree rotations
  • Height balancing
  • Efficient insertions and lookups

The challenge wasn't simply implementing a binary search tree but ensuring that the tree remained balanced after every insertion.

What the Interviewer Was Looking For

The interviewer focused on:

  • Understanding of AVL balancing rules
  • Correct use of rotations
  • Time complexity analysis
  • Ability to explain edge cases

Since AVL Trees guarantee balanced height, operations such as insertion, deletion and search remain efficient.

Key Complexity:

  • Search → O(log N)
  • Insert → O(log N)
  • Delete → O(log N)

Problem 2: Graph-Based Problem

The second question was based on graph traversal concepts. Although the exact problem statement not remimber, the solution required identifying the appropriate graph algorithm and applying it efficiently. The discussion revolved around:

  • Graph representation
  • DFS vs BFS
  • Visited node tracking
  • Time and space complexity

The interviewer paid close attention to whether I could reason through the problem systematically rather than jumping directly into coding.

Round 2: Low-Level Design (Trip Expense Sharing System)

The second round was my favorite because it closely resembled a real-world software engineering problem. The interviewer asked me to design a system similar to Splitwise or a Trip Expense Manager.

Problem Statement

Imagine a group of friends going on a trip together. During the trip:

  • Multiple users spend money
  • Expenses are shared among participants
  • The system tracks balances
  • Users can settle payments later

The goal was to automatically determine who owes money to whom.

Requirement Gathering

Before discussing classes and APIs, I clarified requirements such as:

  • Can multiple trips exist simultaneously?
  • Can users participate in multiple trips?
  • Should expenses support equal and custom splits?
  • How are settlements handled?

The interviewer appreciated that I spent time understanding the problem before proposing a design.

Core Entities

I identified the primary entities:

User

Represents a participant in the system.


class User {
    String userId;
    String name;
}

Trip

Represents a shared travel event.


class Trip {
    String tripId;
    List<User> participants;
}

Expense

Stores information about spending.


class Expense {
    User paidBy;
    double amount;
    List<User> participants;
}

Settlement

Represents debt resolution between users.


class Settlement {
    User payer;
    User receiver;
    double amount;
}

Design Discussion

The majority of the discussion focused on:

  • Balance calculation
  • Extensibility
  • Data modeling
  • Future scalability

For example, if one user pays ₹5,000 for a hotel shared among five people, the system should automatically determine how much each participant owes.

The interviewer was less interested in code and more interested in whether the design could evolve as requirements changed.

Round 3: Project Discussion + Java Fundamentals

This round focused heavily on my previous projects and Java fundamentals. Unlike coding interviews, this discussion was centered around real engineering work and technical depth.

Project Discussion

The interviewer asked detailed questions about:

  • Architecture decisions
  • Challenges faced
  • Performance improvements
  • Production issues
  • Scalability concerns

Every major project mentioned on my resume became a discussion topic.

One important lesson from this round is that interviewers often know when candidates are speaking from actual experience versus memorized answers.

Career Goals Discussion

The interviewer also explored:

  • Long-term career aspirations
  • Interest in backend engineering
  • Motivation for joining Spinny
  • Areas I wanted to grow in

This felt more like a conversation than an interrogation.

Java Questions

Several questions were asked around Java fundamentals and collections. Topics included:

  • HashMap internals
  • ConcurrentHashMap
  • ArrayList vs LinkedList
  • HashSet implementation
  • equals() and hashCode()
  • Comparable vs Comparator
  • Collection framework hierarchy

The interviewer expected both theoretical understanding and practical usage knowledge.

Round 4: SQL + Technical Discussion

The final round was conducted by a senior engineering leader and focused heavily on SQL and database concepts. This round felt much closer to discussions that happen in real backend engineering work.

SQL Topics Covered

Joins

Questions around:

  • Inner Join
  • Left Join
  • Right Join
  • Full Join

The focus was understanding when and why each join type should be used.

Aggregations

Topics included:

The interviewer was interested in both syntax and business use cases.

Window Functions

This was one of the more advanced topics discussed. Examples included:

  • ROW_NUMBER()
  • RANK()
  • DENSE_RANK()
  • LEAD()
  • LAG()

The discussion focused on solving analytical queries efficiently.

Query Optimization

Several questions explored how to improve slow queries.

Topics included:

  • Proper indexing
  • Query execution plans
  • Avoiding unnecessary scans
  • Reducing joins where possible
  • Database performance tuning

This section felt particularly practical because these are common challenges faced in production systems.

Overall Experience

Overall, the interview process was balanced and practical. The coding round tested problem-solving ability, the design round evaluated software engineering thinking and the later rounds focused on real-world backend development skills such as databases, Java and project experience.

What I appreciated most was that every round felt relevant to the day-to-day responsibilities of a software engineer rather than focusing exclusively on competitive programming.

Preparation Tips

If you're preparing for a Spinny SDE-1 interview, I would recommend focusing on the following areas:

Coding

  • Trees
  • Graphs
  • DFS/BFS
  • Recursion
  • Medium-level LeetCode problems

Low-Level Design

Practice designing systems like:

  • Splitwise
  • Parking Lot
  • Library Management System
  • Expense Sharing Platform

Java Fundamentals

Be comfortable with:

  • Collections Framework
  • Multithreading basics
  • OOP principles
  • HashMap internals
  • Comparable and Comparator

SQL

Strong SQL knowledge is extremely important. Focus on:

  • Joins
  • Aggregations
  • Window Functions
  • Indexing
  • Query Optimization

Final Thoughts

The Spinny interview process provided a well-rounded assessment of software engineering skills. Instead of focusing exclusively on algorithms, it evaluated coding ability, design thinking, database expertise, Java knowledge and project ownership.

If you're targeting similar product companies, don't limit your preparation to DSA alone. A strong understanding of system design, SQL and the ability to discuss real-world engineering decisions can make a significant difference in the outcome.

Responses (0)

Write a response

CommentHide Comments

No Comments yet.