← Back to Directory

Sigmacomputing

Mid-sized

Sigma Computing is a cloud-based business intelligence and analytics platform that enables users to explore, analyze, and visualize data directly from cloud data warehouses using a familiar spreadsheet-like interface. It is known for making data analysis accessible to non-technical business users without requiring SQL or coding expertise.

7 interview notes · updated Jul 2026

Sigmacomputing·Software Engineer·Technical Phone Screen

Jun 2026
Interviewed for a software engineering role at Sigmacomputing and got a pretty involved coding problem around implementing a pivot table from scratch. Three parts, each building on the last, and I was not fully prepared for how deep it went.
  • Implement a basic 2D pivot table in memory: given a list of row maps with categorical and numeric columns, group by two categorical columns and sum the numeric column, then print the result as a text table.
  • Extend the pivot table to include row totals, column totals, and a grand total in the printed output.
  • Generalize the pivot table so that each axis can be defined by a list of column names rather than a single column, forming composite tuple keys for rows and columns.

“Started okay with a nested map approach, row key to col key to running sum.”

View Post

Sigmacomputing·Frontend Engineer·Technical Phone Screen

Jun 2026
Sigma Computing frontend interview that went way deeper into CS fundamentals than I expected. The whole session was basically one big design problem around spreadsheet internals, which felt pretty on-brand for a company that builds spreadsheet software.
  • Design and implement a Spreadsheet class with a finite ordered set of columns, sparse storage for non-zero cells, and an API supporting get, set, and printFirstNLines operations. The set method should accept either integer values or formula strings referencing other cells.

“This was the whole interview.”

View Post

Sigmacomputing·Software Engineer·Onsite - System Design / Architecture

Jun 2026
Interviewed for a software engineering role at Sigmacomputing and got a meaty spreadsheet design problem that went deeper than I expected. The cycle detection piece especially caught me off-guard because I hadn't thought carefully about eager vs lazy evaluation trade-offs in a while.
  • Design a spreadsheet that supports formula cells with dependency tracking. How would you extend a basic get/set cell interface to handle formulas like ADD(cell_a, cell_b), and how do you detect cycles in the dependency graph before accepting a write?
  • Walk through the trade-offs between eager evaluation (recompute formula values whenever a dependency changes) and lazy evaluation (compute only when the cell is read). When would you choose one over the other?
  • How would you propagate or invalidate cached values when an upstream cell in the dependency graph is updated?

“This was the core question and it took a while to even scope properly.”

View Post

Sigmacomputing·Software Engineer·Technical Phone Screen

Jun 2026
Interviewed for a software engineer role at Sigmacomputing and got a data aggregation problem that seemed straightforward but had a decent follow-up layer to it. The pivot table framing was a bit unusual compared to typical coding rounds.
  • Implement a function that builds a pivot table from a list of records, where each record has a row key, a column key, and a numeric value. Aggregate by the row/column pair and return a structure that supports efficient lookup. Then explain how you'd extend it to support average and minimum in addition to sum.

“Started with a nested dict keyed by row then column, which felt right.”

View Post

Sigmacomputing·Frontend Engineer·Onsite - Coding / Algorithms

Jun 2026
JS coding round at Sigmacomputing for a frontend role. The main problem was a task manager class and it had a few follow-ups that pushed into promise chaining and ordering logic. Not the hardest thing I've done but the follow-ups added up fast.
  • Implement a task manager class that runs callbacks in the order they were called, even if the callbacks themselves have different execution delays. For example, if run_task(task2) is called before run_task(task1), task2 should execute first regardless of its timeout.
  • Follow-up: modify the task manager so that each run_task call accepts a list of tasks. Tasks within a single list should resolve in order of their timeouts, but the order between separate run_task calls must still be preserved.

“The core concept clicked pretty quickly for me since it's basically a queue wrapped around promises.”

View Post

Sigmacomputing·Software Engineer·Technical Phone Screen

May 2026
Sigma Computing interview for a software engineer role, one technical round focused on designing a spreadsheet data structure from scratch. The problem was more open-ended than I expected and the discussion about storage trade-offs ended up taking longer than the actual coding.
  • Implement a basic spreadsheet class with a fixed number of columns and dynamic rows. Include methods to get a cell value, set a cell value, and pretty-print the first N rows including empty cells.
  • Walk through the trade-offs between using a list of lists versus a sparse dictionary for the underlying cell storage. Consider memory usage, access time, and how each handles mostly-empty spreadsheets.
  • How would you extend this spreadsheet API to support formula cells, where a cell's value is computed from other cells?

“I started with a list of lists because it felt natural, then the interviewer pushed on what happens when most cells are empty and I had to walk back and pitch a dict keyed on (row, col) tuples instead.”

View Post

Sigmacomputing·Software Engineer·Onsite - Coding / Algorithms

May 2026
Coding round at Sigmacomputing for a software engineer role. The main problem was building a pivot table from scratch, which sounds straightforward but has a lot of moving parts once they start asking follow-ups about aggregation, missing cells, and complexity.
  • Implement a basic pivot table: given a list of records with multiple fields, and a pivot specification defining row fields, column fields, and value fields with aggregation functions (sum, count, average, min, max), produce a 2D pivot table with aggregated values per (row-key, column-key) cell. Discuss data structures, missing cell handling, header sorting, multiple aggregations, grand totals, and time/space complexity.

“This is the kind of problem that feels manageable until you start coding and realize how many edge cases you glossed over.”

View Post