A recruiter called me after I started spamming job sites with my updated resume. He wanted to know if I would be interested in an automation position for a defense contractor. I asked if it required a security clearance, and he indicated that it would. I said sure, but I knew it took a while for these things, since one of my good friends does investigation work for security clearance. I asked about what I would be doing before the clearance came, and he said to worry about that when it came time for an offer.
He hooked me up with the hiring manager, and we talked on the phone. They were doing imaging solutions for the Navy, which is all he could tell me. He asked the right questions about my background, and indicated he would be in touch.
The recruiter then sent me a homework problem to work on as part of the application process:
Write a program or script that will find all the files beneath a specified directory in which a serial number is found in more than one file. A serial number is in the format of two capital letters, one dash, and 4 digits. For example AB-1234.
At a minimum, the output will be a list of files.
If file1 contains “AB-1234”, file2 contains “ZZ-9999”, file3 contains “AB-1234”, file4 contains “AB-9999”, and file5 contains “ZZ-9999”, then the output would include all files except file4 since it does not match any other files.
You may use references to look up syntax, but please write the code yourself. There are many ways to solve this. Please explain your solution and the choices you made to get there.
I asked what the preferred language or environment was. They said Perl, so I wrote a Perl script to do the work. Took about 3 hours. I wrote back:
I am enclosing my program.
I tested it my creating the test case described with the example. I also made sure it worked with unicode characters.
I can come up with many other test cases, as well as a perl script to generate them and run the program to test it. However, I am out of time for today. If your client wants me to do that, I can have that tomorrow.
I am also enclosing my updated resume.
(Just love it when I see typos seven years later. “I tested it my creating…”)
Anyway, after a couple of days the hiring manager called me back, and we talked.
“Well, your program basically worked, although it got the sorting backwards. That wasn’t specified very well, though.”
“We also had trouble getting it to work. We had to create a virtual machine and install a new enough Perl plus the modules for Unicode to work. But we did not specify a perl version nor acceptable packages, so that’s on us also.”
He started talking about what next steps were, but honestly, he sounded tense, and uneasy, and not very excited. When he stopped, I piped up:
“Listen. Just listening to you talk about this, I don’t get the impression you are looking forward to continuing the interviewing process. You seem reluctant with every word you are saying. Am I right to say that you really would just not rather continue the process, but you are doing it because I met the letter of your hiring process?”
He paused a long time.
“I would say that that is an accurate assessment.”
I said, “Then let’s stop. If you are not excited about moving forward with hiring me, you won’t be excited about having me around, particularly while waiting for my clearance to come through. Let’s not waste each other’s time here. No hard feelings.”
He said, thoughtfully, “You are perceptive. I was not looking forward to this. Very well, we won’t move forward. Good luck to you.”
“And to you.”