- System Design Interview, draw the architecture of a system with some specific requirements on the white board.
Senior Backend Engineer Interview Questions
2,038 senior backend engineer interview questions shared by candidates
Implement a Cache class with certain Big(O) constraints and thread safety
My system design question was about an ordering system.
I got one Linked List related question and one Binary Search Tree.
Q. 1 Coding Test: Platform used for coding test: https://codeinterview.io/ Ryan Dahls github url is https://github.com/ry . Github provides information about his public commits in JSON format at https://api.github.com/users/ry/events/public . In the JSON data there is an attribute called "type" which denotes what kind of commit it was. Let's say that we give following score to Ryan Dahl based on the "type" of the commit IssuesEvent = 7 IssueCommentEvent = 6 PushEvent = 5 PullRequestReviewCommentEvent = 4 WatchEvent = 3 CreateEvent = 2 Any other event = 1 Write a nodejs program which when executed prints the score of https://github.com/ry . The answer printed on the terminal should be like this. 'Ryan Dahls github score is XXX' Calculate the score based on the item results returned only from first page of that API call. Do not worry about pagination.
Given the following code: class Asset { id: string; companyId: string; body: any; public equals(asset: Asset): boolean { return this.companyId == asset.companyId && this.id == asset.id; } } const diffUpdateAssets = (apiAssets: Asset[], dbAssets: Asset[]): Asset[] => { return apiAssets.filter( (asset: Asset) => dbAssets.find(asset.equals) ); }; const diffInsertAssets = (apiAssets: Asset[], dbAssets: Asset[], Map map): Asset[] => { return apiAssets.filter( (asset: Asset) => !dbAssets.find(asset.equals) ); }; const diffDeleteAssets = (apiAssets: Asset[], dbAssets: Asset[]): Asset[] => { return dbAssets.filter( (asset: Asset) => !apiAssets.find(asset.equals) ); }; export const syncAssets = (apiAssets: Asset[], dbAssets: Asset[]) => { return { toInsert: diffInsertAssets(apiAssets, dbAssets), toDelete: diffDeleteAssets(apiAssets, dbAssets), toUpdate: diffUpdateAssets(apiAssets, dbAssets), }; }; 1. Explain what the above code does. What's the time complexity of the code. How it can be improved? how this can be imporved. 2. Simple subquery / inner query SQL question, just learn sub queries. 3. Design question: All of our integrations in DoControl are based on webhooks notifications from the SaaS providers. In order to process those messages we perform a registration of our predefined POST webhook endpoint that will accept those events. Please plan a basic flow which will: a. Receive message from Google Drive b. Enrich its data with an api call performed per each event c. Insert the enriched record to a database.
Weigh several balls to find the heaviest in O(log n) time on a scale. This is worded so strangely that it may not be obvious at first what you're trying to solve. You're just trying to find the most efficient (least measurements) solution. "You have 9 balls that are identical but 1 weighs more than the others. Using a balance scale, how could you find the heavier ball efficiently, conserving the number of measurements?"
Trivial questions about Web Development.
Q: Was I happy being a contractor, not an employee. Kraken have no UK entity and cannot take on permanent UK staff.
Codding test + Logic tests than Interview.
Viewing 41 - 50 interview questions