I applied online. The process took 3 weeks. I interviewed at SigFig (Manchester, NH) in Nov 2021
Interview
4 rounds interview all video calls with various members and on system design and database .
Database online test with pl/sql and big data, moving to new stack in the next year
I applied online. The process took 3 weeks. I interviewed at SigFig (San Francisco, CA) in Jan 2018
Interview
Intense. There were a lot of online exercises. Good design discussion. Felt like there were a lot of possible ways to answer. You didn't have to be perfect but they explored what you depth was with these.
I applied through a staffing agency. I interviewed at SigFig
Interview
I had a telephonic interview round. He told me in much detail about the company and asked me about myself. He then pasted a problem and asked me to code. I had my screen shared. There seemed to be no hurry. Once I explained him my approach, he didn't interrupt even once. Later, he discussed the code with me - discussed minor optimizations. He then asked me about my profile apparently focused on process, code guidelines, code reviews, testing etc.
Interview questions [1]
Question 1
Coding round (screen shared)
You are given a function that, for a particular user, returns a list transactions for the shares they bought or sold in the format "<date>,<BUY|SELL>,<company>". You are given another function that returns a list of friends of a particular user.
Now, for a particular user, you need to print the friend alerts in the following format: "<net_trades>,<BUY|SELL>,<company>" i.e. total number of shares bought or sold by his friends for every company.
e.g. if the transactions of his friends are
"2018-01-01,BUY,Company-1"
"2018-01-02,SELL,Company-1"
"2018-01-03,BUY,Company-1"
"2018-01-04,SELL,Company-2"
then the output should be
"1,BUY,Company-1" -> 2 buy 1 sell = 1 buy
"1,SELL,Company-2"
Note that the ordering should be on the basis of net_trades (irrespective of buy/sell info). Also, if the net_trades is same, then the ordering must be on the basis of company name.
Think of the best data structure to be used. Moreover, how can you optimize if you are told to do the same thing for every user (1000 of them).