[USA] Sigma Computing, First Round
Summary
I completed my first-round interview at Sigma Computing, which focused on designing and implementing a spreadsheet tool with various functionalities including basic cell operations, formula support, and considerations for design extensibility.
Full Experience
I recently had my first-round interview with Sigma Computing, a B2B SaaS startup known for its analytics tooling, which competes with products like Tableau. For anyone looking to bypass the intense LeetCode grind, I genuinely recommend exploring opportunities at Sigma Computing, as they are actively hiring across various roles. My interview experience was very collaborative; the interviewer was relaxed and supportive. I felt the focus was more on fundamental understanding and problem-solving rather than rote memorization of algorithms. They were also flexible about the programming language, encouraging me to use whatever I was most comfortable with.
Interview Questions (1)
Your goal is to implement a spreadsheet tool just like you'd see in Sigma's product. The spreadsheet should look like Google Sheets (so you have row numbers, columns, etc). Spreadsheet is initialized by giving the list of columns, so there are "infinite rows" but "finite columns".
Part 1: Basic functionality
Implement the following functions:get_cell(row, col): Given (row, col), get the value of the cell. Remember that the spreadsheet has "infinitely many rows", but finitely many columns.set_cell(row, col, value): Set cell at(row, col)to a given value.print_firstn_rows(n): Print the first N rows of the spreadsheet.
Part 2: Formula Cells
Support ability to configure formula cells (eg: in google sheets, you can have something like=ADD(C7, D4)). You will only be supporting the ADD operation. Don't worry about subtraction, multiplication, division. Showcase good testing of edge cases that may come up (eg: formula cycles).
Part 3: Followups
- What if you wanted to support an
add_column()interface. How would you do that? - What about
delete_column()interface? - Code cleanups to remove unnecessary code.
Preparation Tips
My experience suggests that extensive LeetCode grinding isn't necessary for these types of interviews. Instead, focus on understanding fundamental computer science concepts well and be comfortable using your preferred programming language, as long as it's not outdated.