EightFold AI | LLD | Senior Software Engineer | Rant | Question Attached

eightfold ai logo
eightfold ai
April 10, 2026 · 0 reads

Summary

I interviewed for a Senior Software Engineer position at EightFold AI. The interview consisted of a 90‑minute low‑level design and coding exercise to build a simplified Splitwise system, and I was ultimately rejected after running out of time.

Full Experience

Round: 90 mins
Interviewer was ~4 year exp (also Senior Engineer)

Intitially interviewer told its DSA+LLD , but interviewer said no to DSA completely and said only LLD.

Result: Rejected ( Time finished before I could write testcases, otherwise completed the code. As mentioned later in post , naive guy , doesnt care about communication , approach , correctness , optimization , validations, nothing. Just run it run it somehow.)

I have given LLD interview before , but not with a dumb guy like this who doesnt understand that there are many aspects to look in an interview,especially with now the presence of AI , the logic , knowledge, communication takes more weightage than completionof code

Expectation - 
Code in any language of your own
Not pseudocode, complete code.

Tip: Dont care about validation and parsing and modularity and design pattern and all initially. Just write the main functional class and test cases. If then, time permits do the optimization.
Also can ask what do they care about more , completion or logic.

About interviewer - underconfident guy
Only said "Okay" in the whole interview
Almost felt like he was doing his own work and me doing mine.
No question about why this design pattern or challenge the approach or point anything. Either I was coding like God , or he didn't himself had a clue , or was not interested.

Problem-

Splitwise - LLD + Coding
Objective
Design and implement a simplified version of Splitwise, an expense-sharing system.
We are evaluating:
Object-oriented design
Clean abstractions
Code structure and modularity
Extensibility
Ability to evolve the system under new requirements
Communication clarity
This is not a competitive programming problem.
We care more about design quality and structure than speed.

Core System
📌 Functional Requirements
User
Each user has:
Unique ID
Name
Users can participate in expenses.

Add Expense
The system should support adding an expense with:
paidBy → user who paid
amount → total amount
participants → list of users involved
splitType
splitDetails (if applicable)

Supported Split Types
A) Equal Split
The total amount is divided equally among all participants.
Example:
 Amount = 300
 Users = A, B, C
 Each owes 100

B) Exact Split
Each participant specifies the exact amount they owe.
Constraint: Sum of split amounts must equal the total expense amount.
Example:
 Amount = 300
 A → 100
 B → 150
 C → 50

Balance Tracking
The system must:
Track who owes whom
Update balances after every expense
Maintain net balances
Avoid showing zero balances

Show Balances
Support:
Show all balances
Show balances for a specific user

Example Output:
B owes A 100
C owes A 50

⚙️ Technical Constraints
Use in-memory data structures only
Any programming language is allowed
Focus on clean structure and readability
Discuss your design before coding

Part 2 was there too where
– Extend Split Types ( let say percentage)
- Have friends groups concepts and display things groupwise

Interview Questions (1)

1.

Design and Implement Simplified Splitwise System

System Design

Objective: Design and implement a simplified version of Splitwise, an expense‑sharing system.

Evaluation Criteria:

  • Object‑oriented design
  • Clean abstractions
  • Code structure and modularity
  • Extensibility
  • Ability to evolve the system under new requirements
  • Communication clarity

Core System – Functional Requirements:

  • User: each user has a unique ID and a name; users can participate in expenses.
  • Add Expense: support adding an expense with the following fields:
    • paidBy – user who paid
    • amount – total amount
    • participants – list of users involved
    • splitType – type of split (see below)
    • splitDetails – additional details required by the split type

Supported Split Types:

  1. Equal Split: the total amount is divided equally among all participants.

    Example: amount = 300, users = A, B, C → each owes 100.

  2. Exact Split: each participant specifies the exact amount they owe; the sum must equal the total expense.

    Example: amount = 300, A → 100, B → 150, C → 50.

Balance Tracking:

  • Track who owes whom.
  • Update balances after every expense.
  • Maintain net balances.
  • Avoid showing zero balances.

Show Balances:

  • Show all balances.
  • Show balances for a specific user.

Example output:
B owes A 100
C owes A 50

Technical Constraints:

  • Use in‑memory data structures only.
  • Any programming language is allowed.
  • Focus on clean structure and readability.
  • Discuss design before coding.

Extension (Part 2):

  • Extend split types (e.g., percentage‑based split).
  • Introduce friend groups and display balances group‑wise.

📣 Found this helpful? Please share it with friends who are preparing for interviews!

Discussion (0)

Share your thoughts and ask questions

Join the Discussion

Sign in with Google to share your thoughts and ask questions

No comments yet

Be the first to share your thoughts and start the discussion!