Saturday, April 19, 2008

DWIM! ("Do What I Mean!")

I had an interview yesterday. It was described as a Senior level position that involves planning, analysis, architecting and design of a short-term project. This was the "personal interview", that initial sit-down that some companies will do just to see if you're the kind of person they want to work with. I was told that the way this company operates is to make the second interview technical.

I was not surprised when the first thing we did was sit down with my resume and start asking technical questions about my skills. I was disappointed, but not surprised.

If you're in a technical field, you're probably used to reading descriptions that don't match the interview. You're probably also used to interviews that don't match the job. What they tell you about the company is whether they are:
  • greedy
  • just incompetent
  • some combination of both
Greedy:

I regularly run across jobs that say they are "Senior Level", but the pay is Junior. I see "Junior Programmer" jobs that want the candidate to have years of experience and strong skills in things that can only be learned by reaching Seniority, such as modeling, business analysis, and formal documentation. Both of these indicate that your potential company does not wish to pay you. They want something for nothing, and they're probably wasting a lot of money cranking through employees who don't match. Don't become the next embittered disgruntled ex-employee of a place like this.

Incompetent:

I also see the Bad Match: skills specifically poor to the position, or in contradiction with each other. "Web Designer" should not say, "Must have strong skills in SQL, Stored Procedures, database." "Senior C# Programmer" should not say, "Must know HTML." And last, when you see "Java Programmer wanted: must know MS SQL Server, PHP, Microsoft", you should assume Incompetency A: they don't really understand what they need the job to do, or Incompetency B: they've compiled random spaghetti-code apps from multiple platforms over the years, and they want you to manage the mess.

Both:

The bottom line is that the companies I am encountering in my region want a Formula One driver for Cabbie pay, and they're going to put him in a beaten-up Buick without a pit crew. First place is the expected result. There will be no room for Second. The last guy came in Second. That's why we're hiring you.

By the way, that Senior level position that involves planning, analysis, architecting and design of a short-term project? It was listed as "C# Programmer"

Lollipops and Rainbows

When you interview with a company, anyone you talk to will tell you that the place is a wonderful place to work. This makes sense: the people you're talking to work there because they believe that their company is a wonderful place to work. Otherwise, they wouldn't be coming in day after day.

Or they're lying because they're desperate to get you in the door.

At the interview for my last job, my boss said, "We're a small company, so we're like a family. Everybody who works here, has been here for years. They love it here. No one...ever leaves because they want to." There are enough landmines in that statement to tell you otherwise, but my problem in believing it was my confidence in myself. I thought, "I can already tell that at best that statement is partially true, but I'm going to change their minds when they see what a great worker I am."

It was quite a surprise on my very first day to be kept two hours late in the boss's office while he spun me a tale of woe: the development team used to be 3 people, but two of them quit. As did the head of sales. I got a long story about how awful they were as employees, how misguided of them it was to leave, and by the way, we're suing them as well. Followed by more stories about exactly how bad some of the other people who worked there had been.

It was even more surprising to find out that the one other developer left on the staff had only started a few weeks before me. As did one of the two network techs. Leaving only 2 of 6 employees as anything resembling "long-term". Digging around the network revealed quite a number of names of people who weren't working at this place any more.

When I get into an interview, I have a trick for finding out if it's a good place to work. I wait until the end of the interview and get into a short "chit-chat" conversation with whomever is interviewing me. If there's a programmer in this mix, that's ideal. I'll give you this example from my interview yesterday:

Employee: Well, that's it then. You're free to go. *laughs*
Me: (smiling) Great! I'm going to get back out there and enjoy this beautiful day!
Employee: That sounds great. I wish I could do the same.
Me: You will! (checking watch) It's already 4 o'clock, and it's a Friday. You've only got one hour left, haven't you?
Employee: (bitter laugh) Ha! That would be nice. But that never happens.
Me: Well, I'm sorry to hear that. But just the same, I hope you have a good weekend.

If a place is really awful, they'll answer that last line with "I'd like to, but I'll probably be spending it here." No company will ever tell you outright that something sucks about their work environment. Ask them directly because they expect you to, but whatever they say, either read between the lines or toss it out after you get a chance to chat outside of the interview.

Tactics like this save you a lot of trouble: it's easier to find out if a place sucks with a little light banter than it is to hear how family-oriented a place is, and not know until the first time your child is sick that they don't want you leaving to take them to the doctor. Unless you take your laptop and promise you can check your e-mail. And will make up the hours when you come back in--working from home never counts. Most companies that I have had experience with consider this arrangement to be very generous, because it gives your family permission to need you, so long as you do your best to never stop working.

Try this trick when you interview, and you can easily arrange it to your circumstances. If it's a late-morning meeting, make a comment about going to lunch. If it's a lunchtime meeting, thank them for being willing to work through just to interview you. And any time in the afternoon, as you go, visibly count the hours to 5:00 and make a comment like I did above. Pay close attention to what they say, and respond to it sympathetically to see if they say more. A decent place might tell you that today they won't be going home on time, but this is unusual because of X. Or that they stayed late every night this week, but they're happy because they're going home early on Friday.

Even then, trust your instincts. Go with your gut. My biggest mistake at my last job was being willing to ignore the feeling and believe I could make the company better.

Wednesday, April 2, 2008

America: More Sides, More Stories, More Content

I'm sure there are more reasons behind my being let go. As much as I try to do my very best at every job (no, really--at times it's kind of creepy, the degree to which I apply my work ethic to myself), I would be a fool to think things are ever simple.

The problem is, you can't go down that path because it leads you to wonder what the thing is that caused you to be terminated. I was looked right in the eye and told, "You're a wonderful person, and you know we mean that because you know we've had some really terrible people before...and I'm sure we will have them again. But we have to let you go." In other words, let a good person go and start fishing around for bad ones? Knowingly telling someone that you love them and want to get rid of them means:

a) They're lying, and they really think you're a terrible person. But they also think you'll shoot up the place. "What would get you to walk out that door? That's what I'm going to tell you."
b) They're lying, but they can't tell you what pushed you out (for example, the boss's cousin needs a job and yours will do just fine). Sometimes it'll pain them because they really do want to keep you, but it's out of their hands.
c) They thought you were a good person, but then something about you set off an alarm.


You have to watch that last one, because it will always grow behind your back, and you won't know until it hits you. It may hit you so hard you never got the license plate of the Thing That Ran You Down.

A good rule of thumb is to avoid talk that is not work-related. If I have to talk about myself or my thoughts or opinions outside of tech, I try to make it as neutral as if you'd read it on the news. Or parrot a similar thing, from a completely different context:

"Of course, other countries have done X with that idea instead of Y ...",
then nod in acknowledgement at the response and offer little to no opinion.

We can all stand to improve ourselves, but you can't stop to look back and find the unknowable because the wondering will drive you mad. It will lead you down wrong trails and cause you to second-guess yourself, and that can be fatal at your next interview.

You will always be yourself: just continue to try to be better at it, and that's all that matters.

They Like Me! They Really Like Me!

Well, here we go again. Once more, I am told that I am a joy to work with, and do such a good job. Such a good job, that I have to go. Go on, you're "let go", like I've been paroled from prison.

In this case, we have a project where the original developer was burned out and quit in frustration, but not before writing a ridiculously low estimate. The shop goes entirely off the direct-bill, hourly model: you're only okay so long as at least 37 hours of your 40 can be charged to someone else. When Project Lowball runs out of hours, you're hosed. Carry forward the sins of the last person, and dump them on the next.

This also happened to a friend of mine: he went to a shop of 100% billability. They told him they'd give him his first billable project next week, but first they needed him to help them configure some in-house stuff. He believed them until he saw his first 2-week paycheck. They paid him for the Thursday and Friday of week two where he'd started working on a project, but the week and a half they had him working on their architecture, he didn't get paid for. When he quit, his supervisor actually blew up on him, yelling about what a "traitor" he was and telling him the company would sue.

That's the big thing--my (now former) company tells its ex-employees they'll be sued, too. As does another company I know of. All of them see people as "a drop in the bucket. If we don't fill it up fast enough, dump it out and go back to the ocean for more." And they know that as a business, they have to pay for lawyers, while the average person doesn't. I had strange voice-mails and e-mails contradicting the "you don't have to go home, but you can't work here" conversation I'd had. These are documented things, and they're designed for lawyers to use against you when they draft the threatening letter reminding you what a bad person you are.

Strangest of all was being told I'm fired because they can't afford to pay me when I'm not billable...then wanting to know if I was planning on working for two more weeks on the project.

It's good for morale if you tell your employees that the guy that left is going to be sued: it instantly turns a good person into a bad one. Damn, he must have been stealing, doing coke, and having sex in the conference room if my boss says they're going to court. People will easily believe bad things about others because that's what they're used to: it confirms the general cynicism that comes from being an adult.

About that bucket: are those drops water? Or blood? Time will tell...