top | item 14042409

Ask HN: What makes a good place to work?

90 points| silversmith | 9 years ago

For some time I've wondered what makes a place of employment more than just a sweat-to-cash conversion machine, something you can enjoy. As a developer, I know I have my preferences, and I know my current colleagues more-or-less share them. But do others? Are there any universal developer-values that make one place more attractive than another? Besides fat stacks of cash of course.

Couple years ago on a whim I started studying for MBA, and now that it's drawing to a close, the school is asking me to do some research. I've decided to tackle this question - what makes a good place to work, for a software developer?

So I'd like to ask you to take five minutes of your time and help me - would you please fill out https://survey.mikoss.lv/ ? The diversity of HN crowd should make for some interesting data. Thank you in advance!

71 comments

order
[+] ryandrake|9 years ago|reply
Here's one thing I've been thinking about more and more: If you think about your tech job as a sports game, you have offense plays and defense plays. Offense can involve anything from creating great things, building sw architecture, designing features, presenting results to management, prioritizing workload, thinking ahead, and planning for the future. Defense includes fixing bugs, cleaning up technical debt, putting out fires, dealing with angry customers, defending the team from micromanaging execs, answering pop quizzes from the boss, justifying your actions, proving you're doing your job right, doing postmortems, and looking backwards. The offense plays are all about creating stuff and driving things that happen, while the defense plays are always about responding to things that happen and anticipating so you can respond better.

The worst jobs I have had were nothing but running defense day in and day out. Putting out fire after fire, with management who evidently hired me to put out fires yet don't trust me to do it right. There must always be a little defense, but primarily I want to be running offense, getting in front of things, and driving forward. It's empowering, satisfying, and you leave for home every day thinking "without me, XYZ wouldn't have gotten done" rather than "what urgent thing did I fail to respond to today?"

When applying for a role, I'd try to figure out how to probe interviewer to get a feel for whether or not I'm applying to be on the offense or defense team. It makes a big difference morale-wise, job satisfaction-wise, sanity-wise!

[+] falcolas|9 years ago|reply
Creators vs. Maintainers.

There are some people who really enjoy the Maintainer role, and will not enjoy being on a Creator team, and vice versa. It's always important to know which you are, so you don't find yourself going crazy or facing a skills mismatch.

[+] wsp_nomad|9 years ago|reply
Wow, that's deep. Well said and I think that's exactly the situation I'd like to be in as well--being a member of the offensive push.
[+] AlexB138|9 years ago|reply
For discussion purposes, in order:

  - A team I enjoy working with.
  - Career growth, solid pay and benefits.
  - A culture that doesn't tolerate toxic people or excessive politics.
  - A quiet environment where I can concentrate and/or remote work days.
  - An interesting project.
I used to care more about working with resume building technology. As I've gotten older, I care a lot more about interpersonal issues and my work environment.
[+] xapata|9 years ago|reply
I've narrowed my list down:

1. A team I like working with.

2. Enough pay to support my lifestyle.

As I've gotten older, I've discovered that what I do doesn't matter, only who I do it with. Oh, and my health.

[+] silversmith|9 years ago|reply
I guess I didn't go in the details enough - the professor asked me to steer the research more towards what could be applied in hiring process. You can show solid pay and interesting projects in an interview, but interpersonal relations and culture take time to clarify. For example, when I started working in my current company, I couldn't stand another guy there. But over the next year I both came to recognise what he was doing as highly important for the company, and found a perfectly ordinary human being underneath the image left by the first impression. Today we are often working together on projects, and both benefitting from each others skill set. But I absolutely loathed the guy on the first day.
[+] ryandrake|9 years ago|reply
I've found over the years that technologies don't build resumes, results do. If you can say that you designed, implemented and tested software for $COMPANY's $PRODUCT resulting in $NUMBER successful product launches worth $N million in revenue, it doesn't matter so much what the technology used was. My resume used to be a laundry list of platforms and languages, but it was not as effective as when I re-wrote it to focus on business results. Now that I'm more focused on management, I don't even mention the technologies I've used, except for what I'm current on (current job).
[+] AnimalMuppet|9 years ago|reply
I'd put your third item above your second, and your fifth above your fourth.

Despite my nitpicking, that's a really solid list.

[+] friendzis|9 years ago|reply
Would you care to elaborate on what you consider to be toxic people?

I have met people that are hell to work and/or interact with, though the word toxic does not come to mind when trying to describe them, therefore I'm curious.

[+] osullivj|9 years ago|reply
In my 30 years of experience, the single biggest factor is your manager, the person you report to. My last permie gig (2010-12) had great tech, great pay & great colleagues, but all that was negated by shitty slave driving chaotic management. Conversely my 2004-2010 permie role was at a firm that had a bad reputation as brutal hire and fire shop. But 2004-7 was a career highpoint for me. I built great software and a great team, got promotions and bonuses. Then my manager left for another role, I was exposed to the vicious politics at the next level up, and things went south. Now I'm a contractor bootstrapping on the side. If I get my venture off the ground I want it to be a dev shop that folk never want to leave.
[+] silversmith|9 years ago|reply
One of the managers at my very first job put it best: a good manager is like an umbrella, shielding you in the downpour but somewhere out of sight in the sunshine. Meaning, a good manager isolates the employees from in-fighting in the above levels and takes the blame coming down, but exposes the team to praise when a project is going smoothly.
[+] joeax|9 years ago|reply
My criteria:

1. Being able to work from home.

2. Being able to work from home full time.

3. Getting paid well.

4. The work is gratifying and challenging.

Personally, everything else is fluff and unnecessary: Ping ping tables, free drinks, beer carts, the right "fit" or culture (no place is an exact fit, and even if so, people come and go).

[+] ChuckMcM|9 years ago|reply
I have thought a lot about this question over my career both as an employee and as a manager wondering how to make the environment better.

One of the conclusions I've come to is that the group dynamic is unique to the individuals in the group. This means that people who get along with each other have a better experience at work than those who don't (which is kind of obvious) except that the mix is important too.

When I first started hiring I focused on the technical requirements of the role and experienced hiring people who were incompatible with other members of the team. And I have also experienced people who just made everyone else on the team more functional. Sometimes it is obvious, people who are blatantly prejudiced or misogynistic, sometimes it is more a subtle introverts and extroverts.

But when you get it right and people get along well, and the problem is an interesting one, and everyone feels like they are contributing in a way that is both valued and part of the bigger plan, they respond very favorably on surveys about great places to work.

As an employee I look for checks on antagonistic behavior of peers, and enough transparency so that I understand what is important and what isn't. And of course a level of autonomy and delegation that is appropriate for my experience level. Nothing really crimps my style like a manager telling me how to do my job every day.

I've known employees however for whom what is important is simply the quantity of office 'perks.' Free stuff like food, t-shirts, and field trips. They do enough work to not get fired but not much more, and they really don't take anything outside the office (as soon as they leave the building they forget any and all work efforts, or at least put them out of their mind).

Bottom line, a good place to work is where you get along with the people you are working with and share respect. Pretty much everything else is noise.

[+] reckoner2|9 years ago|reply
I think "team fit" as you've described is probably the most important factor for me. But it's a really tough thing to interview for / create within a team.

I had a coworker who could be described as a 'social butterfly', someone who can talk to anyone for hours on end and make them feel comfortable. They would spend half an hour with each interview candidate, not asking any technical questions, but just having a friendly conversation. Then they would give a 'yes/no' opinion of whether we should hire the candidate. All of their preferred hires were very successful and fit in with the team. It was remarkable. Some people are just excellent at reading others. Most people really aren't sadly.

[+] logfromblammo|9 years ago|reply
Some of the extra items:

Individual office with lockable door, and you get the key when you move in, rather than hunting someone down to ask for it.

Work weeks are maximum of 40 hours.

You have one boss at a time, and you know who that person is. Your supervisor's boss will never ask you to do anything directly.

No on-call after hours, ever.

A wall of separation exists between work life and social life. Social opportunities with co-workers exist, but can be skipped without consequence.

Performance that exceeds expectations is recognized and rewarded.

[+] ExactoKnight|9 years ago|reply
I find there tends to be a tension between going above and beyond, and striving to keep a culture of work life balance.

In fact I know some companies hate hiring from people who worked at places like Amazon, because they try to bring such a brutal overwork ethic that can ruin the balance other people are striving to achieve.

[+] twobyfour|9 years ago|reply
That office with a door.... Who offers that these days, and can I please go work there?
[+] leggomylibro|9 years ago|reply
1. Get paid enough to pursue interesting hobbies in my free time.

2. Have a contract that lets me own anything that I create that doesn't relate to my work.

3. Have enough free time to pursue interesting hobbies.

That's about it, really. Autonomy at work is important too, but I can overlook a lot of bullshit if I have something to look forwards to at the end of the day.

I like to learn and make things. That's a big part of why you hired me. Don't restrict what things I can learn and make. Don't claim ownership of things you don't pay me to do. Not only is it unenforcable and unethical, it encourages me to leave at the drop of a hat if I think I'm on to something. I don't understand why this is a controversial topic with so many employers.

[+] pdelbarba|9 years ago|reply
I'd say a big one for me is hours. I'm currently capped at 40 hours a week and couldn't be happier.
[+] silversmith|9 years ago|reply
This seems to be a uniquely (?) american cultural issue - in my eastern eouropean working experience the long weeks are few and far between, and it's generally accepted that you take it easy when the crunch time is over.

Is that the same across all industries in USA? From what I've talked with some finance guys from the states, they have their hardships when it's time to close the year (or maybe quarter), but get to slack off later on. Only in software does it seem to go from mad rush to "normal" level to mad rush, never dipping below. Or am I mistaken?

[+] gorbachev|9 years ago|reply
The survey is missing team dynamics type of stuff. Do I enjoy working with the people I interact with most frequently. If I don't, everything else in the company could be the best in the world, but I would still hate my job. I think there are two components to that...are they competent and how well I can get along with them.

Also my current employer is very, very active in philanthropy and charitable activity. While I don't personally take advantage of those opportunities all that much, I know a lot of other people in the company do, and it's a big factor why they enjoy working here.

[+] pascalxus|9 years ago|reply
- Good work/life balance

- Stability (can remain in the same job 5+ years)

- Money and benefits

- Close commute

I find that the Work/life balance part of it is the most important because this is the most important factor that influences almost everything else: cooperative culture, better teamwork, no toxic environment, less politics, no stabbing in the back, etc.

[+] AnimalMuppet|9 years ago|reply
Work/life balance, absolutely. I've got a wife and kids. I don't live and die with the project meeting some arbitrary deadline. You want it to ship by a certain date? Fine. Control the feature list. You want it to ship by then plus have all the features everyone can dream up? Sorry, I'm not going to kill myself to make it happen.

Now, in this business, I get that crunch time happens sometimes. I accept it as part of the job, as long as it's rare. One month a year is reasonably rare. (On my current job, it was one night in seven years.) One month out of two is not rare, and I won't put up with it.

[+] dcwca|9 years ago|reply
I'll fill out your survey, but also answer here for discussion:

- A purpose and mission you can believe in

- Opportunity for personal and professional growth

- A high quality team to work along-side and be inspired by

- A diverse and inclusive atmosphere

[+] combatentropy|9 years ago|reply
Ideally I am making something beautiful. This means languages and tools that are well designed and easy to use, enough time to make the program beautiful, and little or no bureaucratic paperwork to suck away energy.

It is required that I make something I believe in, that I think is actually helping people. Note that this can be different from making something that people ask for or something that tickles their fancy in the short term but causes damage in some way long term.

I would like to be paid the industry average for what I do. If I am paid a lot less, it had better be because I work for a nonprofit or something (see above about helping people). It's also dangerous to be paid a lot more than average, because I don't want to be a target for layoffs.

I work with a laptop in my lap. I am low maintenance. I don't really want free soda, ping pong tables, company picnics, free tickets to the game. I just want a company network that doesn't flake out, high-quality open-source software wherever possible, and minimal management.

[+] trapperkeeper79|9 years ago|reply
You got into an MBA program on whim? Was it full-time?? I look at the sticker price for the degree (around 100K just base tuition for a top program; more than double that in lost income). Even a part-time program seems like an expensive proposition. I just cannot justify it as a mid-career tech professional.
[+] s73ver|9 years ago|reply
Pay rate. While money is not the only thing in the world, a company that doesn't pay well probably isn't going to be enjoyable to work at, either. People who are worried about making ends meet are not always pleasant to be around.
[+] jeffclark|9 years ago|reply

  - clear understanding of the problem I am being asked to solve

  - major influence (if not outright ownership) of the solution to that problem
Good bullet points for anyone who works, not just software developers.
[+] mnm1|9 years ago|reply
Being at least a mile from your nearest coworker, preferably hundreds or thousands of miles and not having to work unpaid overtime (slave labor). To be fair, the latter is by definition included in the former if you have any kind of sense and self-respect. That literally solves 99% of work problems. The other 1% is communication. I didn't say it was perfect.
[+] edw519|9 years ago|reply
I gave anything related to what I was actually working on 5 stars.

I gave everything else 1 star.

This has always been pretty binary for me.

When I have loved working on what I was working on, nothing else could have screwed that up. I just kept plowing on, motivated almost solely by compulsion.

When I have not loved what I was working on, nothing else could have helped except working on something else that I loved working on.

[+] webscalist|9 years ago|reply
- no mac

- vim

- no javascript

- no overtime

- no on call

- personal projects on fridays

[+] Haul4ss|9 years ago|reply
What do you have against mandatory access control?
[+] newsat13|9 years ago|reply
If you are look into a startup, beware of companies that are in "growing" phase. While this might get you all pumped, in most cases they just sideline you if you are not the decision maker (Which is what happens if you are a developer).
[+] ExactoKnight|9 years ago|reply
What do you define as a "growing" phase? 10 people? 30 people? 100-200 people? Uber 1000+?
[+] Tempest1981|9 years ago|reply
Can you separate out the HN responses from the Reddit responses? Saw the same link in https://www.reddit.com/r/SampleSize/
[+] silversmith|9 years ago|reply
In the end I'm striving for a larger sample size.

I did not build in any 'hard' differentiator for source, but I should be able to get a feel for the distribution by the timestamp of answers, as I tried to space out the submissions to social media sites. I'll try to remember that for when it's time to publish the results.