We are a fast growing software development company and are looking for software developers.

I would like to know, what attracts a software developer most on a company. Is it the kind of software project? The team? The money? The chance on advancement?

Please answer by giving some kind of top-5-list (or more items, if you like).


1) Money.

2) Environment.

3) Interesting projects.

4) Flex time.

Geoffrey Chetwood
+1  A: 
  1. Type of project(s)
  2. Team
  3. Money
  4. Advancement.
+1  A: 

This is a bit of a pollish question, and the answers will be very subjective, so not sure it really belongs here, but...

  • Team. Is it good people? Is it people smarter than me, that I can learn from?
  • Work. Is it interesting, am I going to be stumped and have to learn new things?
  • Responsibility. Do I make a difference? Do I get to make decisions and affect the fate of the company/my team?
  • Money. Can I survive on this?
  • Location. How far do I have to commute?
+1  A: 
  1. Flexible hours
  2. Money
  3. Good management
  4. Lack of customer contact, I like buffers
  5. Good teams
David Smart
you forgot the free beer . . .
Bob Dizzle

in order of importance (to me):

  1. respect - a sense of being valued

  2. trust - a feeling that my decisions will be trusted

  3. comraderie - a good group of people to work with who are comfortable together

  4. equipment - good tools to work with in a comfortable environmment

  5. compensation - decent pay, flexibility in schedule, benefits

  1. Team
  2. Money
  3. Environment
  4. Language(s) used
  5. Location of work

Well I look at the following:

  1. Benefits (insurance, 401K matching, PTO, ect)
  2. Work Environment (Who I am working with and where I will be working. How well I get along with the boss also plays a big factor in this.)
  3. Money - Can't live without it
  4. Flexible Hours
  5. Location - What kind of drive am I looking at and in what kind of traffic.
  1. People
  2. Interesting Projects
  3. Money
  4. Work / Life Balance
  5. People I can Learn from
David Beleznay
+1  A: 
  • Freedom of hours (coming in late, staying late, even trading weekend work for week work)
  • Freedom of dress. I hate wearing pants.
  • Vacation/leave of absence. I've been able to take 2 months off to backpack through Europe.
  • Money. Not gonna lie.
  • Culture. Intelligent people, good work enviroment (multiple monitors, some degree of hardware freedom, headphones, whiteboards, xkcd printouts)
  • Interesting problems. I don't want to write an interface to some ridiculously large antiquated medical system standard. I would like to evaluate and implement a clustering algorithm with geo-data and produce a mashup in Google maps.
Tom Ritter

stability smart co-workers flex time

+1  A: 
  1. Intriguing problems to solve, and the freedom to solve them.
  2. The opportunity to work with like-minded people who also want to solve the problems.
  3. Management that seems like it is trying to achieve something important rather than just being out to Make Money.
  4. Room to use current skills and develop new skills to solve the problems
  5. Management understanding that programmer "downtime" is a myth -- "downtime" is time spent mulling problems while away from working on them. Programmers can be workaholics, but don't like to be forced into it.
  6. Enough money to live comfortably on. You don't want people that feel it's all about the money; you don't want to pay them so little that they think that you feel that it's all about the money.

Here goes 0. Learning opportunities 1. Work Environment (Respect, comradeship, training, support and advice, decent people.) 2. Benefits - Health Insurance, 401K 3. Money - Atleast comparable to current job (or above industry average) if not more. 4. Location.

+1  A: 

As a guy with a small amount of experience:

  1. Will I grow working on your Dev team
  2. Will I grow working with the Biz team
  3. The Project, are we building something i can be proud of?
  4. Telecommuting, i commute 2hrs every day. This is 10hrs of my life a week.
  5. $$
Brian Leahy
  1. Projects: It is imperative that I have fun things to work on, if only to keep me sane.

  2. Environment: If I am stuck in a cube farm in a suit I made the wrong decision.

  3. People: If I can't work with my team what good am I?

  4. Benefits: I want to start a family, and that is expensive.

  5. Money: See benefits. Money = Freedom.


A quality interview process is my #1 most important aspect when I am looking at a prospective job. If I get asked to take a mathematics exam during an interview I usually turn down the offer before I leave. I want to know the people I will be working with and for know how to test my skills and don't just pull a "tell me about yourself" and then talk about how amazing there company is.

Andrew Jahn
  • Project (would take a loooot of money to work on a project that is crap)
  • Money
  • Benefits
  • Team

I think there are two general areas:

  1. The opportunity to write quality code using comprehensible requirements, and thereby produce software that matters to the client in a reasonable time frame
  2. The opportunity to do (1) in an environment where there are no artificial barriers to progress and creativity (fixed hours and working conditions, strict dress code, no choice of development tools, unsuitable processes/formality etc...)

Obviously remuneration and benefits matter a lot, but developers in general are not driven by monetary reward as much as the chance to be recognised as a profession and produce work they can be proud of.

Garth Gilmour
  1. Location. Moving for a job is a last,last,last resort.
  2. Personal reward (non-money). Is the work rewarding to me?
  3. Can I leave work at work? After 8 hours it's MY time and only MY time.
  4. Does my input matter?
  5. Money.
  6. Do they believe in it? Am I given the proper tools to create quality work?
  7. Environment.
  8. Co-workers.
  9. Advancement/Bonus
+5  A: 

The developers who will come solely for money are rarely the ones you're going to want. And, even if they were, you're unlikely to retain them unless you're the biggest dog on the block with the fattest wallet.

That doesn't mean you can get good, experienced developers on the cheap, either. Salary is still the first thing developers are going to check in a job listing. If you're not in the ballpark, they're never going to read further.

To get good developers in the door, your job listing should show that you are using up-to-date technologies and that you know what you want. If you're listing more than 4-5 technologies in your listing, you look like you don't really know what the developer is going to be doing. It also helps to mention the industry you're in and, if possible, give a hook as to one thing that will be interesting about working for you.

Once you get a good developer in the door, they're going to be looking for three big things: (1) Do you know your ear from your elbow? There are far more bad project managers than good ones, so this is important. (2) Are you going to expect the developer to make up for management's bad decisions through long hours and weekends? (3) Are they going to be bored silly writing code for you?

The best thing a project manager can do once they have a developer in the door and have established their basic competency is leave them alone to talk with a member of your team. For the ones who have a lot of options as to where they work, the job atmosphere is often the make-or-break factor.

So, you wanted a list. Here's the order of things that it would take to get me to accept a job in your shop if I'm ever looking for one again:

(1) Money will get me to read your job listing.

(2) Current technology and a clear understanding of what you'd be hiring me to do will get me to call for an interview.

(3) A sense of process and management competence will get me to pursue an offer.

(4) A reasonable workplace with reasonable hours and interesting work will get me to take an offer.

  1. Location
  2. Good working environment
  3. Interesting projects
  4. Responsibilities
  5. Work/Life balance

Not for me personally but by observation in recruiting:

  • Being asked: many people join for the simple reason that you cared enough to ask them to join
  • Supportive environment: many people join and stay because competing companies often rag on them, pressure them, push them, beat them up, disrespect them
  • Respect: they imagine that they'll like and respect their future manager, not in a "Wow, what a great personality" but that he seems like a good friend and seems like he will appreciate their skills
  • Work is interesting: either it really is useful to their careers or it is presented in such a way that it seems useful to their careers
  • Money is good: relative to their previous position, not necessarily on an absolute basis

Most people with 0-5 years of experience will take anything and can be talked into anything, even if they have pretty good skills; they just don't know any better.

For senior people, they are cautious, even if the best of circumstances, and, in some cases, unrecruitable because they'll always find some reason to stick with their current job.

Despite what they say, some good developers care more about the company and using the technology than their careers. The career-focused ones make lots of money, though, so the amount that you pay doesn't necessarily translate into how good or bad the person is.

+9  A: 

Really, this is a complicated question. I've worked for start ups, small development companies, and now one of the largest companies in the world. That said, here's my list:

  1. Location: Being close to home-base helps. Offering positions in California is great, but I need to know why I should make that move. I went through at least three interviews with companies out on the west coast and not one gave me hard numbers on cost of living. Make it appealing, offer assistance and above all don't try to down play the significance of a move.
  2. Obvious company vision for advancement both in product, position AND knowledge: Knowing that your work will be stagnant leads to mundane work days and eventually, I'd quit. Things have to be kept engaging, interesting and pervasive. I'm all for writing in archaic languages, as long as the goal is to move forward. The day I stop learning from my job is the day I quit. I tell everyone I interview that, and so far its worked well as a filtering comment.
  3. Work environment & options: Where I am now, we have an interesting environment where we rarely see our coworkers as most of the telecommute, use flex time, or just aren't in our building. That's great, but we still to be engaged. My manager does a great job of keeping in touch to check in on my needs, and desires. Yep, they call us and ask us how we're doing. Management is a LARGE consideration in my choice of jobs. I've worked in too many small companies where management didn't have time to really, well, manage.
  4. Perks: Yes, everyone likes perks. Insurance, and I mean all of it (medical, dental, vision) is crucial. No benefits? Just hang up now. No 401k or retirement plan? Get one, quickly. Discounts? Now that's just icing on the cake. Not required, but always good to see. Free lunch once a week, drinks and snacks? Awesome, but again, not enough to keep an employee.
  5. Money: Yes, yes if I had it might way this WOULD NOT be on the list. Unfortunately, after recent interviews (3-4 months ago) I've learned that the value of a developer has little to do with skills or the companies needs but more so their budget. Low-balling after two interviews where everything seemed to go amazingly well is a tell-tale sign of a company who is not willing to pay for what they want.
Abyss Knight
  1. Money - Like jekke said, I really just want to know that you're in the right ballpark, but too little is definitely a show stopper, I have college loans to pay off.
  2. The team - How knowledgeable are they first, and how laid back they are second. Do they actually work as a team? I have had my fill of positions where I am flying solo. Being too big is also a turn off though.
  3. Development Methodology - If you are at least trying to be TDD shop and implementing Agile and Scrum ideas that shows that at least someone knows what they're doing.
  4. Perks - Insurance, 401(K) etc are a must but I can also be wowed by the 4 day work-week, work-from home arrangements, flex time, or maybe even an air-hockey table in the break room.
  5. Prospective growth - I still have dreams of signing on with the next Google with plenty of $tockOptions, is that something I can see happening at your company?
George Mauer

My top 3:

1 Environment. I cannot code in a suit.

2 Coworkers. If the job involves a lot of teamwork, and I don't have a team worth working with, we are in trouble.

3 Compensation. The money equivalent is almost always better than a payment-in-kind.

  • Management that will 1) have a corporate/departmental direction/clue, 2) appreciate me, 3) build learning time in projects, 4) allow me to do my job without too much interference.
  • Very smart coworkers who will 1) appreciate my knowledge when I know more, 2) share their knowledge when they know more.
  • Good compensation, both salary and financial benes such as 401K.
  • Good work/life balance (reasonable hours and flextime).
  • My current office with a door, lots of windows, and a view of the mountains doesn't hurt either!