Taro Logo

Software Developer Interview Experience - Markham, Canada

June 1, 2013
Positive ExperienceGot Offer

Process

I applied online after finishing my undergraduate degree. They did not reply for more than a month, so I asked my friend to refer me, and then things moved quickly. I was contacted directly by the hiring manager.

I took IBM's IQ test and then decided on a date for a phone interview with the hiring manager. In the phone interview, I was asked bit manipulation questions, to reverse a singly linked list, and anagram questions. It was about a 45-minute interview with all technical questions. I knew all the questions and had practiced them beforehand, so I did pretty well.

During the phone interview, I was told that I was selected for an on-site interview. I chose to have the on-site interview on the Monday of the following week. I had about 3 days to prepare. I did not choose to wait longer because I did not have a job at the time.

It was a 5.5-hour on-site interview, which included 4 interviews and 1 lunch interview. The lunch interview was not counted in the selection process. There were 3 technical interviews and 1 manager interview, each lasting one hour. In the manager interview, I was asked behavioral questions and other standard, easy HR questions. The job was related to compilers, so they asked me a lot of low-level questions, including how to reduce cache contention in matrix multiplication, and so on. Some of the coding questions were:

  • Find 2^n without using any arithmetic operator.
  • Find the double of a number without using arithmetic and lots of bit manipulation questions.
  • Reduce cache contention in given code. The code was a matrix multiplication algorithm.
  • Explain in pseudocode how overriding a function in OOP languages works. Is overriding function resolved at compile time? And what about function overloading?
  • Write a function that takes two unsigned integers and returns true if the multiplication of these two integers will overflow (meaning the number exceeds the limit of sizeof(unsigned int) bytes), otherwise returns false.
  • Design a stack using a single linked list.
  • Given an array of positive and negative integers, find a continuous subarray with the maximum sum. On the first try, I was able to write an algorithm with O(1) space and O(n) time complexity, so he was happy.
  • Write a basic hashing algorithm (then he asked why I did it that way and how I could improve). And some theory about hash functions.

If you are applying to the compiler department, be sure to prepare bit manipulation questions and know some basic things about compilers like parsing, linking, how compiled languages differ from interpreted ones, how a 32-bit compiled program differs from a 64-bit one, and other basic stuff.

Questions

Reduce cache contention on the given code. The code was a multiple multiplication algorithm. I did not have the slightest clue of how to do that.

Was this helpful?

Interview Statistics

The following metrics were computed from 42 interview experiences for the IBM Software Developer role in Markham, Canada.

Success Rate

40%
Pass Rate

IBM's interview process for their Software Developer roles in Markham, Canada is fairly selective, failing a large portion of engineers who go through it.

Experience Rating

Positive64%
Neutral26%
Negative10%

Candidates reported having very good feelings for IBM's Software Developer interview process in Markham, Canada.

IBM Work Experiences