Wednesday, April 14, 2010

Ace the Software Engineering Interview....

Going in for that awesome software engineering job interview next week but no clue how to prepare? We'll you're in luck....here a a few tips, some of them pretty basic but the lesson here is that there is no substitute for being prepared.

(For anyone hoping I'll reveal the secret sauce of the Google interview.....sorry, during this blog we'll pretend I'm interviewing for an engineering role at Microsoft)

1) Remember what you've done - Sounds simple right? It's not. What technologies did you use in 1999 when you built that "web application'? Now, just because you used Visual InterDev on Windows 95 doesn't mean you should go buy an InterDev book and brush up.....not at all. But you DO want to take a few minutes, remember what you did, how you did it and what you liked about it. So that way when someone asks the information is fresh and you can answer even the most trivial question intelligently.

2) Dust off your old CS books - That's right, take them off the shelf and relearn everything you've forgotten about Computer Science. The goal here is to be able to show your interviewers that you know the core principles of your job. Crank out data structures, algorithms and nail a few complexity questions and your interview will go much better than replying with something thought provoking like "when I need answers like that, I Google them".....um, that's great but it's likely the company your interviewing with wants you to push the envelope, not just use Google (Bing? or Yahoo? Altavista still around?) every time you get stuck....

3) Do your research - Recurring theme here, preparation. Take a few minutes to search out blogs or news groups to give you some sample interview questions. Sounds simple, but so few people do it, it's amazing. Let's say I'm interviewing at Microsoft for a job as a software engineer...ha,ha, riiiight. Here's what you do:

- Search "Microsoft Interview Questions" and you'll get about 2.3 millions results - this one looked pretty good http://www.sellsbrothers.com/fun/msiview/default.aspx?content=question.htm#algs

- Check out http://microsoftjobsblog.com/ (propaganda alert!!!!) and get some "insider information

- Ping people in your LinkedIn network or other folks who you know have interviewed with Microsoft....pick their brains and learn from their experience.

4) Practice, practice, practice - Go to a site like "stackoverflow.com", "topcoder.com" or find other coding contests, competitions etc. You can also find tons of puzzle sites and things like that to really help you get your head around the kinds of problems you are likely to find. Check out books like "Smart and Gets Things Done" by Joel Spolsky, or "Ace the Technical Interview" by Michael Rothstein. A quick search on Amazon for "Technical Interviews" will find a ton of great resources.No magic bullet here, just time and due diligence. Trust me, THIS will pay off.

I think those tips will help, there is no one piece of advice to help you with the technical interview. Just be prepared, know your stuff and take a deep breath....you can't interview well if you aren't relaxed.

I'm on vacation next week...but good luck and happy hunting everyone!



Friday, April 2, 2010

When should you look for a new job?

I've been a bit busy so apologies for not writing lately.....but, this is a topic I've been meaning to discuss for a while now. For any job seeker, I think it's a critical thing to think about...when do you decide, it's time to look for a new job? If you're not the kind of person who thinks about long term growth and building a personal brand....stop reading now as this won't be of interest to you. If you care about where your career will be in 10 or 15 years...this is for you. The following are my quick thoughts on when it's time to make a change

1) You're miserable - Wake up cranky? Dread going to work? Complain all the time about how much your job stinks? Time for a change my friend. Life is to short to be miserable 40 hours a week. This is so obvious I'm not even going to go deep. And for those of you saying, "Yeah, but I'm always miserable at work"....find a new career, again, life is too shot

2) You're not growing - Maxed out? Doing your job with your eyes closed? Time to move on then. A good job forces you to learn new skills, to grow and progress as an employee. If you are done growing, start looking around and find a job that will force you to push the envelope.

3) Good job, bad company - Seem like a weird reason to look around? It's not. If you are working for a "bad" company or a place that's known to be a tough environment but love your job.....you should find the same role or a better role at a better company. Think about this - you are the #1 performer at your company but most people look at your employer and aren't impressed....now, do that same job, same performance at an industry leader or "cool" company.....presto, your personal brand is worth a lot more and suddenly your the person everyone wants to hire.

4) It's a recession - What? It's a recession so I should look for a new job? Yep, that's right. Not saying you need to TAKE a new job but recessions are the best time to network, interview and potentially land a new gig. Companies who are hiring during a downturn are likely come out of the recession even stronger....and usually with a significantly stronger position in the market. Yes, it's harder to find jobs and lots of them will be uninteresting.....but if the market slows (like now, although the "experts" say we are recovering) than the time is now to start poking around. A side benefit of this, by interviewing and keeping yourself current when things REALLY turn around you're interview skills will be sharp as ever helping you land the perfect gig.

5) You're happy in your job - Jeff are you crazy? No, I'm not. Looking at new jobs while being perfectly happy is the BEST time to consider new jobs. Why? Because you'd be making the decision to change jobs when you don't have to make a change - better comp? better commute? better team? Does not matter, whatever is most important to you. Take the interview, evaluate the job and if it's better than your current job....accept it. LOTS of people will disagree with this sentiment, but really, anytime you can get a better job or join a better company or do anything to upgrade your career....do it and don't look back.

There are many, many other reasons to look for a new job but these are a few of my favorites. What do you think? When do you start looking?

(note to any current colleagues...I'm not looking, no really I'm not!)