Wednesday, January 14, 2015

On Canadian Employers' Antics, Again

Got pinged by a local (Toronto) recruiter with a hook, line et sinker that ran like
Wanted to see if you would be interested in intermediate / senior embedded systems C or Java on Linux developer position with our client , fast growing (100+ employees), transportation software development firm, west of Toronto. [...] Call me
So I started probing about jd, location, $. Being that I am in Boston I requested a phone interview first, to sort them out (the jd indicated that they wanted and Embedded Linux expert and a C#/MS-SQL maven in one body -- cruel, eh?).

He came back with

G**b liked your profile but would like to proceed to 30 min logic test online before scheduling phone call interview.
Interesting: on one hand they are looking for
  • 5+ years embedded development in C
  • 3+ years embedded Linux development
but on the other they screen people like new grads [with a timed test no less!].

Myself I am not opposed to online professional proficiency tests but alas this was an IQ test, you known if 3 squares point this way how would the next 2 point?. But I never liked this kind of riddles and am not good at them as they bore me to tears.

The test did have 3 [simple] programming questions which I will show below. Alas they were phrased in VisualBasic and I only have the C transliteration.

I sent back the prog solutions and they insist on going thru the whole shebang.

So this lead nowhere and to me it shows how some Canadian employers are highly disrespectful with the candidates' time and competence (to me it would have been more fruitful to spend the same amount of time to chat with them on the phone than to waste it on dumb riddles).

(The connoisseurs have enjoyed thes antics with G**b, Mo*ega and other such shops with weird hiring policies.)

-ulianov

1.=======
int f(int x)
{
  if(x == 1) return 1;
  return x * f(x-1);
}
int main()
{
  int y = f(8); // What does it print? ==> 8! = 40320
}

2.=====

#include 

int XYZ(int Y)
{
  int X = 20;
  printf("%d\n", X);
  return X*Y/3;
}
int main()
{
  int X = 10;
  printf("%d\n", X);
  printf("%d\n", XYZ(X));
  printf("%d\n", X);
  return 0;
}
/** What is the output?
10
20
66
10
**/

3.========
#include 

int XYZ(int Y)
{
  int X;
  int Z = -10;
  for(X = 1; X <= Y; X++) {
    if((X % 2) == 0) Z +=3;
    else             Z++;
  }
  return Z;
}
int main()
{
  int X = 10;
  printf("%d\n", XYZ(12));
  return 0;
}
/** What is the output?
14
**/