My Profile - 5 years of experience from India and Abu dhabi , pursuing Masters in Software Engineering from ASU. I have good amount of experience in Distributed services, Kafka, zookeeper. I feel confident in speaking about LP questions. Good Experiences with both SQL and NoSQL DB's.
Status: Experienced Software Engineer and pursuing Master's in Software Engineering at ASU
Location: CA
Date: Feb , 2022
Round1 Interview with HR (generallly includes information about going over resume, salary expectation, background experience, location, sponsorship, tech stack you know
Round2 1 hr Interview with Director of Engineering
Asked about project and solved one coding challenge together
Coding question - Create stack data structure from scratch without using any of the collections classes
stack push , pop , unlimited size,Result Successfully completed it.
/*
Find the number of occurance of String s2 in string s1 and letters of s1 do not need to be consecutive.
Complete the 'getSubsequenceCount' function below.
The function is expected to return a LONG_INTEGER.
The function accepts following parameters:
1. STRING s1
2. STRING s2
// s1 - AB, s2 - A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C
*/Result - Solved using backtracking (I can add solution too if needed , please let me know in the comments
Implement Hashmap right from the scratch
Implement - get, put, delete, hash function, collision resolution if two value yields to same hash code.Result completed using LinkedList
Coding question -
Construct a comparator that can be used to sort an array of version number strings in ascending order
e.g. versionSort(new String[]{"4.5.1","10","0.99","4.5","1.0.0.1"} => ["0.99","1.0.0.1","4.5","4.5.1","10"]System design question -
We need a system to receive and re-distribute transaction events, at a rate of approximately
3000 messages per minute. Each message is approximately 2kb in size. This system must
incorporate the following:
- Reliability: any event that we claim to have successfully received cannot be lost
- Auditability: we need to have a historical record of every event retained for 7 years, for regulatory purposes
- Multi-Distribution: we need to be able to forward these events to multiple consumers, via either push or pull
- Security: only authorized producers can insert events, only authorized consumers can receive events
Design something capable of handling the above requirements. Any and all tools/technologies are available to you.
Feel free to make use of the whiteboard to the diagram.
/*
Construct a method that when given a string finds all possible unique permutations of that string
e.g. permute("abc") => ["abc", "acb", "bac", "bca", "cab", "cba"]
permute("aba") => ["aba", "aab", "baa"]
*/Result Rejected :(