Saturday, May 26, 2007

Advice for new IT employees

If you don't yet have a degree, start right now. Go to community college and get an IT or CS-related Associate degree. You don't have to wait until that time in the nebulous future when you'll be able to get a Bachelors from the school that all your friends think is the best. Even an Associate degree opens a lot of doors. And the school is practically irrelevant. If you're at the age where your friends still talk about their college days, they will no doubt look down their nose at community college. Their arrogance is nothing that should stand in your way. The second piece of advice is to get into contracting. Six month contracts, three month if you can find 'em. The main reason for this is that most of what you learn at a new job is going to happen in the first three months. That's when you'll be exposed to new tools, technologies, and methodologies. You'll grow rapidly as a professional, and after a year or two, your resume will be fit to set aflutter the hearts of employers and recruiters alike. This doesn't mean you don't need to keep working to improve your skill in your core discipline, just that adding these bells and whistles gets you a seat at the table when companies are interviewing.

When you put your resume out on Dice or whatever job board of your choice, you'll get calls from recruiters. Lots of them. There are a few things you can determine about them right off the bat. If you can't understand what the recruiter is saying, tell them you're not interested and end the call. It's not worth it. If the call comes from out of the country, don't bother with it. Apparently some recruiters come from a telemarketing or collections background. If they are rude, bullying, or stupid, don't waste time on them. If you go in for a preliminary interview and the recruiting office has a boiler room feel to it, they have already wasted your time and probably lied to you about having an employer lined up. Leave. That covers maybe %20 of all recruiters.

At the other end of the recruiter spectrum are the really great recruiters. The ones that call you up after six months to see how you're doing. The ones that are always looking out for you, that take the time to meet with you, that actually remember you. Keep in touch with these folks, even while you're working a contract. These people will be a great asset to you, and you to them, for years. That's maybe %5 of the recruiters you'll meet.

Now we come to the other %75. These people do not care about you. You, in turn, do not owe them anything. They will try to convince you to only work through them. Either tell them no, be non-committal, or lie. They will try to get you to accept a job you don't like. Don't do it. What these people want is to get you in a position so that they can start earning a commission. They do this by calling as many people as they can find, and trying to get all of them to apply for all of the jobs, hoping a few will work out. These are not your friends. You are a piece of meat to them, and they couldn't care less about you. And that's fine. You don't need a hug, you need a contract. It is important, however, to be aware of where you stand.

The recruiters will ask you questions about your previous jobs. If there are gaps in your history, they will ask about that. They will want to know why you left your previous jobs. First off, you have absolutely no responsibility to tell these people the truth. And more than that, they don't want you to tell them the truth about any mistakes you've made in the past. You didn't leave that job because your wife put you in detox. You left to start your own business. It didn't work out, so you decided to again become an employee. Generally speaking, unless you get caught in the copy room snorting coke off a hooker's ass, it's pretty tough to get fired, so you'll mostly be dealing with situations where you've decided to leave a position of your own volition. Why you chose to leave a job is your business, and you should not feel obligated to reveal your personal reasons for doing so. Make something up that sounds like a reasonable reason for having left. Another good excuse for a choppy resume is to claim that a short-lived position was a contract job. If you do get fired, you have two choices: remove that position from the resume and say that you were self-employed (or traveling, or helping out a family member, or in school) during that time, or leave it on there and say that the company was having financial problems and downsized you and several other employees (it's probably best to note that you weren't the only one downsized). Employers rarely check with past employers. Having a real (or imaginary for that matter) home-based business is a big help in explaining away gaps in your work history. What recruiters are looking for here is plausible deniability. Whether what you say is true or not doesn't matter, only that it could be true. Then, if you do happen to get busted, the recruiter can plausibly say they had no idea.

I'd like to stop here and point out that if you have to use a lot of these excuses, if you're always getting fired or drinking your way out of a job or being reprimanded for sexual harassment, maybe you should change careers, see a therapist, or both. What I'm trying to point out here is that people have human failings and that it's absurd for the employers to think that you have never, in your entire life, fucked up. If the corporate world really were stocked with only the highest caliber of people, whatever that means, then there would be a helluva labor shortage. Having a skeleton in your closet shouldn't deny you the chance to use your skills in a way that earns you a decent living.

If you haven't been to college at all, don't make up a university and put it on your resume. The employer is going to figure it out pretty quickly and fire you with extreme prejudice. If you have an Associate, put that. If you're a few credits shy of a Bachelors, just say you have a Bachelors degree. Nobody is going to check, and they won't be able to tell the difference. And while those last few hours of English or French 301 don't matter at all in regards to your skill as a programmer, they could be the difference between being employed or not, or $55k/year and $100k/year.

There was a time when you could answer employment questions directly and honestly. That time is past, and while it should be mourned, it's not your job to martyr yourself for an ideal given up by society. Now, the test of whether you're employable or not is whether you know and give the answers they're looking for.

"Would you steal a loaf of bread to feed your hungry child?" Of course I would. I'd steal some cheese and lunchmeat, too. Maybe a coke and a juicebox to wash it down. The answer they want to hear is "No". Tell them what they want to hear.

"If you found out your coworker had been leaving work early without notifying anyone, would you turn him in?" Hell no. It's none of my business what he does. The answer is, of course, "Absolutely!".

"Have you ever used drugs?". It's none of their business if you burned a spliff or two in high school. A joint now and then to help keep you from going off the rails: no problem. A couple beers after work: who doesn't. Snort coke to wake up and take phenobarb with a highball chaser to go to sleep? You should probably go take care of that problem before you start working. And that's the crux of the matter. If it doesn't effect your employer, it's none of his or her business. If it does, it's your responsibility to take care of it before accepting a job. The answer to this is always, unequivocally, "No".

You've jumped through the recruiter's hoops, and now you're on the way to an in-person interview with the company. There are still some companies out there who will ask you obnoxious brain teaser-style questions in the course of the interview process. My advice if you are confronted with this sort of interview technique is to stand up, thank the people for taking the time to meet with you, tell them you've decided not to pursue a position with the company, and leave. You are interviewing the company as much as they are interviewing you, and I can almost guarantee that you will not like working for this sort of company. I've seen interviews turn into an hours long showcase for a current employee's intellect as he made prospective employees answer question after bizarre question, smugly correcting them when they made a mistake. You're not a prisoner and you're not obligated to entertain the resident jackass. Get up, say thanks, and leave. Don't waste your time.

Do try to relax a little in the interview. Make a personal connection with the person interviewing you. If he hasn't been brainwashed by the business, he just might become an ally to you. If he has been brainwashed, it will be pretty clear when social talking is permitted and when it's not. Stick to the routine as you contemplate whether you really want to work there or not. At this point you should have a good idea of what the job involves and you probably won't be blindsided with too many technical questions you can't answer. Do your homework before you go into the interview. Review some basics, look over their website and see what techniques and technologies they use. That being said though, they expect you to not know some things. It's okay if you miss a question or two.

This interview isn't just technical, it has a lot to do with determining "team fit": whether or not you'll fit in with the current culture. Usually you interview with someone who will determine team fit and another who makes a more technical assessment along with team fit. Keep in mind that you should be determining your own team fit at this point. If you get a bad vibe from the people, if you run into a total asshole in the interview process, or if you just don't like the people, don't pursue the position. You'll have to deal with these people every day and believe me, there's nothing worse than working with people you constantly want to cockpunch.

Salary negotiation can happen as early as the first phonecall or as late as after all the in-person interviews. If you're moving from contract to contract, you'll have a good idea what you're worth. It's not unusual for recruiters or employers to ask you what you made in your previous jobs. If you felt that you were underpaid in your previous position, lie. Inflate your salary and report it as what you think you're worth. The only reason they would ask this is to try to pigeon-hole you in a lower paying position (the employer to save himself money, the recruiter to put you in a position where the employer won't pay what it's worth). Don't help them screw you over.

Go ahead and ask for what you want to make. If you're too high, they'll tell you. If you're too low, some recruiters will come right out and tell you they can get you more. It's usually to the benefit of the recruiter to get you more money, unless they work in bulk and just want to keep the beef moving and filling jobs. Some notable price breaks are around $30-45k/year for the pay for a junior programmer, $45-70k/year for a mid-level, and $70-95k/year for a senior level (NoVA, 2007). Keep this in mind when you are crossing from one pay grade to another and be sure that the job you're applying for is in step with what you're asking. You'll only make real strides in your income by changing jobs. By changing jobs every few months, you can easily double your income in a year or two. The only reasonable and responsible way to change jobs frequently is to work as a contractor. Otherwise you're screwing over employers who expect to keep you for years. Remember to charge more for a 1099 position than you would for a W-2 (about %20 more per hour is standard) since you have to handle taxes and insurance yourself. This is a common and expected practice. Don't ask for "between 70 and 80k". That will get you 71k. Ask for exactly the amount you want to make. Padding it as if you're apologizing for what you're worth will leave you disappointed. Nobody is going to look out for you but you.

This is not the time of gold watches for 30 years of service, where the boss kept an eye out for a good worker, and the company was as loyal to the employees as the employees were to them. This is the time of psychological tests and techniques being used to mold employees into a supposedly superior and more loyal worker, telling you that people are their most important asset while they try to figure out how many they can fire and still operate, of bosses scheduling face-time with the employees, but only as an employee retention tool. They have no respect for you as an individual nor do they have any loyalty to you. They will fire you the second it looks like it may be advantageous to them, and if it turns out they're wrong, they'll call the recruiter and hire a drop-in replacement for you. Whether this is right or wrong is not the issue; the issue is that this is how it is and if you do not realize and adapt to this new way of doing business, your quaint ideas about honesty, loyalty, and fairness to your employer will leave you underemployed and exploited by the very people to whom you're extending your best.

When the day comes when you're upper management, or CTO, or Lead whatever, that would probably be a good time to seriously consider injecting a bit of loyalty, compassion, and common sense into your hiring and personnel practices. But until the day comes when you can change the rules, in order to maintain a standard of living consistent with your skill, you need to play the game as it's presented to you. Until companies in the US encourage loyalty to be shown to their employees in as much as they expect loyalty from their employees, and until common sense returns to the decision makers in those companies, the hiring process will continue to be a smoke-and-mirror affair between employers, recruiters, and prospective employees.