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.

I'm looking for a high-paying position in software, especially involving graphics and imaging, but preferably outside the world of universities and large government research labs. These are interesting places to be, of course, but I like the greater potential for direct real-world problem solving and greater financial potential if the company does well.

However, it seems like the whole world is Microsoft-based, or if not that, it's Apple. I've used mostly Linux since about 1996 and purely Linux the last few years. Will my limited familiarity with platforms keep me out of the running for positions at most commercial firms? If so, how do I adjust my job search strategy?

share|improve this question

closed as not constructive by Yannis Rizos Mar 8 '12 at 14:22

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

"it seems like the whole world is Microsoft-based, or if not that, it's Apple" What is the statistical basis for this? Any actual data? –  S.Lott Mar 30 '11 at 21:40
Do you think that if you sit down in front of a windows workstation that you won't be able to just wing it? –  whatsisname Mar 30 '11 at 21:43
What are you thinking of doing? The main tools for doing graphics and imaging are Windows and Mac, and that's not going to change any time soon. What experience can you show? If it's programming in something like C++ on Linux, that'll be useful. –  David Thornley Mar 30 '11 at 21:43
I believe Pixar has significant Linux tools and backends for rendering. –  dietbuddha Mar 30 '11 at 21:53
@Kenneth: 85% of services used by these internet users are hosted on Linux servers. If client uses Firefox on Windows, Linux or Mac is irrelevant to developer. –  vartec Mar 31 '11 at 9:42

14 Answers 14

up vote 8 down vote accepted

I don't think things are that skewed towards MS / Apple. Google and Amazon are both interested in hiring Linux users, for example. It probably depends on where you are looking for work (both geographically and industry-wise), however.

share|improve this answer
Pacific northwest, as it happens. But this question and answers should be of interest to others, with other targets. –  DarenW Mar 30 '11 at 22:32

Just the opposite, Linux is industry standard for servers (anything ranging from local file server to cloud or HPC solutions). It's also preferred workstation system for developers dealing with such systems.

Edit: since some of you ask for hard data, let's take TOP500 OS share as an example:

share|improve this answer
A bit like S. Lott - do you have anything to back that up? In industry last I looked there is a vast amount of FreeBSD being used for servers, but business seems wedded to Microsoft Server operating systems even though they are expensive. –  quickly_now Mar 30 '11 at 22:15
FreeBSD (and all the BSDs) are alright with me. I imagine anyone accustomed to Linux would just have to get used to a new kernel. It's not like a whole new paradigm such as moving into an all-Microsoft world. –  DarenW Mar 30 '11 at 22:30
@quickly_now: I'd gather that "last time you've looked" was quite a few years ago. Can you name one major server supplier, which now sells FreeBSD servers? IBM? Sun/Oracle? HP? Dell? Yet each of them sells massive amounts of Linux servers. –  vartec Mar 31 '11 at 7:56
Last I looked was a couple of months ago... ISPs use FreeBSD (though why this is, perplexes me). And lots of companies use Windows Servers because of the 100% fit with windows desktop PC's and email. And yes, I know all about Samba - been using it for years. Don't read too much into the comment. PERSONALLY i have no problem with using linux on a server, and have done so for a long time. BUT when it comes to general computing stuff, a few more options than 1 narrow(ish) specialisation is frequently a good thing. –  quickly_now Mar 31 '11 at 12:23
@quickly_now: I wouldn't call working with system that owns 90% of high-end server market, and some 50-70% of entry level server market, a narrowish specialization. And add to that the fact, that current #1 smartphone operating system, Android, is also Linux. –  vartec Mar 31 '11 at 13:16

You'd be more marketable if you had better Windows experience. Of course, you'd be more marketable if you could fly a helicopter, have a law degree from Harvard, and speak Mandarin too. The more skills you have the better.

share|improve this answer
So what about flying a helicopter running on Windows software? –  DarenW Mar 30 '11 at 22:28
I don't think I can trust that copter. The pilot would be fighting the controls because the MS engineers thought it was time to rearrange them and change how they work. Just like they do with Office every couple of versions. –  Berin Loritsch Mar 30 '11 at 23:14
@Berin: ...then it would spontaneously blue-screen. –  Nathan Osman Mar 31 '11 at 4:38
@George: nah, blue screens are has been now. BSOD now means black screen of death with Windows 6.1 :) –  dSebastien Mar 31 '11 at 4:50
"Helicopter Ben" has a degree from Harvard and I bet he uses Windows for all his financial planning. No wonder he fvcked it up so badly. –  Job Mar 31 '11 at 13:16

Anything-only will limit your career choices. That's the nature of specialization.

If you're good at your specialization then you should always have career options.

Linux is popular server platform, but not a popular client platform. But if you're in a specialized industry or area where Linux is a useful client platform (sounds like you are), then there will be jobs. It completely depends on what you do now and what you expect or want to do.

share|improve this answer

When I was at Microsoft, software developers could come from a mostly-Unix or even VMS background without it being a severe limitation; recruiters and technical teams knew that most universities were full of Sun, SGI, DEC and other non-Intel hardware. Windows had not yet established a huge foothold in the server world (it was 1997 when I started), but I'd say the same is true today, even at Microsoft, unless you were in a role where knowing Microsoft conventions inside and out were a critical starting point. There really aren't that many of those jobs. Technical skills are, in fact, transferable.

So, if you, a Linux-only guy could get a job at Microsoft, your options can't be that limited, even if you don't want to consider that as an option.

However, there are certainly employers that are less open-minded. I overheard a colleague of mine, who has about 10 years experience writing Java, talking to a recruiter at a Java shop that complained my colleague seemed to be mostly .Net focused, because, at the time, his current gig of roughly 3 months, mostly involved writing ASP.Net MVC code in C#. The previous 10 years of employment history were apparently too ancient. Not every recruiter is smart.

Aside from that, just to reduce the scope of their search, some employers arbitrarily pick a number of years experience with technology X as a threshold for consideration. This is a bigger problem in a poor economy or in an oversupplied specialization.

Personally, I prefer being a generalist, because I like the mental shifts required to adapt to different technologies and paradigms; it expands my toolbox when I need to use, say, a functional technique in an object-oriented language; and, most importantly, it expands my options. But being a specialist in a specific technology is in fact an advantage in many contexts; you might find it fairly lucrative to be particularly deeply knowledgeable about, say, the inner workings of the Linux kernel. A pretty substantial number of web and embedded companies build on Linux or other Unix platforms.

Keep in mind, though, that geography can affect your options as well. Embedded stuff isn't particularly huge in Seattle, for example, though it's a bigger deal in Tokyo, sometimes in Portland, certainly Boston, and parts of the Bay Area. Unix-based web environments are a huge part of what goes on in the Bay Area. In Seattle, that's mostly true, but, unsurprisingly, in the shadow of Microsoft in Seattle/Redmond/Bellevue, a pretty large number of companies develop on Microsoft technology, even for web-focused companies.

share|improve this answer

Will my limited familiarity with platforms keep me out of the running for positions at most commercial firms? If so, how do I adjust my job search strategy?

If you're like most people, you don't need "most" jobs*. You only need one job. Figure out what job you want. If you lack the skills for it, acquire them.

I bet you can come up with a dozen jobs in the area that only require Linux, without too much trouble. And I bet they would be very happy to hire you!

(* If you truly need to be a good fit for "most" jobs, you're probably practicing your hamburger-flipping skills right now.)

share|improve this answer

Where did you pick that "the whole world is MS/Apple" up? What about Google, facebook, IBM, nintendo, nvidia, NASA, Honda (major robotics develloper) ...? Most big companies are actually antagonizing both Apple and Microsoft.

The whole world has many more things besides Microsoft, Apple or linux. Linux experience is everywhere appreciated while linux itself is almost always in a way present.

A google trend search like this or this might be helpful.

share|improve this answer
I picked up that particular twisted idea from being in the academic/research world too long! –  DarenW Mar 30 '11 at 22:33
I've spoken English all my life, and this is the first I ever saw the word adagonizing. Dictionary.com came up with nothing for that word. What does it mean? –  Berin Loritsch Mar 30 '11 at 23:19
@Berin: misspelled antagonizing :) (act in opposition) –  Eelvex Mar 30 '11 at 23:27
@Berin - I think it should've been "antagonizing". –  Rook Mar 30 '11 at 23:27
Ok, so I wasn't losing my mind! With it emphasized like that, I thought it meant something important. –  Berin Loritsch Mar 30 '11 at 23:37

It's true that the (Desktop) world runs on Windows, and not having some level of familiarity with it could limit your opportunities, however speaking as someone who as specialized in Linux I can say that there are still plenty of opportunities out there for people with strong Linux development skills. In fact, my experience (Midwest US, may vary by region) is that it's incredibly hard to find developers with a really strong Linux background, and actually more difficult than I would have imagined to even find developers who care all that much about learning it. I would go so far as to say that while there may be fewer Linux (and platform-agnostic) jobs, there seems to be (again, regional, so YMMV) proportionality more openings for the number of skilled developers out there.

share|improve this answer

I would say no. In fact I'd say you have better chances in many fields than if you were Windows only.

There are loads of jobs out there based on linux (and it's close other unix cousins). It's the people who are windows only that don't know how to use a terminal.

Obviously a lot of things depends on what sort of field you want to get into. If you want to be an iPhone developer, it'll be hard without a mac. If you want to be a windows desktop application developer, you should probably be good at windows, etc.

share|improve this answer
I'm starting to look at Android app development. That's certainly not window/mac. Yes, I see there are many more platforms out there than browsing through Monster.com would suggest. –  DarenW Apr 27 '11 at 21:23

You are limiting your options.

There is a lot of demand for Linux - especially for things like embedded products (if you know how to build from source a cut-down linux to run on a small processor with no MMU then you are quite special). However once you move out of specialised areas into more general computing, the world is Microsoft whether anybody likes that or not.

As for one of the other answers: more experience, in a wide range of fields, makes you more marketable.

The analogy here is: you can be the best buggy-whip maker in the world but the coming of the automobile still makes you unemployed.

share|improve this answer
Since I got my start working directly with chips and bits, embedded seems like a natural area to be in. –  DarenW Mar 30 '11 at 22:36
Would showing skill in too many fields make one less appealing, as unlikely to stay in some narrow position? (I guess that would be a separate top-level question here.) –  DarenW Mar 30 '11 at 22:38
@Daren: I beleive small to medium companies refrain from hiring overqualified people. Big companies however, (MS scale) do their best to keep them. –  Eelvex Mar 30 '11 at 23:22
I got my start in stuff. And chips-n-bits, and have been doing anything and everything ever since. I've found knowing lots about embedded + enough-to-get-by about lots of other things works very well indeed. –  quickly_now Mar 31 '11 at 12:25

It doesn't really matter for the kind of work you're looking for. I use Windows at work and Linux at home and the software development experience is pretty comparable. While I miss a lot of the Unix development tools (and the shell), most software development today is done in an IDE, and they isolate you pretty well from the underlying OS. Maybe it's different with graphics-type work, but when I was doing Java development I would keep my work projects on an external hard drive and I had no trouble working on them in Eclipse either at home or at work.

share|improve this answer

Technically speaking you are limiting your options... You may not look as valuable to people looking to hire developers for Windows or Mac platforms.


Being specialized is a very good thing and if you're a Jack of all Trades developer then you'll likely not be as specialized as someone who has focused on a particular technology. So in your case where you're specialized in Linux (or at least I'm assuming you are since you've been using it for so long) you're actually opening doors where they need Linux developers.

The trick with specialties is to pick a specialty that is in high demand and will remain in high demand. The good thing for your situation is that many places in the development world DO use Linux. It is true that in terms of the average computer user the "world" is largely involved with the Microsoft/Apple platforms. But this won't be as much of an influence for you as your concern is with what the employers are using. As one who is currently applying for jobs I can vouch that there are MANY jobs where they're looking for people with *nix experience. You should find you have lots of options.

share|improve this answer

Relax. OpenGL is portable, and it is a standard for the scientific imaging and engineering graphics. You're unlikely to ever face Direct3D in that area.

share|improve this answer

Only if you are religious about it. Pragmatic persons just solve the issues at hand.

share|improve this answer

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