I have an offer from a company, I'll call CompanyOne, that I am on a time crunch to answer. I may potentially have an offer soon from a very different company, I'll call CompanyTwo, and I am terrified that I might not be fully aware of the impact that my decision between the two might have. My question, thus, is:

What are the things that I should consider when making this decision, and what impact will they potentially have on my career?

First, a bit about me:

I just graduated with a BS in Computer Science; in University I was trained mainly in Java development (with a bit of C and C++). I love Windows, nothing against Unix but I grew up with Windows and know all of its ins and outs. Since graduating, I decided to try out C# to see if it gave me more of a C++ power feel without all of the annoying downsides. Good God it does, going back to Java now feels pretty gross, everything just feels ever so slightly less frustrating and tedious in C#, and I've been absolutely loving it. So, I've been emphasizing C# on my resume in the hope of getting to work with it, especially since I have a thing for Windows.

CompanyOne: I was contacted and rushed through the interview process by CompanyOne in a 2 day period, they made me an offer immediately after my technical interview, but the offer is below average for an entry level software dev salary out of university. CompanyOne has been around for well over a decade, and (while it is a full-time position with the company, regardless of the contracts they are doing) does a lot of Microsoft contracts, working with Microsoft Technologies and is near Microsoft location-wise, so some projects can even require going on-site to Microsoft campus. To some people this might sound like a turn-off, but I'm very interested in Windows dev, with my tentative goal (given no real experience in professional dev) being to do lower level Windows development for Microsoft or Intel, or Windows driver dev for any of the myriad of hardware companies out there. I asked for a week to think over the offer, and just as I was planning to accept, CompanyTwo called me.

CompanyTwo: after 2 weeks of no-contact (which I had assumed meant I had failed my phone technical interview), they called me and told me they wanted to fly me halfway across the US for a final round of interviews (for a local job, the interview is just halfway across the US). I told them I had another offer that I was very much interested in, and gave them some details and was told "give us a chance, the department you'd be in generally offers 'significantly more' than the offer from CompanyOne, though I obviously can't give you concrete offer details now". CompanyTwo has also been around awhile, and is entirely Java development, but they are their own company as opposed to working on Microsoft contracts. I made it clear over the phone that I was leaning towards CompanyOne simply because it was more in line with where I want my Career to go, but told them I was willing to fly over for the interview and see how things go if they wanted to proceed anyway (they did).

I have been entirely honest with both companies along the way, and CompanyOne has agreed to wait until after my interviews with CompanyTwo for my decision on CompanyOne's offer. The financial implications between the two will be obvious, I guess my current concerns are:

If I choose CompanyOne:

  • I could get typecast as a second-rate developer when attempting to move to a different company later in my career because CompanyOne does Microsoft contracts. Is this a real fear?

  • I could get stuck there for above reason? (it doesn't sound like upward mobility within the company offers great pay benefits, as far as I can tell, so it sounds like moving to another company after a year or two is what I'll want to do).

  • Probably more of a hackey, 'just get things done so the contract is over' type of coding as opposed to writing long term robust code like I'm guessing non-outsourced work would prioritize. (This is 100% speculation)

  • Any other downsides of working for a Microsoft contractor that I don't know about?

If I choose CompanyTwo:

  • I have to work with Java, don't gain experience with C# and Microsoft tech.

  • I probably will get less responsibility early on, I'm guessing, given that I'll be working with projects for the company as opposed to contracts for other companies. (Again, 100% speculation, but this is the idea I've been given by interviews with other companies).

I'm leaning towards CompanyOne hoping that it will take me more in the right direction and give me a lot of varied development experience early on in my lifetime as a developer, but I haven't heard CompanyTwo's offer yet, and I'm concerned there are other factors I am not considering as well. I don't have a lot of contacts in the programming world with enough experience to guide me in this matter, so I am asking it here. My question, again, is:

What are the things that I should consider when making this decision, and what impact will they potentially have on my career?

Of course, this is rather presumptuous given I don't yet have an offer from CompanyTwo, but I will only have 1-2 days to make a decision after I get feedback from my interviews, so I figure asking ahead of time is better.

EDIT: A bit more about CompanyOne: Despite how quickly I was rushed through the process, the Project Manager who interviewed me seemed like a fine guy, and I've talked to some of their Junior Devs about the work culture, and it sounds fine. Also, I'd be a full time employee on a permanent basis, not a contract-by-contract basis (including benefits). The company takes on Microsoft contracts, but employees are full-time and are kept between projects, regardless of the contract flow (although how much that can be trusted is certainly arguable). Also, they are part of the Microsoft Partner Network, so they aren't going to be cheap about what IDE's / technology / Etc they can get their hands on. They pay for training that you want whether it pertains to current projects or not, etc. Maybe I'm just in denial because it's the kind of tech I'm interested in working in, however, and its really a bad offer overall.

closed as off-topic by HLGEM, Jim G., keshlam, Wesley Long, gnat Nov 12 '14 at 8:44

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking for advice on what to do are not practical answerable questions (e.g. "what job should I take?", or "what skills should I learn?"). Questions should get answers explaining why and how to make a decision, not advice on what to do. For more information, click here." – HLGEM, Jim G., keshlam, Wesley Long, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

  • 1-2 days to make a decision sounds like a problem. – user8365 Nov 11 '14 at 22:00
  • @JeffO Yeah, but I'll have already stalled CompanyOne's decision for 9 days by the time I get the interview. CompanyTwo has agreed to make sure I have feedback the day after the interview so I told CompanyOne I could have an answer two days after that, which is almost two weeks from receiving the offer from them. – EklipZ Nov 11 '14 at 22:04
  • if one of the companies is in san fran, pick that one. best place to be for a developer starting out. – bharal Nov 12 '14 at 3:22

It's up to you

No matter what advice is given this is ultimately your choice and you must live with the outcome.

Company One

From my vantage point company one doesn't pass the sniff test... They rushed you through the hiring process signaling they don't vet employees well, don't take the position seriously, or have a VERY high turn over rate. On top of that they pay below market... This screams to me that they are the sort of place who hires people on the cheap and doesn't give a crap about retention. (The programmer's equal to a sweatshop)

Company Two

They are taking a more methodical approach to vet their candidates, this is slower, but means they actually care about keeping you around. They don't have a contract which means you're an actual employee who gets benefits. They are paying to fly you across the country for an interview, that means they are already investing over 1000$ between travel and hotel costs to see if you are a good fit... This means they care about who they hire, and they'll fight to keep you if you're hired. This means they'll likely offer raises, competitive benefits, etc. Hands down company wise Company Two sounds better.

The down side

As you said Company One is a C# shop Company Two is a java shop. So if you go with two you're pursuing Java even though you want to do C#... This is a notable thing, but not a bad one. Java and C# are VERY similar languages, the biggest difference is honestly C# has better offerings in regards to IDEs... but Company One sounds like they might run on the cheap...

Other Considerations

Company One sounds like a place where work will be dumped on you, you'll do it. The moment you cost them more or aren't "keeping up" you're replaced. (just my perspective)

Company Two sounds like a company that has structure. Likely better documentation and business practices. This implies better overall planning... Poor planning is a soul vampire to a dev as you'll redo the same thing four times while the business figures out what it actually wants vs coming up with a proper plan in advance. It's also REALLY good to get exposed to things done with proper planning and organization. It'll let you spot crappy planning in advance and put a halt to it before you're obligated to deliver on something that is doomed to fail because it's not even what they really want.

It's also good to learn multiple disciplines. There is no guarantee C# will be the most common language in the years to come. It might be, it might not be, but if you only get intimately familiar with C# and it becomes less desirable you're in trouble.

If it were me

Assuming all things equal and this were a role I were pursuing I would pursue Company Two. If I'm not hard up for work I might actually reject Company One out right. (again this is purely based on what you've said here and I might be reading it differently than it really is)

One thing I will remind you. You can learn any technical skill with time and effort. You cannot necessarily change the way a person or company thinks, acts, or behaves in a life time with fully committing yourself. That said... If something doesn't sound right with a company and you aren't in a tight spot keep looking. Just the same as if I have any reservation with a potential hire I just keep looking.

Good luck either way!

  • This was my first impression with CompanyOne as well, but I talked to a few Junior level devs who work there, which put my mind at ease (edited main post with more info on this). I very much agree that it reflects poorly on their employee retention, but I'm considering it more of a gateway to other opportunities anyway... – EklipZ Nov 11 '14 at 22:33
  • 1
    Also, CompanyOne is full-time as well, including benefits. Employment isn't on a contract to contract basis, but rather permanent moving from contract to contract that the company receives, including pay during times when there is less work. They offer decent benefits, not great, but better than sweatshop benefits by far. – EklipZ Nov 11 '14 at 23:07
  • From the tone of your comments and question i can see that you are already decided. Go for Company 1 if you really feel strong about it. – TheProvost Nov 12 '14 at 6:06

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