Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

How would you, as someone involved in the hiring process (manager,interviewer, etc) feel about a candidate that has changed jobs every 1-2 years?

update
Thanks for all the input everybody, some really great responses, and good info in every post. I asked it because I'm currently at my 3 job in the last 5 years and I'm feeling like my position is going nowhere (like the position should have been contract in the first place, not full-time).

My only options here seem like transition to a different team doing something I'm not really interested in or look for new work, but I'm a little afraid my recent job history is all short stints.

share|improve this question

closed as off topic by Mark Trapp May 29 '11 at 3:23

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

show 3 more comments

22 Answers

up vote 60 down vote accepted

It depends on the context:

  • In a startup culture (like Silicon Valley), one to two years is the lifetime of many companies, and it's expected you'd be switching your place of employment that often.
  • If you're a contract worker, a contract may only be a short, set timespan.
  • Everywhere else, one to two years is an unusually short stay at a company.

In any context, employers are generally looking for a person who's going to be in it for the long haul, whatever the long haul is for the company:

  • Startups are looking for someone who will last until the exit: acquisition, IPO, shuttering, etc.
  • Contract hires should be able to successfully complete their contracts to term.
  • Other companies are looking for an employee who will last long enough to make a return on the investment of hiring them: this can take several years.

It's a red-flag to potential employers if you're constantly leaving your job for personal reasons, even if you have perfectly valid reasons.

I'd also note that having experience in one context isn't necessarily going to translate to another.

For example, if you're a life-long contract worker, it can look just as unappealing to a company looking to hire full-time employees as someone who went from regular job to regular job. Similarly, a person who stayed at a job for 10 years might be unappealing to a startup that wants people who are constantly looking for the next big thing.

share|improve this answer
1  
@Mark Trapp - An employer looking for long term is likely to look equally bad to a life-long contractor. It's a two way street. –  BenAlabaster Sep 13 '10 at 20:16
1  
@MarkTrapp - depends on the redundancy culture - if it's FIFO, then not being able to stay in a job is more understandable. FIFO seems to be more common in Europe than America in my experience. –  Richard Gadsden Sep 13 '10 at 20:29
show 7 more comments

One reason not yet mentioned why many managers don't like a history of short jobs is that the person may never have had to live with the results of his work. This changes the way you think about development. If you have never seen your work go into maintenance phase and found out the problems from your design out in real life, you may think you are doing well when you are not. This is OK for a junior dev who may not have as much control over design but can be a disaster for a senior dev. Someone who has the same beginner level experience repeated four times rather than progressing to higher levels of responsibility, is often in trouble when you need senior level judgement. So the person with 10 years of experience and two jobs can be more attractive than the person with ten years of experience and 7 jobs. You know they have had to face the music and see the end result of their programming choices.

My experience has been that 90% or more of the devs who leave in less than a year leave a mess behind for others to clean up. I've seen far too many of these people quit immediately before a deadline (often with no notice) that they knew they were not going to make but didn't want to admit it. Now I think most managers shouldn't let it get this far without realizing the person isn't producing anything, but an amazing number of them seem to think asking to see code before it is completed is somehow interfering.

You'll hear the same thing from all these people, "It was a horrible place to work, they used crappy tools and management made dumb decisions, etc." What you never hear them say is "I left because I was in over my head" but it is all too often true. There are a lot of bad devs in our business, the worst ones are leaving just ahead of being fired. And leaving often. You are simply a riskier choice if you leave your job frequently.

Now this isn't true for contract work (it isn't your fault that the contract was for only 3 months.) However, I see more and more contractors who are in the same position, they stay places for such a short time that they aren't seeing the end result of their work or having to live with the results, so they make poor choices and never have a clue that they did so. Nor do they ever get a chance to get beyond the superficial beginner level knoweldge to the depth of the experienced professional. This is not true of all contractors (I've worked with some amazing contractors, but to a person they have had at least one long term job or contract where they had a chance to develop some depth of experience).

You don't have to be happy at a job to learn a lot. I've learned more from a couple of bad jobs than I did from the good ones (of course sometimes what you learn are new questions to ask in the interview!). It can pay to tough it out.

share|improve this answer
add comment

The problem with saying "is two years OK" is that if your CV reads (roughly) two years, two years, two years, that will be read that there is a pretty good chance that you will move on after two years.

You need to look at both the average time (I'd say two years is the minimum, three to four is better) but also what the longest job on there is (ideally four or five years at least) as the employer has to think that if they treat you right you're going to stick around for a decent period.

share|improve this answer
add comment

In the ideal world, the decision would be made on a case by case basis. Sometimes, jumping frequently from job to job may be an indicator of a work ethic or other problem. Many times, it's nothing to worry about. For example, if you are just starting your career, you may need to try many different jobs before you know what you like. Also, certain job types, such as start-ups or contract roles naturally have a high turnover rate. Moreover, working at multiple companies has some advantages. After having worked at a number of companies, I can compare & contrast their methods and have a much better idea of what works and what doesn't; I've seen and solved a wide variety of problems; I've become very good at learning new skills; and I can bring this invaluable knowledge to a future employer. In fact, I've often found that someone that moves around every few years is a much better employee than somebody who has been stagnating at the same job for a decade.

In reality, many people do see this as a red flag and without giving more thought to it, pass over the candidate. It's a shame, but that's just the way it is.

share|improve this answer
add comment

I've had 16 jobs in the space of nearly 7 years. Do the math.

I am a contractor and I exclusively target that market, so I'm typically not looking for a permanent role.

I don't think I'll ever go permanent unless I either have to or am presented with a job that's so suitable and interesting that I'd want to do it for the next 5 years.

But at the moment, this is what I love doing, and I'll stick to it as long as I can.

share|improve this answer
add comment

Starting from six years ago, I'm on my thirteenth job. But most of them have been contract jobs.

Some have been contract-to-hire, but that doesn't seem to mean anything these days. I get the impression that a lot of companies have no intention of actually hiring, and just use the contract-to-hire designation to get people who otherwise wouldn't take contract jobs.

Short-term stuff shouldn't be a no-interview red flag. You should certainly ask about it in the interview, and give the candidate a chance to explain. On the flip side, with that many jobs under your belt, you get exposed to a lot of different technologies and techniques.

share|improve this answer
add comment

I have had over 10 jobs in 17 years as a programmer. The longest was 5 years and the shortest 10 months. I have never been asked about the length of any of my positions, but always list better opportunity as the reason for leaving at all but one of my jobs. When discussing at the interview I go a little more in depth. If I left because the company was in decline I mention that. If that's an issue with an employer then they may be in decline already or be volatile and you don't want that position anyway.

Main thing is to be frank when discussing you reasons for leaving and the fact the job was more of a contract position than a permanent position should assure a potential employer that you are serious about their position.

share|improve this answer
add comment

It's not a disqualification, but they need to address the issue. I've continued to take jobs where a larger percentage of my time was on coding as oppose to support, project management, operational tasks, network admin., etc.

I left the positions on good terms and always tried to help my replacement as much as possible.

share|improve this answer
add comment

Job history is an important issue to raise in an interview, but I wouldn't be so quick to make a decision solely on this metric, and before an actual interview because it can be deceiving.

The previous comments brought up some good points, but I found them a bit too generalized, some going as far as saying that quick succession of companies indicates a candidate you should be avoiding. I think that's a poor argument so I'll try to describe how this could be your best candidate.

I would take into account a few factors, before deciding:

  • Candidate years of experience
  • Candidate level of knowledge
  • Candidate attitude, drive, motivation (you can tell that during an interview)
  • Companies the candidate worked for
  • Candidate responsibilities in those companies
  • Last, but not least, ask yourself, what kind of company is your company? (the one you're hiring for)

I would also bring up the issue in the interview and ask for the candidate's opinion.

Now let me detail a bit as to why so many factors, and why this decision isn't really a black/white one and there's always a chance you get it wrong.

First of all an important metric is the number of years of experience and the level of knowledge. This will usually tell you how passionate the candidate is, and give you an idea of the professional growth.

The companies the candidate has worked for is also important to understand and correlate that with the candidate's drive/motivation/ambition.

Like previous posters said there all sorts of companies from startups to enterprises, and the differences in working environments are all over the map. Similarly there are all sorts of candidates from really incompetent to very capable and mentalities from this-is-just-a-9-to-5-job-I-can't-wait-to-get-home-and-forget-about-all-this-crap.-What-time-is-it? to passionate people who see it as a craft and want to get better at it.

The tricky thing is that a successful match for your company might not involve picking the candidate with the best attributes from that list. It has to do a lot with your company's culture also. It's a well observed fact that in companies with poor management for instance, or really boring and repetitive work, or a bad working environment, the best people tend to leave first, the competent might leave at a certain point in time, and the poorly qualified tend to stick forever. The reason is fairly simple. Qualified people won't put up with a bad environment because it pretty much conflicts with the craft bit I was mentioning. They care too much about the work to do it in a poor way, or see that their input is not being valued, or a general indifference to the output of their work. They are confident enough in their skills to leave a s(t)inking ship. And this might involve leaving during the first year. They usually don't have problems finding a new job because, well, they're good at what they do.

Recruiters and interviewers usually ask why they took the job in the first place? Well, just as it's difficult to tell from an interview how good exactly or motivated a candidate is, the same is true for the candidate trying to figure out what the working environment at that particular company is, before actually starting to work there.

If you're a small company looking for a candidate who is passionate about his work, ambition and drive are the most important qualities, and those little nr of years with a number of companies doesn't mean anything. He's probably the candidate you want. Being involved in the product and wearing different hats to get the work done.

If on the other hand your company has a position available for back-end developer with predefined specs for the next 5 years then I would go a bit further and try to find out what he sees as an ideal position. Is this candidate interested in exploring a domain to its deepest, or is he/she driven more towards innovation and passionate about new technologies and opportunities to put them to practice. You really need to match a candidate to the job you're offering. Otherwise, even if they're qualified, they'll leave.

Also, the startup mentality of let's-figure-out-how-to-do doesn't really fit in with enterprise jobs, and the enterprise mentality of give-me-the-specs-that-tell-me-how-to-do doesn't really fit in with startup/small company jobs.

If you're hiring for the enterprise I guess small number of years might tell you a bit more than if you're hiring for a small company.

But generally, number of years alone doesn't really mean anything. It could either describe an incompetent candidate or a competent candidate who's just looking for a better working environment with better opportunities to grow professionally.

Personally I have a new thing where every half year I look back over the previous half and try to estimate how much I had the opportunity to learn/ what can I do to improve. If I'm really at a stuck point where I'm not really accumulating any knowledge and I can't manage to influence the situation for the better, I will just leave. There's no point in wasting any more time. It's too precious. And I'm not counting myself as one the elites here. I'm just saying, why waste time when you could put it to better use, and be more satisfied professionally and with your work.

Same goes for competent people. It's not that they're purposely leaving companies after 1 year, it's just that they haven't found the right one to spend the next five years with.

share|improve this answer
add comment

2-4 years are quite common for many developers. The reasoning behind this is quite simple:

  1. Vertical Movement
  2. Horizontal Movement

Vertical movement will require longer staying time (minimum 4 years). Usually the person becomes a team lead or manager or maybe architect. Chances are this person will be a better mentor and you're not necessarily looking to hire him as a software developer anymore.

Horizontal movement usually is in the range of 2-3 years. This type of developers tend to look for a new challenge either new/different technology or different problem domains.

The thing is, as long as the person is improving in each of the newer job (check with him as well), it shouldn't be a big deal.

What do you learn by staying 4 years in the same team using the same technology within the same problem domain? "Maintenance" isn't the answer because once you hit year 2, you should be in maintenance mode already even if you are still improving the app.

share|improve this answer
show 1 more comment

This question reminds me of an old story.

A neighbour was going away on holidays and she was worried that there will be no one to empty her letter box. She thought, if a burglar came around they would notice a full letter box, conclude the house is empty and break in. Local police office assured her - if you plan to burglar you do some research, you watch the place, you note the patterns down, look for lights and so on... and when the owners go away you make your attempt and perhaps than on only then a full letter box provides some reassurance.

I would never look at how often someone changed jobs as the first criterion and certainly not as a simple filter. I would try to understand what the person did recently and in the past; how they developed their knowledge; how quickly they learn; how flexible is their approach; what are their values and aspirations. Once I have a feel for the person and I have answered those more fundamental questions, only then, and it is still relevant, would I ask about how often the person changed jobs and why.

Honestly I would probably be more concerned about someone who have not changed their job at all in the last 5 years.

PS. And don't ever hang around with a poor job just because you're afraid changing it too quickly might look bad on your CV.

share|improve this answer
show 1 more comment

Assuming that this was for a permanent position it would raise a warning in my mind. Basically I don't want to be training this person's replacement in a year's time.

However, I would look at the circumstances for each move. Were any redundancies? Was the move due to the relocation of a spouse? etc. If there were legitimate reasons for most of the moves then I wouldn't treat them any differently to any other candidate.

Each case has to be taken on it's own merits.

If this was for a contract role then a job every 1-2 years is quite a long time, particularly if the norm is for contracts that last 6 months or less.

share|improve this answer
7  
"Each case has to be taken on it's own merits." - I disagree: regardless of the circumstances, if a person has had 10 jobs in 3 years, then they've set a trend: they don't know how to keep a job. –  Steve Evers Sep 13 '10 at 18:35
5  
@SnOrfus - the question was about a job every 18 months to 2 years. If it was 10 jobs in 3 years the warning would be very loud! –  ChrisF Sep 13 '10 at 19:38
3  
@SnOrfus The assumption here is that people only look for new jobs because they were unable to keep the previous one. This is false and particularly so for high-powered programmers who find themselves at any of the myriad start-ups that turn out to either have terrible work environments or be on a death march. This is definitely the norm in Silicon Valley... and presumably in all other incubator areas. –  charstar Sep 13 '10 at 19:45
2  
@Snorfus/@ChrisF - What if every one of those 10 jobs were freelance gigs such as developing websites for small companies, each taking 3-4 months to complete? That's slightly different, don't you think? You can't make a blanket statement like that without considering that there may be legitimate circumstances where that scenario may be presented. –  BenAlabaster Sep 13 '10 at 20:19
show 3 more comments

Depends on the type of work. If some one is engaging in contract work it wouldn't raise a flag. It's not uncommon for an entity to hire a lot of employees and contractors when a software project is being initially built and then let some of the staff go after the first release completes. I've engaged in a few contracts myself of a few months to a year. Though while the initial agreed period of employment was relatively short I've typically have gotten contract renewals making the shortest engagement two years.

share|improve this answer
show 1 more comment

I'd agree that, if you're looking at someone whose recent history is contract work rather than full-time employment, then the 'acceptable' time on the job gets shorter. For example, a series of one- to two-year contracts doesn't necessarily indicate a problem, but could rather show that the projects were all limited-duration, and naturally came to an end. This is particularly likely if the candidate has highly-specific skills that few organizations need beyond project start-up or wind-down.

Of course, I'd want to find out why they moved positions, and I'd want to follow up a couple with the employers to see if they got renewed or extended during the contracts' terms.

I have seen job histories where the candidate had an ongoing string of three-month positions, each with a wholly different organization, and never returning to a previous employer, which was a red flag that their contracts never got extended. Following up didn't provide a credible explanation other than "not bad enough to fire immediately, but not good enough to keep either."

share|improve this answer
1  
I'm surprised you got that much. At most places, you're not allowed to say anything about a former employee other than what position they held, their start and end dates, and whether they left voluntarily. –  TMN Oct 21 '10 at 17:02
add comment

I guess it depends, I know a lot of software engineers working as "consultants", meaning they only stay on the "job" only for one project.

Another thing for considerations is how many jobs has the candidate have, if there is only 2 in the last two years I thinks is ok, but, if there is 7 jobs in the last seven years then is a pretty clear warning

share|improve this answer
add comment

In the games industry 1-2 years is fairly normal. The important thing to check is if they jump ship mid project, of if they see it through, from beginning to the end. If a programmer doesn't have kick-off or end-phase experience, or has a habit of leaving as soon as crunch starts, that's a warning sign.

share|improve this answer
add comment

It's not necessarilly good or bad.

I would focus on the quality of those jobs. If the guy was progressing in 3 2-years jobs in the last 6 years, and each job entailed new responsibilities, skills, etc, I would deem that as positive.

On the opposite side, if tasks were pretty much the same, that's a warning.

The key, as it happens with most of person judgments, is to not generalize. Try to dig into the history of those hops, what the guy learnt in each of them, why he/she changed, what he gained after each, etc.

share|improve this answer
add comment

Sounds average

This rather old article points at 2 years (anecdotally I have heard 18 months as an average)

The "Bouncing Back" study itself points to a culture of poor techie retention. Surveyed companies said the "average acceptable time to retain their IT workers is just over two years," which is down from an acceptable tenure of 33 months the year before. ITAA's Miller concedes job churn is a problem but says companies began pushing to improve their IT employee retention a few years ago.

http://news.cnet.com/2009-1001-943513.html

Depends on whether they are contract or permanent, and if contracting, did they get renewed? I have also worked with people who have stayed with the same company for 15 years or so and are stuck in a rut in all senses.

share|improve this answer
add comment

Saying that a person, who changed jobs frequently, is likely to leave from your job soon as well, is like saying that, in a series of coin throws, more heads than tails means that next flip is more likely to be a tail.

Acceptance of job, just like hiring, is somewhat random. How can you expect each person, with a lot personal circumstances, to pick an ideal job each time they switch it? What do you want from these people, to stay at crap jobs for years just because you wouldn't hire them if they left?

Or, wait a minute, your company is a programmers' ghetto as well, and you're afraid that the candidate will leave as soon as he spots it? Will leave instead of staying and working because noone will hire him due to frequency of his switches? Then I agree, your worries are reasonable.

share|improve this answer
11  
A person who accepts more than two crap jobs in a row has suspect judgement.If someone shows they can't hold a job for longer than a year over ten years, most hiring managers will eliminate them. This can especially be true at good companies where they have the pick of the prospects. Why should I waste my time on someone who can't work for anybody when I can get this equally qualified person who has shown he can? It costs a lot of money to hire and train a new employee. So yes you should stay at the crap job for longer if you are getting into this territory. –  HLGEM Sep 13 '10 at 19:14
16  
@hlgem, ah yes, these people have sometinhg you wouldn't like them to have when they work for you... they have self-respect. Ha, thank you, I'm not interested in staying in your territory. –  Pavel Shved Sep 13 '10 at 19:37
8  
Self-respect doesn't pay the bills. I wouldn't hire someone like you becasue you sound to me as if you havea an attitude problem which is why you think every job is too horrible to stay at. I have self-respect, but I still have learned to get along in less than perfect places becasue there are only less than perfect places. –  HLGEM Sep 13 '10 at 21:26
5  
Past behavior is a pretty good predictor of future behavior. I left a support job to be a developer. Obviously it was crap, but I had enough sense to focus on my preference to be a programmer during the interview and not be in the habit of trashing employers. –  JeffO Sep 14 '10 at 19:31
4  
@Pavel: Except that HLGEM isn't interested in being fair and respectful to everybody, not when he's hiring. He's interested in getting a good hire. He's entitled to use any legal and moral means to guess who would be best. Moreover, your coin analogy is inapplicable here, as it isn't a priori known that the coin is fair. Given that, steady job-hopping suggests that the coin will fall on "leave" much more often than on "stay". –  David Thornley Oct 21 '10 at 16:16
show 4 more comments

To me, as someone doing hiring, this would be an issue to raise with the candidate bit not an immediate disqualification. However, if the candidate is borderline, this may be the deciding factor. This is an excellent topic to discuss in the cover letter. One thing not to do is to try and hide this. I've seen a resume that didn't have any dates in it, along with a long list of positions. Doing some Google investigating, it turned out to be about 10 jobs in 12-15 years. That was a definite red-flag.

share|improve this answer
add comment

Context is everything. Silicon Valley isn't the only place with unstable employers; somebody who likes working for startups* is going to bounce around a lot between stable gigs. Look at the employers: staying no more than six months at, say, Apple, Bank of America, and Carnegie-Melon University is far more ominous than brief stays at Frank's ConsultantTeria, BadlyExecutedIdea.com, and OurInvestorsBonedUs.org.

(* -- Somebody like me. I can't claim pure objectivity here.)

share|improve this answer
16  
Furthermore, many start-ups that don't implode tend to have distinct shifts in effort. At first there's lots of new code, creativity, innovation, and soft business plans, then there is often a lot of maintenance, scaling, and fine-tuning. These tend to not be the same types of employees. –  charstar Sep 13 '10 at 19:54
show 1 more comment

If there are only 2 or 3 jobs I don't think it would be a problem, but I would ask them about it on the interview to see how they answer.

If you have a senior developer with over 15 years of development, I would expect to see at least 1 or 2 of the company's they've worked on for a long period of time. Otherwise I may not even interview.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.