System Design:
You own a competitor to AWS and want to accurately show customers their billing. Customers incur charges when their virtual machines are ON (not OFF). Build a system that shows customers a real-time amount on their bill and bills them at the end of the month.
Coding 1:
The interviewer's first question was very easy. Suppose you have a list of pairs of words. For each pair, how many characters must be changed to make them anagrams? Return an array with the number of changes required for each pair. Return -1 if a pair cannot be made into anagrams.
The second question:
Suppose you are sharing bars of gold with a friend. If a bar has odd length, you break it into pieces of size floor(length / 2) and (length + 1 / 2). If a bar has even length, you break it into two equal pieces. You can keep one of the halves each time you break a bar. Determine the least amount of gold you can give your friend.
Coding 2:
Suppose you have an array int[]. A subarray is "clean" if it has at least k distinct numbers. Return the size of the smallest "clean" subarray.
Hiring Manager:
Design a system to collect metrics and logs and allow searching.
A bunch of questions about previous projects.
The following metrics were computed from 1 interview experience for the SoFi Software Engineer role in Canada.
SoFi's interview process for their Software Engineer roles in Canada is extremely selective, failing the vast majority of engineers.
Candidates reported having very good feelings for SoFi's Software Engineer interview process in Canada.