?

Log in

No account? Create an account
Worst summer of my life, Part 1 -- Job search. - Alex Belits
abelits
abelits
Worst summer of my life, Part 1 -- Job search.

Months ago I have posted that I went to San Francisco, taken some photos and didn't post anything until now. I guess, it was a bad idea to stop writing, however every time I thought, I have something to write, I discovered that I can't do it without sounding ridiculously whiny and hopeless. So my Internet-visible writing was mostly limited to Linux-related threads on Something Awful and occasional response to other people's livejournal entries.

I came to San Francisco at the end of May with a simple and, I thought, pretty reasonable plan -- find someone to take over the business side of the company so it will be able to get funding and start production or, failing that, get a new job doing something that I am actually good at. At the beginning everything went more or less normal, and I was surprised that people still remember me after five years absence. Unfortunately from that point things went downhill. People who initially promised to help with the company flaked out or got enough of their own problems to dedicate time and money to such a long-running project. Companies who called me for interviews managed to "forget" about my applications for months.

Recruiters... I don't understand how those people expect to get paid for their work. Or who bothers paying them. They seem to take job announcements that they don't undersntand, post their versions of those announcements on Monster, Dice and Careerbuilder in the format that is even more confusing than it was originally, read posted resumes that they don't understand, either, and use straight substring matching (no regular expressions) to make decisions whom to contact.

When matching doesn't work, and it usually doesn't, they seem to have a fallback mode of just grabbing everything they can get and sending it to everyone they know, expecting job seekers to sift through the piles of irrelevant announcements, and companies' HR to do the same with piles of resumes with carefully removed contact information. It seems, demanding documents in Word format and removing contact information is THE core of their job, and everything else is optional.

When matching does work, things aren't any better. Recruiters seem to have procedures where they convert job announcements into questionnaires for candidates. However since they have no idea what most of things in those announcements mean, the results include pearls such as "For how many years have you used API?" and "How do you describe your knowledge of C, Beginner, Intermediate or Expert?". For people who don't know what it means, the first question is, for how many years have I used Application Programming Interfaces. Since pretty much everything other than bit-banging a parallel port with Christmas lights attached to it involves using some interface between pieces of software, that would be the same as asking for how long someone was programming. Logo, BASIC and whatever thing that now comes with Lego Mindstorms, qualify. And in my case the answer would be "more than 20 years".

"Knowledge of C" may sound like a reasonable question if C was some kind of a convoluted monstrosity written in late 90's in Java. Unfortunately for the poor recruiter, C is one of the languages with simplest, cleanest design ever made. The only catch is that to be able to use such a simple language a person has to have crystal clear understanding of underlying concepts, and just as clear understanding of the environment where he is using that language. So I guess, "Beginner" means "Did not reach Chapter 5 in the K&R book", "Intermediate" means "Failed the course, has some foggy idea about terminology, picked up pieces from C++, getting them terribly wrong" and "Expert" is "Did not fail the course, can use C to actually write software". Most likely the question should be "Do you know C, and how much experience do you have in using it with (whatever environment or kind of programming is relevant for the job)", but that assumes that the person asking it knows what he is talking about.

Then there were interviews. While recruiters are infuriating because most of the time they clearly operate on things for which they don't even know the definitions, interviews involve engineers and managers with whom the person is likely going to work. The problems with interviews are different, and usually merely frustrating. First of all, many companies adopted a style of interview (I think, pioneered by a certain large Internet company) where the candidate spends 40 minutes to an hour with each of 5-6 of his future co-workers. While I guess, this allows each of those people to scream "I am not going to work with this asshole|dumbass|psycho, you will hire him over my resignation letter!!!" if he finds something he dislikes, it's important to understand that for the interviewee it's 3-6 hours of nonstop talking. And mostly answering the same questions. Usually asked by people who aren't in any way prepared, or even interested in asking them because they have their own job to do. So the last person to talk to is dealing with an interviewee who is exhausted and bored nearly to death by repetition.

What brings me to the next problem -- interview questions. There are 6 distinctive categories:

  1. "What is (some obscure definition or list of parameters to some thing that everyone sane will just look up in the manual)?".

    Fortunately this insanity is getting close to becoming extinct.

  2. "Write the implementation of (some trivial algorithm or well-known libc function) on the whiteboard".

    The difficult part is not the algorithm. Ot interviewee's understanding of the language. Or lack of access to the manual where he might need to re-check the order of arguments or name of the constants. It's writing code on a whiteboard. While whiteboards are occasionally usable when teaching computer science, they lack the feature that appeared approximately at the same time people started using punchcards -- the ability to insert text between pieces of text that are already written. So someone writing in a traditional ANSI C will have trouble leaving enough space for declarations, and someone who ever used a placeholder while outlining the structure of his algorithm will quickly run out of space. Is it really too much to give the candidate a working text editor? Not a compiler or IDE, just a choice of vi, emacs and gedit/notepad/whatever? Heck, I would be fine if notepad was the only choice. As long as it's not TECO or EDLIN.

  3. Some algorithm that involves sorting or finding something duplicate or matching within it. The usual dialogue is like this (with regexps):
    Q: .*array.+(find if)|(count).*(same)|(duplicate).*assuming.*(integer)|(character).*
    A: Sort the array, then scan for whatever thing we are looking for being repeated.
    Q: Is there a way to make this faster?
    A: If the range of values is sufficiently short, use them as indexes in an array initially set to 0.
    Q: And if not? For example .+
    A: If it's possible to use a hash function and estimate the size of the hash table, we can use that.
    The only question that remains is, what did this dialogue accomplish other than establishing the fact that interviewee did not sleep through all his classes. Or maybe that he had at least one more interview before where exactly the same problem was given to him.

  4. Problems that involve application of math.

    Often good to determine if a person can derive a usable abstract model of something, however just as well it may demonstrate that he is bad at some particular area of math.

  5. Weird puzzles. I think, this tradition came from a certain OS vendor.

    Their use at the interviews completely ignores the facts that puzzles have to be solved with an assumption that they have a simple, elegant solution. What is worse, people who approach them as real-life problems will not be looking for simple (but in real life usually wrong) solutions but will try to take all relevant facts into account, thus greatly delaying the act of spewing the expected result.

  6. How a person in a non-management position handles conflict in a team.

    Usually asked by a manager whose responsibility is to manage the team in a manner that won't create constant conflicts in the first place. And supposedly with a hope of getting a honest answer such as "Does my name Dan J. Bernstein ring any bells?".

Months passed, I lived with my friends [ab]using their hospitality, accomplishing nothing but increasing level of stress. I talked to recruiters, went to interviews, then got either dead silence or outright rejection with no way to determine what horrible flaws I have supposedly demonstrated. Some interviewers seemed just disinterested.

In the end I got a job. It was posted on Craigslist, company's HR responded to my email, two interviews were about things relevant to the work that I am supposed to do, and the job itself is in the area that I find interesting. Why am I so surprised when something normal happens?

Current Mood: accomplished accomplished

2 comments or Leave a comment
Comments
mackys From: mackys Date: October 13th, 2007 11:33 pm (UTC) (Link)
Why am I so surprised when something normal happens?

Because it does not happen very often at all. (G)

Glad to hear things are going better for you in Silly Valley. I know firsthand how much it sucks to be hopelessly underemployed.
From: jigenm4c Date: October 15th, 2007 06:01 am (UTC) (Link)
See, what's interesting about this is that when I've looked for jobs as well, recruiters have NEVER worked. Ever. I've basically given them my resumes, and asked them to send me stuff that I can moonlight on. (insert dead silence here where appropriate.)

So, when I look for jobs, I don't use Monster, I don't use Dice, or anything else like that. I look on Craigslist. I have found my past 3 jobs on Craigslist. I will continue to use Craigslist until that site is either dead or gets bought out and requires some stupid registration process.

I attribute my successful line of previous work to Craigslist. Therefore, I will continue to use it until something better (?) comes along.

I share your pain and frustration, Alex. It's good to have work. ^_^;
2 comments or Leave a comment