Microsoft Interview Question for Software Engineer / Developers


Country: India
Interview Type: In-Person




Comment hidden because of low score. Click to expand.
5
of 7 vote

#include<stdio.h>

int main()
{
    int a[20];
    int num,k,i,c;
    printf("Enter number of elements\n");
    scanf("%d",&num);
    printf("Enter elements\n");
    for(i=0;i<num;i++)
    {
                 scanf("%d",&a[i]);           
    } 
    printf("Enter k\n");
    scanf("%d",&k);
    c=1;
    for(i=1;i<num;i++)
    {
                      if(c==k)
                      {
                              printf("kth Smallest with k=%d is %d",k,a[i-1]);
                              break;
                      }
                      if(a[i]!=a[i-1])
                              c++;
    }
	scanf("%d",&i);
	return 0;  
}

- Sachin June 02, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

@Sachin : Gud one...

- Jay July 06, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

array could be sorted in decreasing order, may have to repeat the same starting from the end of array and pick min of two kth elements from end-points

- just_do_it August 06, 2014 | Flag
Comment hidden because of low score. Click to expand.
1
of 1 vote

if the array is like 1,2,2,2,3,5,5,7,7,7,7,10
i=1,c=1;
while(c<k && i<n)
{
if(a[i-1]!=a[i])
c++;
i++;
}
if(c==k)
small=a[i-1];

- Anonymous April 29, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

tweaking a little.

i=1,c=1;
while(c<k && i<n)
{
if(c==k)
{
small=a[i-1];
break;
}

if(a[i-1]!=a[i])
c++;
i++;
}

- Anuj May 05, 2012 | Flag
Comment hidden because of low score. Click to expand.
1
of 1 vote

Assuming the problem is for a 2-D (r*c) array, here is my solution.

We maintain a min-heap which initially contains the first element of each column (total c elements). We also maintain the row,column index of each element along with the element.

struct arrayelem
{
    int elem;
    int rowIndex;
    int colIndex;
};

// Initially the min-heal contains the first element of each column.

while (--k > 0)
{
    topelem = min-heap->pop();
    // The element int the next row in the same column as topelem is pushed in the heap
    newRowIndex = ++topelem->rowIndex;
    newColIndex = topelem->colIndex;
    newelem = new arrayelem(array[newRowIndex ][newColIndex], 
                                                                            newRowIndex, newColIndex);
    min-heap->push(newelem);
}

return newelem->elem;

- arnie41178 May 04, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

neo.. i think the array would have been unsorted...

- coder87 April 28, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

No the array is a sorted linear array.
Just think of an array like 1 1 2 2 3 3 4.
In this 2rd smallest element (k=2) is 2 which is not a[2-1].

- neo April 28, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

use something like a hash table and return the value when the size of the hash table is k. You should specify you're looking for the Kth DISTINCT number in a sorted array...

- rdo April 29, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 vote

Use a K size max heap to keep tack of the k smallest elements. And if it needs to deal with the remove values, just input the distinguished values into heap.

- Maggie April 28, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

Why you want to use heap here, as unnecessarily it will increase the time complexity to O(k log n). On the other hand, if you just see Sachin's solution, its simply O(k).

- anujarora June 03, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

To make my point more clear, its an sorted array, thus, avoid heap.
If it was unsorted array, then definitely heap would have been a good approach.

- anujarora June 03, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 vote

//nth smallest element in arrat arr[][] having r rows and c columns is
if (n<(r*c)
small=arr[(n%r)-1][(n/r)+1]

- Anonymous April 29, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

//nth smallest element in arrat arr[][] having r rows and c columns is
if (n<(r*c)
small=arr[(n%r)-1][(n/r)+1]

- Anonymous April 29, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

//nth smallest element in arrat arr[][] having r rows and c columns is
if (n<(r*c)
small=arr[(n%r)-1][(n/r)+1]

- Anonymous April 29, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

shouldn't i++; be outside the if(a[i-1]!=a[i]) struct

- Harry June 02, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

You are right harry...

- topcoder June 02, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 vote

int find_n(int x[][3],int row, int col, int n) {

int r =0 , c = col -1;
while( r < row && col >=0) {
if(x[r][c] == n)
return n;
else if ( x[r][c] > n)
c--;
else
r++;
}
return -1;
}

- mahesh April 30, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

int a[] = {1,2,2,2,4,4,4,4,5,5,7,7,7,7,8,9,9,12,12};
int elem = 5;
int count = elem-1;
int i=0;
for(;i<count;i++){
if(a[i]==a[i+1])
count++;
}

System.out.println(a[i] + "is the kth element");

- Anonymous May 01, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

int a[] = {1,2,2,2,4,4,4,4,5,5,7,7,7,7,8,9,9,12,12};
int elem = 5;
int count = elem-1;
int i=0;
for(;i<count;i++){
if(a[i]==a[i+1])
count++;
}

System.out.println(a[i] + "is the kth element");

- lohi May 01, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

Assuming the problem is for a 2-D (r*c) array, here is my solution.

We maintain a min-heap which initially contains the first element of each column (total c elements). We also maintain the row,column index of each element along with the element.

struct arrayelem
{
    int elem;
    int rowIndex;
    int colIndex;
};

// Initially the min-heal contains the first element of each column.

while (--k > 0)
{
    topelem = min-heap->pop();
    // The element int the next row in the same column as topelem is pushed in the heap
    newelem = new arrayelem(array[++topelem->rowIndex][topelem->colIndex], ++topelem->rowIndex, topelem->colIndex);
    min-heap->push(newelem);
}

return newelem->elem;

- Anonymous May 04, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

Assuming the problem is for a 2-D (r*c) array, here is my solution.

We maintain a min-heap which initially contains the first element of each column (total c elements). We also maintain the row,column index of each element along with the element.

struct arrayelem
{
    int elem;
    int rowIndex;
    int colIndex;
};

// Initially the min-heal contains the first element of each column.

while (--k > 0)
{
    topelem = min-heap->pop();
    // The element int the next row in the same column as topelem is pushed in the heap
    newRowIndex = ++topelem->rowIndex;
    newColIndex = topelem->colIndex;
    newelem = new arrayelem(array[newRowIndex ][newColIndex], 
                                                                            newRowIndex, newColIndex);
    min-heap->push(newelem);
}

return newelem->elem;

- arnie41178 May 04, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

Kth_Smallest_Element()
{
int j = 1;
int i = 0;
int a[50]={1,2,2,3,3,3,4,5,6,7,8};
int n = 11;

int k = 3;

for(i=0;i<n ;i++)
{

if(a[i] != a[i+1])
{
j++;
if(j == k)
{
break;
}

}

}
printf("\nIndiex = %d Values is = %d",(i+1) ,a[i + 1]);
}

- DeviPrasad May 05, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

class FindKthSmallestElementInSortedArray
    {
        public int[] array;

        public FindKthSmallestElementInSortedArray()
        {
            array = new int[10];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = 0;
            }

            array[0] = 1;
            array[1] = 1;
            array[2] = 1;
            array[3] = 5;
            array[4] = 5;
            array[5] = 9;
            array[6] = 20;
            array[7] = 20;
            array[8] = 50;
            array[9] = 50;
        }

        public int Solve(int k)
        {
            if (k < 1 || k > array.Length)
            {
                return -1;
            }

            if (k == 1)
            {
                return array[0];
            }

            int cnt = 1;
            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] != array[i + 1])
                {
                    cnt++;
                }

                if (k == cnt)
                {
                    return array[i + 1];
                }
            }
            return -1;
        }
    }

- me May 05, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

class FindKthSmallestElementInSortedArray
    {
        public int[] array;

        public FindKthSmallestElementInSortedArray()
        {
            array = new int[10];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = 0;
            }

            array[0] = 1;
            array[1] = 1;
            array[2] = 1;
            array[3] = 5;
            array[4] = 5;
            array[5] = 9;
            array[6] = 20;
            array[7] = 20;
            array[8] = 50;
            array[9] = 50;
        }

        public int Solve(int k)
        {
            if (k < 1 || k > array.Length)
            {
                return -1;
            }

            if (k == 1)
            {
                return array[0];
            }

            int cnt = 1;
            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] != array[i + 1])
                {
                    cnt++;
                }

                if (k == cnt)
                {
                    return array[i + 1];
                }
            }
            return -1;
        }
    }

- me May 05, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

class FindKthSmallestElementInSortedArray
    {
        public int[] array;

        public FindKthSmallestElementInSortedArray()
        {
            array = new int[10];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = 0;
            }

            array[0] = 1;
            array[1] = 1;
            array[2] = 1;
            array[3] = 5;
            array[4] = 5;
            array[5] = 9;
            array[6] = 20;
            array[7] = 20;
            array[8] = 50;
            array[9] = 50;
        }

        public int Solve(int k)
        {
            if (k < 1 || k > array.Length)
            {
                return -1;
            }

            if (k == 1)
            {
                return array[0];
            }

            int cnt = 1;
            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] != array[i + 1])
                {
                    cnt++;
                }

                if (k == cnt)
                {
                    return array[i + 1];
                }
            }
            return -1;
        }
    }

- me May 05, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

class FindKthSmallestElementInSortedArray
    {
        public int[] array;

        public FindKthSmallestElementInSortedArray()
        {
            array = new int[10];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = 0;
            }

            array[0] = 1;
            array[1] = 1;
            array[2] = 1;
            array[3] = 5;
            array[4] = 5;
            array[5] = 9;
            array[6] = 20;
            array[7] = 20;
            array[8] = 50;
            array[9] = 50;
        }

        public int Solve(int k)
        {
            if (k < 1 || k > array.Length)
            {
                return -1;
            }

            if (k == 1)
            {
                return array[0];
            }

            int cnt = 1;
            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] != array[i + 1])
                {
                    cnt++;
                }

                if (k == cnt)
                {
                    return array[i + 1];
                }
            }
            return -1;
        }
    }

- me May 05, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

class FindKthSmallestElementInSortedArray
    {
        public int[] array;

        public FindKthSmallestElementInSortedArray()
        {
            array = new int[10];

            for (int i = 0; i < array.Length; i++)
            {
                array[i] = 0;
            }

            array[0] = 1;
            array[1] = 1;
            array[2] = 1;
            array[3] = 5;
            array[4] = 5;
            array[5] = 9;
            array[6] = 20;
            array[7] = 20;
            array[8] = 50;
            array[9] = 50;
        }

        public int Solve(int k)
        {
            if (k < 1 || k > array.Length)
            {
                return -1;
            }

            if (k == 1)
            {
                return array[0];
            }

            int cnt = 1;
            for (int i = 0; i < array.Length - 1; i++)
            {
                if (array[i] != array[i + 1])
                {
                    cnt++;
                }

                if (k == cnt)
                {
                    return array[i + 1];
                }
            }
            return -1;
        }
    }

- me May 05, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

int kthSmallestElementUnsorted(vector<int> V, int k)
{
	V.erase(std::unique(V.begin(), V.end()), V.end());
	priority_queue<int> pq(V.begin(), V.end());
	for (unsigned int i=0; i<V.size()-k; i++)
		pq.pop();
	return pq.top();
}

int kthSmallestElementSorted(vector<int> V, int k)
{
	V.erase(std::unique(V.begin(), V.end()), V.end());
	return V[k-1];
}

- hatem.faheem@gmail.com May 17, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

If the input is an array
you can add this line

vector<int> V(arr, arr+size);

to create the vector

- hatem.faheem@gmail.com May 17, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 vote

struct element{
  int data;
  int row;
  int col;
}

//assume a MinHeap class is available to contain element(s)
if (k==1) return a[0][0];
heap.insert(element(a[0][0], 0,0);
Element ele;
while (ele = heap.getElement());
{
  k--; if (k ==0) return ele.data;
  if (ele.row+1< m) {heap.insert(element(a[ele.row+1][ele.col], ele.row+1, ele.col));};
  if (ele.col+1<n) {heap.insert(element(a[ele.row][ele.col+1], ele.row, ele.col+1));};
  
  /*not cleanest of the code, but the idea will work*/
}

- Ashish May 18, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

One can do it like a quicksort.
1. Take one arbitrary element (first one).
2. Those who are smaller go to its left, those who are bigger go to its right. Position of the element is say pos
3. If the pos=k, then we are done
4. If k<pos we repeat the reasoning starting from the left array.
5. Else repeat the reasoning with the right array.

- BBB June 03, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

I meant unsorted array algorithm here. Sorted was already solved above.

- BBB June 03, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

This would not give the correct solution in case when the elements are repeated.

- abcd_win June 13, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 vote

Add the sorted Charecters in the string into a LinkedHashSet and then later iterate to the K-1th position of the LInkedHashSet and retrieve the element which will be the Kth smallest value.

- hmm why dont u think this way June 03, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

Well there are multiple approaches.

Approach 1:

Take a max heap & insert first k unique elements[can be easily checked]. Heapify the heap.
Now, when a new element is smaller than the head of the heap,replace head with this new element heapify it. At the last, the head of the heap indicates kth smallest element if size of the heap is k else kth smallest element doesn't exist.

Time complexity: O(NlogK)
Space complexity: O(K)
Approach 2[A better approach]:

The elements may be duplicated right. So, check for unique elements by comparing with its previous elements & stop if unique variables found so far counts to k.
Time complexity: O(N)
Space complexity: O(1)
Approach 3[A better approach(may be)]:

A modified version of quick sort partition algorithm can also be used. But possibly it will lead to a worst case as the array is already sorted.
here two questions arise:
1. Does it work if the array contain duplicates?
2. Would it be better than my second approach?

Approach 4:
Here's an O(kLogN) solution:
Using a variation of Binary Search to find the last occurrence of a given value,
Get 1st value - O(1).
Search for last occurrence of this value O(logN), then look at next element to get 2nd value - O(1).
Repeat until kth value is found.

- Aashish June 21, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

Another approach.
Probably this would be better i the number of duplicates are more.
1. Pick the first element.Find the last occurrence of this element.
2. Increment the pointer to pointer to next unique element. In this way, number of unique elements can be tracked[with the help of count].
3. Anytime if cunt==k, print corresponding element.

As said earlier, if the number of unique elements are duplicated manier times, this approach is efficient[Lets say all elements are duplicated]. However, if all elements are unique, then this will fall into the worst case of nlogn.
I am presenting this idea as it can be used as per the situation.

int findLastOcurrence(int *arr,int item ,int l,int h)
{
        int mid;
        if(l==h)
                return arr[l]==item?l:INT_MAX;
        if(l==h-1)
                return (arr[h]==item?h:(arr[l]==item?l:INT_MAX));
        mid=(l+h)>>1;
        if(item>=arr[mid])
                return findLastOcurrence(arr,item,mid,h);
        else
                return findLastOcurrence(arr,item,l,mid-1);
}
 
void find(int *arr,int size,int k)
{
        int count=1,i,last;
 
        for(i=0;i<size;count++)
        {
                if(count==k)
                {
                        printf("%d ",arr[i]);
                        return;
                }
                last=findLastOcurrence(arr,arr[i],i,size-1);
 
                i=last+1;
        }
        printf("Not found");
}

Complete code: ideone.com/LKtfl

- Aashish July 06, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 vote

I dont understand the need of complex data structures,
take to indexes prev and current, and a counter count, increment count oly if current is not equal to previous,keep incrementing prev and current as well... stop when count is equal to k...
correct me if im missing something...

- chamy50 July 15, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
-1
of 1 vote

for(int i=0;i<arr.length;i++)
{
 if(i==0) cnt=0;
 else if(arr[i]<arr[i-1]) continue;
 else 
 {
  cnt++;
  if (cnt==k-1)
  {
   kthSmall=arr[i];
   break;
  }
 }
}
return kthsmall;

- Max April 29, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
-2
of 4 vote

u r kidding right, in a sorted array kth smallest elem would be arr[k-1](if its non-decreasing). Did MS really as this Qs.

- deam0n April 28, 2012 | Flag Reply
Comment hidden because of low score. Click to expand.
0
of 0 votes

array is row wise and column wise sorted... see the example

1 10 20 30
2 12 21 31
4 15 50 52
do you think 5th smallest is arr[5-1] element that is 2 ???
this is tough question unless you know the algorithm...

- Anonymous April 28, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

Qs. doesn't tell any such specifics. Let me think on this.

Edit:

This problem can always be converted into finding kth elem in n=N/s(distibution size) sorted arrays.

But here we will not be able to take advantage of column-wise sorting scenario.May be someone can put more light on it.

- deam0n April 28, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

young tableau algorithm

- Anonymous April 28, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

column = k/rowCount
positionInColumn = k%rowCount

- rdo April 29, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

+1 for rdo

- maverick April 29, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

-1 for rdo.

A big slap to neo(the OP). First he does not mention the array is 2D and then questions rukawa's reasonable interpretation as if it is rukawa's fault.

Unfortunately, neo is not the only ONE to post questions like this. And wtf neo? You forgot to mention MATRIX? The "Array Revolutions"? LOL.



@rukawa: For 1D array, a version that might interest you: Perhaps the elements can be non-unique and the kth smallest is based on distinctness?

- Anonymous April 30, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

@anonymous

Obviously it was a very generic description so i made a few assumptions and just solved it with the idea that it was 2d array. If you want to use a distinct 1d array just use a hash table with a size count to return the kth element.

- rdo April 30, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

@rdo. The 2D version: rows sorted and columns sorted. Your algo fails for that.

- Anonymous April 30, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

@anonymous: Give some work to your common sense. When i say array no one assumes its 2D so stop using ur extra brains and think for the solution.
Its a sorted linear array and i want the kth smallest element. If you have questions u have to clarify not assume. ofcourse kth smallest element means its distinct coz if its repeated then its not smallest.

- neo May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

Oh shut up neo. There are multiple anonymouses about.

- Anonymous May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

That is exactly the wording from the interviewer. And there is a way to clarify not to talk nonsense out here.

- neo May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

Shut up again, neo. You can always add a paragraph in the ORIGINAL POST saying you asked for clarification and so and so is the definition of kth smallest you got.

Kth smallest is NOT well defined and needs clarification.

You made an assumption (when you wrote the question) that it assumes distinct. But that need not be the case, as the "nonsense" posts out here suggest.

Then you appear 3 days later (which is internet eternity!) and talk about "there is a way to clarify" as if you intended that all the while. BullShit.

It is good that you are posting questions with the intention of helping. But you have a negative effect if you post incomplete and ambiguous questions.

If there was a dialogue with the interviewer about clarifications, include that!

- Anonymous May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

if an array is 0 0 0 0 0
any person will answer 2nd smallest as 0 ??? ... please grow up... if u read the post i clarified the first day ...
so just stop ur stinky posts... its not helping anyone

- neo May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

Post the F***ING CLARIFICATION in the ORIGINAL POST.

(You can edit them, right?)

- Anonymous May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

@neo.

Really, how hard is to for you to understand that simple fact?

- Anonymous May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

As to your question about 00000, there is no 2nd smallest. IDIOT.

- Anonymous May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

Just like 1,2,3 has no 10th smallest. What a F***ING MORON.,

- Anonymous May 01, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

merge sort first and then quickselect

- milo May 02, 2012 | Flag
Comment hidden because of low score. Click to expand.
0
of 0 votes

@anonymous : lol ...

- neo May 02, 2012 | Flag


Add a Comment
Name:

Writing Code? Surround your code with {{{ and }}} to preserve whitespace.

Books

is a comprehensive book on getting a job at a top tech company, while focuses on dev interviews and does this for PMs.

Learn More

Videos

CareerCup's interview videos give you a real-life look at technical interviews. In these unscripted videos, watch how other candidates handle tough questions and how the interviewer thinks about their performance.

Learn More

Resume Review

Most engineers make critical mistakes on their resumes -- we can fix your resume with our custom resume review service. And, we use fellow engineers as our resume reviewers, so you can be sure that we "get" what you're saying.

Learn More

Mock Interviews

Our Mock Interviews will be conducted "in character" just like a real interview, and can focus on whatever topics you want. All our interviewers have worked for Microsoft, Google or Amazon, you know you'll get a true-to-life experience.

Learn More