Software job: good, bad, mediocre?
March 5, 2012 4:21 PM   Subscribe

First job in the software industry. Is it good, awful, or just mediocre?

I'm in my first real software engineering job, so I honestly don't know whether I have it pretty good as it is, or if I could do better somewhere else. Opinions please!

About me:
I just turned 28. I have a BS and MS in CS. After college I goofed around in bioinformatics, web development, robotics, research, contracting, teaching night classes...all low-paying, quirky, fun, temporary jobs. I really get a kick out of writing awesome and interesting code, out of building dorky things with blinky lights, and of helping people figure stuff out. Choosing to sign up at Large Software Company a year ago was a HUGE personal decision -- brought on mostly by peer/family pressure to be a grownup, and to stop spending half my day biking, listening to music, drinking beer, and generally being an obnoxious hipster. (Given the job market, getting the job was a piece of cake.) I want to have kids in the next couple years, so getting a real job with financial stability was a priority.

About the company:
It is rather large, and makes a single successful product (not successful enough that you have heard of it). There are several thousand developers. Probably 75% are doing maintenance, but I somehow ended up in the 25% that does new development. Everything is straight C -- no open-source libraries, no scripts, no database back-end, no nothing. They supposedly won't hire anyone without an MS in CS, and 5 years experience.

Good stuff:
  • Salary is decent -- not Silicon Valley wiz kid salary or anything, but solid.
  • The company is led by geeks (well, maybe former geeks). There are zero MBAs or smarmy sales people.
  • Employee turnover is very low. The company is extremely successful and will be around for a long, long time. I could basically work there as long as I want to.
  • Every single employee I have worked with has been professional, hard-working, and extremely competent. Many are very, very smart.
  • There is lively exchange of ideas. Everyone keeps up to date with books and academic papers, which is awesome.
Worrisome stuff:
  • Almost all of the employees in my group are on H1B visas from China and India (I'm American). This is atypical, the groups that do maintenance coding are mostly American. The H1B employees are insanely smart, and work absurdly hard. Many live in an apartment complex adjacent to the corporate campus, and people are walking in and out all night.
  • I really genuinely like my coworkers, but there is absolutely no socialization outside the occasional hallway chat. Everyone eats lunch in their cubicles. I have literally never met a coworker outside of work, despite several attempts. This makes me sad.
  • The hours are kind of crazy. I'm typically working 8 am until 7 pm or so, and until 2 am about once a week. I work maybe every third weekend. This is required work with everyone from the team, not because I'm behind on my own deadlines. It's definitely hurt my relationships and my health compared to my previously laid-back lifestyle. Having kids seems completely crazy now (although I guess people manage).
  • I theoretically get 4 weeks vacation a year -- but I can't realistically take more than 1 week a year until I have a couple years more seniority.
  • I'm not really great at the job. The coding is fine -- I'm above average on that front. The juggling a million little tasks, dealing with the corporate hierarchy, and somehow showing steady progress every single day...that's something I'm just not that great at (yet?). I can keep up, but I'm not gonna be Employee of the Month or anything.
  • The company does regular layoffs -- around 1% a year. I was recently told outright that I could be replaced with someone from China with far more experience for a lower salary. This strikes me as carefully calculated to strike fear into my heart. And it kind of works.
I really want to Get Excited And Make Things -- or, failing that, have a boring job that gives me enough free time that I can have a family and take up a hobby project or two. Money isn't a huge driver for me, but of course it's better to have it than not. So far I don't really feel I'm succeeding in any of these departments, and worse, I'm starting to get burned out by the long hours. I need to figure out whether I'm in the middle of a temporary period of intense dull work before moving on to something more fun, or whether this is just the nature of the job and I have to figure out how to master and enjoy it.

What do you think? Am I just being whiny about transitioning from post-college bumhood into adulthood, or is this really not such a great position compared to what I could be doing? Should I switch to a startup, or try a go of it in independent consulting? I need to know!
posted by anonymous to Work & Money (25 answers total) 4 users marked this as a favorite
There are environments where you can derive some satisfaction from your job, connect socially with your coworkers, and have some free time to pursue your non-professional goals (which everybody should have).

You have none of those things. You should look around for another job. I don't think this one sounds worth trying to fix.
posted by aubilenon at 4:30 PM on March 5, 2012 [2 favorites]

The hours plus the "you can be replaced" comment tells me that you are just a cog. Companies hiring programmers aren't all like this, feel free to get another job any time. In the meantime, what happens if you stop working 60hrs a week, or start trimming them back slowly until you arrive at 40hrs? Plus, if they can get a better person for cheaper at any time, why did they hire you? Call their bluff and keep your local NLRB phone number handy.
posted by rhizome at 4:31 PM on March 5, 2012 [3 favorites]

This is really not such a great position compared to what I could be doing. The choice is not between this and a startup (which has long hours and less job security) but between this crappy corporate job and a much better corporate environment and something else.

Go apply for LOADS of jobs, see what comes back and go from there. If you're employed, you can be picky.
posted by DarlingBri at 4:33 PM on March 5, 2012 [1 favorite]

They supposedly won't hire anyone without an MS in CS, and 5 years experience
part of me wonders if they are inflating their job requirements to make it easier for them to hire H1Bs they can exploit, at least in your group. If overall turnover is low, I somehow doubt the Americans on the other teams are working the same hours as you.

"Low turnover; I could work there as long as I want to" seems to directly contradict "regular layoffs, I could be replaced with someone from China" but whatever. It's software. You want job stability, go be a plumber or something.

There are probably a lot of software companies that work sort of like you're describing, but there are also a lot that don't. You can find a better job.
posted by phoenixy at 4:41 PM on March 5, 2012

Yeah, you can do better than this.
posted by phrontist at 4:45 PM on March 5, 2012

I have worked at a handful of software companies. From small consulting firms to successful start ups. I would not want to work in the environment you describe and where I in your shoes would start looking for a new job. Attempting to intimidate/threatening your employees is unacceptable.
posted by phil at 4:47 PM on March 5, 2012 [1 favorite]

I really dislike hearing about the threat of layoffs; that's a really lousy way of motivating people to work long hours or to get them to compete against each other. But if you leave that out - the rest of it is not dissimilar to several consulting/software development shops out there.

I kind of assume that I would need to work long hours from time to time; there is no getting around it in certain kinds of jobs/roles. But 2 am once a every week in a non-start up setting sounds like a bit much.

It is always worthwhile to look around and find out what else is out there. I think you'll be able to find employers who don't use fear to motivate employees.
posted by justlooking at 4:51 PM on March 5, 2012

The hours are kind of crazy. I'm typically working 8 am until 7 pm or so, and until 2 am about once a week. I work maybe every third weekend. This is required work with everyone from the team, not because I'm behind on my own deadlines.

That's insane. You have a mandatory 18 hour day once a week? You have 'normal' 11 hour days? Run, don't walk, away from this place. Software companies who treat their developers like this view their engineering staff as an easily replaceable commodity. The fact that you're surrounded by H1B holders, who's ability to remain in the US is tied to their employment with the company, and the threats to outsource to China only serve to reinforce it.
posted by Fidel Cashflow at 5:02 PM on March 5, 2012 [5 favorites]

You can do better than this - look for other jobs.

THAT SAID, for this point
I'm not really great at the job. The coding is fine -- I'm above average on that front. The juggling a million little tasks, dealing with the corporate hierarchy, and somehow showing steady progress every single day...that's something I'm just not that great at (yet?). I can keep up, but I'm not gonna be Employee of the Month or anything.

this sounds like something that you'll need in most jobs, and you should spend your remaining time here attempting to improve on juggling tasks and 'showing progress' - assuming that you actually do something every day, it's important to be able to record this and [make others] understand why this was useful.
posted by jacalata at 5:03 PM on March 5, 2012 [1 favorite]

Hang on to this job until you find another.

You're a cog, and frankly I suspect that this "nobody that isn't an MS in CS w/ 5yrs" thing is just an H1B excuse (or, phrased more bluntly, your company is run by people who like to abuse the system so that they can have the chance to enjoy abusing immigrants).
posted by aramaic at 5:07 PM on March 5, 2012

I'm typically working 8 am until 7 pm or so, and until 2 am about once a week. I work maybe every third weekend.

Not normal, but not atypical, but yeah, you can do better. You are unlikely to completely escape having to juggle lots of little tasks, though.
posted by ignignokt at 5:24 PM on March 5, 2012

No, you're getting fucked.

Find someplace new to work.

The juggling a million little tasks, dealing with the corporate hierarchy, and somehow showing steady progress every single day

Programming is pretty much juggling a million little tasks. Get software to help you organize the tasks: anything from evernote to redmine.

Find a startup if you want away from corporate bullshit.

An expectation of steady progress every day isn't really realistic. Programming happens in fits and starts. You just need to learn to bullshit better.
posted by Netzapper at 5:42 PM on March 5, 2012 [5 favorites]

nthing the sentiment to keep hold of this job while you go find one at a company that doesn't squeeze you like a 3 day old lemon for one more drop of juice. Most things about this job seem not too bad, but the hours requirement from a non start-up is crazy, coupled with the "You can have 4 weeks but you better only take 1" vacation arrangement tells me this is a bad company to work for.

I worked hours like that for several years at a couple of software companies. It burns you out and wreaks havoc on your personal life. At first it seems like it's not too bad, but over time the burnout in the core of your being gets worse and worse. Get out before you're drained.

Also, as a side note, longer hours at a software company tend to not actually result in increased productivity. At those companies I worked at where 12 hour days were the norm, we noticed that people tended to just take longer to get things done since they expected to be there until 8 or 9 anyway. And during the crunch times that we worked 18 hour days for weeks in a row, there were a lot of fatigue-induced mistakes that were very costly time-wise to fix.
posted by barc0001 at 5:43 PM on March 5, 2012 [1 favorite]

The fact that a large company employs many people on visas is a fact of life. Work for a large company and that what they do. The fact that someone says that you could be replaced with a cheaper laborer is undoubtedly true - but probably says more about that person being a dick than anything else.

Sounds like you are in a great position to gain a lot of experience and become an awesome programmer - and that's the thing you can take away from this company- the chance to hone your skills for cash. Sounds like the good outweighs the bad.

Once it ceases to be an intellectual challenge maybe then look for another job, but nothing you said in your post raises a red flag.
posted by mattoxic at 5:59 PM on March 5, 2012

I don't understand. You want to innovate and create things, but you signed on to work for a giant corporate monolith? Because your parents wanted you to? And you're 28? I'm rolling my eyes, but let's continue.

You're going through culture shock. In my experience at some big software companies, the H1B people really affect the culture of the company. H1B's can't afford to hop companies every year, so they tend to stay put and not push the envelope too much, which may include working longer hours to prove their loyalty to the company. Foreign workers are not typically 20-something binge-drinking come-what-may indie rockers, they're usually established professionals trying to gain citizenship and/or provide for a family. Now, this is certainly not true on the whole, but having a large portion of workers that have a legal and financial incentive to stay put definitely will shape your work environment.

Honestly, it sounds like you're a fish out of water. Maybe you're okay with that. Maybe your work life doesn't need to be perfectly suited to your personality and the intelligence and professionalism of your colleagues is enough to pull you through the long hours. But you also have a lot of other options, especially once you've gained some experience at this company.

You need to start thinking about what role you want work to have in your life instead of relying on social pressures to guide you. Do you want to work at a company like this? Try, as a thought experiment, imagining your perfect job. What are the perks? Flexible hours? 40 hour workweek? Part-time? Opportunities to socialize outside work? Start with your ideal and then look at your options. You'll never find a perfect job, but you might find a better balance than what you have.
posted by deathpanels at 6:36 PM on March 5, 2012

"I theoretically get 4 weeks vacation a year -- but I can't realistically take more than 1 week a year until I have a couple years more seniority."

I've been working in high tech for 20 years and from Day One I've been a big believer in actually taking the vacation time every year, no carryover. Four weeks? Take it and enjoy it. And leave the blackberry behind, or at least only turn it on once a day.
posted by intermod at 7:37 PM on March 5, 2012

I used to work at a company whose name rhymes with Schmepik. The experience sounded very similar (and I wouldn't be surprised if you actually worked there). I believe that the best way to keep quality employees, and thus keep your company strong, is to treat your employees with respect. At many companies of this type, however, they prey on young people who don't know what a real working environment should be like. "Ooh!" they say. "You get doughnuts and pens! You can work in your pajamas!" Well, if that's more important than your dignity, or having your skills and talents respected in an ethical way, you're welcome to it.

I left to work the Best Buy sales floor. I started the day before Thanksgiving. It was heaven compared to being pitted against my coworkers and logging my day in 15-minute increments. I still have weird dreams, and it's been eight years.

Believe me: it's not worth it. There are better jobs out there.
posted by Madamina at 8:28 PM on March 5, 2012 [2 favorites]

Programmers are in high demand. You found this job easy. You will find your next job easy. You have an MS in CS during a boom time for developers. Repeat that to yourself. If you quit today, you could go to a recruiter and have a job by the end of the week.

I have a friend who was an amazing programmer and in a similar experience to you. He simply left his job. Just literally walked out of a meeting one day (two days before Christmas where they gave a "we're so loyal, but please work over Christmas just this once," actually no one asks to work over Christmas, they simply say, please don't work over Christmas, but we expect you to hit your post Christmas deadline). I was flabbergasted. He found a job in less than two weeks, it paid more and it was less hours.

If I were you, I'd do the following:

1. Start working normal, 8 hour days. If they ask you to stay later, say you'll take care of it tomorrow. Stick to the 8 hours, what are they going to do fire you (because you're leaving and you don't care right?).
2. Spend the extra time you have looking for a new job with a recruiter ASAP. As in right now, start looking for recruiters. I would really encourage you to go for a high paying contract job that does everything hourly. When you're hourly suddenly people don't expect you to work 70+ hours a week.
3. Sit back, enjoy job security while looking for a new job. If you get any more pressure to work or anything that's pissing you off ... as in if you go home at night going, "I want to quit ..." quit. Just don't come in the next day. No need to make a big deal about it. Say you're taking a sick day to regroup yourself, go in the day after that and calmly quit. They won't care, they're working with H1Bs. They're not in it for the long term.
4. You care about your job 100x more than your employer cares about you. It is sad but true.

Keep saying the mantra that they need you more than you need them. The job market for competent programmers is crazy right now. You need to accept that this will not end well, that you'll be burnt out in 12 mos. otherwise and see the light at the end of the tunnel.
posted by geoff. at 8:55 PM on March 5, 2012 [1 favorite]

At least in Silicon Valley, there's a real bubble at the moment. A talented engineer should have his or her pick from many desirable companies. I don't know where you are, but you should be able to find something that you have very few reservations about in most places with a healthy tech sector.
posted by jewzilla at 10:58 PM on March 5, 2012

I was recently told outright that I could be replaced with someone from China with far more experience for a lower salary. This strikes me as carefully calculated to strike fear into my heart.

If someone at any company I worked at told me this even once, I'd start searching aggressively for a new job that afternoon. And I dropped out of a mid-tier state school with a GPA at least 1.0 lower than yours, after studying music.

You have an MSCS. Here in the Silicon Valley, talented coders get what they want. Talented, I said, not world class, not Olympic champion, but just talented. You said you were pretty good at what you do. You know who'd hire someone with an MSCS and some talent? Google. Apple. Netflix.

Say what you will about your current salt mine, they're not those companies. Life is too short for someone as credentialed and talented as you to waste it putting up with this bullshit.

Run. Before you become a zombie.
posted by phoebus at 11:26 PM on March 5, 2012

Some people are saying that software developers are in high demand. I challenge this assumption. I think it depends on where you live. In my neck of the woods, for example, the idea that software developers are in high demand would be considered laughable. Highly educated and skilled software developers are a dime a dozen. Just food for thought that leverage will depend highly on location...
posted by Yowser at 1:25 AM on March 6, 2012

Unless they are in a land grab competition, there is no good reason for them to take "crunch all you want, we'll make more" attitude towards engineers. In reality, it will hurt productivity in the long run, cause more bugs and more recidivation in defects (this is documented), destroy morale and it will ruin your health eventually.

Threats of layoffs are only effective if you have no other options. Get other options and those threats becomes meaningless.

So the questions become, "can you change this?" and "is it worth it?"

I work at a company wherein me and another very experienced developer created the current engineering environment. Crunch time that is not intentional is a symptom of poor planning. We have never had crunch time because we designed it out of the equation, at least never until this week. Last year we were purchased by a very large company and they have more or less granted our autonomy. Last week we were given the task of writing a last minute demo that the top brass in the company will be using. Enter crunch time. And you know what we're doing? Everything we can to eliminate/mitigate it. Why? Because that makes happy engineers. Happy engineers write better code. Happy engineers want to stay in their job.
posted by plinth at 3:24 AM on March 6, 2012

The long hours and weekends are unjustified in the situation you describe. I have worked for various name brand big software companies and haven't worked an hour I didn't want to in years.
posted by w0mbat at 7:08 AM on March 6, 2012

There are lots of programming jobs that are effectively assembly line positions where mass amounts of coders are herded into huge office parks to deal with production and maintenance all day. This sounds like what you got roped into without the tradeoff normally allowed where you just have to work for 8 hours and then go home. There are plenty of well-paying jobs that are better environments than this one where you will be doing more interesting work and working with better people. Alternately, there are plenty of "boring" coding jobs where you will work fewer hours. This job provides neither.

The choice isn't "low paid interesting work with cool people" vs. "decent paid boring work with unfriendly coworkers." You can find a workplace with lots of good things at the same time.
posted by deanc at 8:16 AM on March 6, 2012

Often a job will involve tradeoffs, but it sounds like yours errs on the side of too many.

For example, no socializing would be fine with me in a 40-50 hour a week job. But if you're spending 11 hours a day at work and not socializing, you're basically completely cut off. Even for a fairly introverted person like myself that would get difficult.

Conversely, 10-12 hour days in the typical Silicon Valley startup culture (lots of team-building and camaraderie) can be a fun experience, as long as you're willing to make that the focus of your life.

So in a startup, you're likely (of course try to figure this out when interviewing) to have a more fun and cohesive culture. Possibly less money (depending on their funding) and probably similar hours, but with much more sense of building something and being part of a team.

Or you could try for a different large company. They're not all like that, and don't all involve crazy hours of solitude. I've worked for a couple of the big well-known software developers and they're generally much, much better places than what you describe.

Basically, the place you're at sounds like a typical large code factory, where the focus is on efficiency and getting the most out of their workers for the least (common in the gaming industry too, EA is notorious for this). The more engineer-focused companies take a very different approach (I'm talking places like Facebook, Google, Microsoft, etc) where they bet that giving employees time, fun, and freedom will pay off. I know little about business and can't say which is better for your company, but I think the latter is always better for the developers themselves :)
posted by wildcrdj at 11:26 AM on March 6, 2012

« Older I broke up with him years ago, but we stayed...   |   Why can't I watch the English Premier League on my... Newer »
This thread is closed to new comments.