Content is not good enough

I have been fortunate enough to have a job that I was truly excited to go to every day.  I loved what I was doing and who I was working with.  Before that I was content at many of my jobs, but wasn’t truly happy/truly in love with the job.  Since then I have been more picky about where I work.

This is going to sound hokey, but just bare with me.  When I work somewhere that I really enjoy and do something I really enjoy, I get energy back from it.  I don’t dread going to work and rarely come home feeling drained.

 

 

Since we spend so much of our lives at work, why wouldn’t you find a place that you are truly happy?

I think I have said this before, but when you are interviewing at a company, it is not just an opportunity for them to learn about you, but an opportunity for you to learn about them.  See if you can talk to some of your potential colleagues.  Ask them what they like about the company and what they would change.  This can give you some good insight into whether you would be happy.

Take some time and look at you current job and previous jobs.  What worked well at each place?  What didn’t work well?  What made your life easier?  What were your biggest pain points?  Now you have a good feel of what your ideal job would look like.  Now when you are looking for a new position, you can use this information to help you decide whether it is right for you.  Good luck!

 

Advertisements

Should I apply?

Recently, I have not been very happy at work, so I was keeping my eye out for another position that looked interesting.  I hadn’t applied to any of the listings I saw simply because they hadn’t piqued my interest quite enough.

Now, I am laid off and I am applying to some of those positions I passed on previously.  As I have been looking at listings, I ask myself if I really want to apply to this position.

Sometimes, after a little research on the company it is obvious that I do not want to apply (glassdoor.com is your friend, they have employee review of the company).  But, often I am still left wondering whether I would be happy there…should I apply, or just walk away now?

While being laid off may be influencing my thought process, I have realized that the best way to determine if a place is going to be right for me is to actually apply and interview there.

Nothing can replace the experience of visiting a workplace and talking to the people who work there.  You get a chance to see the workspace.  I have visited workplaces and decided I was not interested after visiting.  Remember, this is where you are going to be spending 8 hours a day.

The interview is a chance to get a feel for some of the people you will be working with.  Your colleagues can make or break a job.  Pay attention to who interviews you and what sorts of questions they ask.  You can get a good feel for their culture.

Remember, even if the company offers you a job, you are not required to say yes.  It is your decision whether this is the right position for you.  The interview process is not just a chance for the company to find out if you are a fit for them, but also an opportunity for you to determine if they are a fit for you.

The Coding Interview

 

What am I evaluating when I have a candidate do a pairing exercise with me during an interview?

Communication skills:  Communication is one of the most important skills a programmer has.  Of course, we all need to be able to solve a problem, but in order to identify that problem in the first place, we need to be able to communicate with our customers to understand it.

Most of us are not the only programmer in-house, so we need to be able to talk to other programmers about the code we are working on or the problem we are trying to solve.  We need the ability to clearly communicate our intentions through our code as well.

By doing a pairing exercise with the candidate I can get a pretty good feel of many aspects of their communication skills.  I get to see the code that they write to see if they are clearly communicating their intentions through the code (good names, good method decomposition, etc).  I also get to play customer and clarify the requirements for them.  This allows me to evaluate how well they can understand requirements and ask clarifying questions.

Lastly, I get to see how well they can talk about the code they are writing as a technical peer.  Are they able to articulate what they are trying to accomplish in the code?  Are they able to articulate why the approach they are taking is giving them troubles, or how they intend to break the problem down into manageable chunks.

Code quality:  This is the no-brainer answer.  Yes, I am interested in seeing how you code.  I want to see if you can produce quality, readable, maintainable code.

I am looking at things like naming (for variables, methods and classes), at method decomposition, simple formatting.  I am looking to see if the candidate will start with tests.  Does he/she at least write testable code?

What about comments?  If he/she comments, are they useful comments, or is it simply reiterating what the code does?  Is there any dead code remaining?  Does he/she refactor the code?

Algorithmic thinking: By giving the candidate a problem that does not have a readily apparent solution, I get to see how the candidate thinks through a tricky problem.

Does the candidate just freeze up?  Or is he/she able to break the problem down into smaller chunks?  If so, do these chunks seem like a logical way to break down the problem?

Ability to take feedback: While doing a coding exercise, I will typically either ask them to change how they are approaching a solution, or help advise them on a way to achieve their goals.  This is typically intended to allow me to see how well the candidate will incorporate feedback.  (I have seen candidates who refused to take any feedback given to them, even though they were struggling with achieving their goals).

Whether I am working in a pairing environment or not, I believe that multiple sets of eyes should see the code.  I encourage code reviews, and I expect each person to incorporate some, if not all, of the feedback given in such reviews (at the very least, the feedback needs to spark a conversation).