I am working as an IT Engineer in a reputed company in India. The problem is that though I was told that I would be given work on Linux, I am made to do work on Java and Windows. I am uncomfortable with Java and hate Windows.

I have started learning Python by myself but it's tough to give it ample time due to ongoing job. Frankly, I am not an expert coder. I tried a lot to get into Linux kernel development during my college days but realized that I am not that good a coder. So I decided to do RHCE and go for server management.

What I want to know is that what skill set is required to get a job in Linux projects. In August 2011, I am planning to take a break from job if this company doesn't give me a good Linux project. What skills shall I acquire in order to get a good Linux job. One thing that I've decided to do during that break is to pursue RHCE. After reading first of the set of three RHCE course books, I am confident that I can sail through it.

Inputs from experts on this site are highly invaluable. My technical interests at the moment are - Python Programming, C/C++ programming, Linux Server Management and Cloud Computing. But the college degree that I have is by no means sufficient to get into some good company. The practical knowledge I have is not of an expert level. And the job experience I have is simply pathetic.

PS - I am extremely frustrated in my current job. Though I think there's barely any need to mention it.

4 Answers 4


This has been suggested numerous times before in this context, but... I'd suggest getting some experience in a free software project. This looks good on your resume, is valuable experience working with good people, and is useful for contacts. People regularly get jobs through free software projects. My impression (which may be incorrect) is also that it is not common for Indians to involve themselves in free software projects, and if true, that would help you stand out.

You say you are interested in Python. There are lots of free software projects involving Python, with various levels of barrier to entry. One that I am familar with is Mercurial, where the barrier to entry is not too high, the community is friendly, the programmers are talented, and there are opportunities for participation. And everybody uses version control. You could pick up some small bite-sized bug and/or wishlist feature and work on it.

Other projects off the top of my head are Django, Pylons, SQLAlchemy, though I think Mercurial is as good or better than any of these from the POV of opportunity for participation. Another possibility is Linux community distribution work, eg. with Debian, which will also give you the opportunity of working with talented people. Also good for making contacts etc. Also, if you are interested in C++, the apt and aptitude projects in Debian are important and severely undermanned. In general, most free software projects don't have enough manpower, particularly the smaller ones, and are eager for assistance.


You have several paths that offer different job opportunities

  • web based stuff
  • native projects
  • cross platform development
  • porting to Linux

In general be prepared to use other Unixes along with Linux (although Linux is totally dominating right now).

Web based

Pretty much anything web based that doesn't use .NET is Linux stuff (or cross-platform). You can concentrate on any of the widely used languages: PHP, Python, Perl, Ruby

Native projects

These are mostly open source or high-performance computing jobs.

In Europe it is kind of common to hire a full-time programmer to modify an open-source project (and provide support) instead of paying insane licensing fees for commercial product that won't fit anyway.

The high-performance area is sort of Linux only right now, therefore jobs in this area will most likely lead to Linux.

This area is very C heavy, with a little bit of C++ and lot of Java.

Cross platform development

Kind of odd area. There are some companies that provide cross-platform software, some have special teams for specific platforms, some have cross-platform teams.

But many companies simply use Java (not that it helps much).

Porting to Linux

These jobs do pop up from time to time. Some company sees an open market and decides to expand. I personally would run away from such jobs.

  • +1 for an interesting comment. care to expand on what is so bad about porting jobs? Mar 11, 2011 at 10:38
  • 1
    @Faheem Well, porting jobs usually mean that you end up with an awful code base full of non-standard extensions, and standard violations (that just seem to work due to some MSVC miracle). Usually parts of the code will be written by people long gone from the company and full of various bugs that will pop up during porting. This can happen in other areas as well, but it's not that common (open-source projects tend to have pretty awful code bases, but there aren't that many big projects with long history and small to medium developers community). Mar 11, 2011 at 10:42
  • I see. you are mostly referring to internal / proprietary code bases above? MSVC meaning the C++ code bases are written in Visual C++ and then they want to port it to gcc? Mar 11, 2011 at 10:55
  • @Faheem C and C++ suffer the most, scripted languages the least. The major problem is that while porting you will touch code that works "here and now" and usually discover bugs in such code. Mar 12, 2011 at 10:54

One project that has a very high number of coders doing paid work is GNOME. If you go there and do amazing work, you are mostly likely going to be approached by someone. The greatest of these is likely Red Hat (Fedora), and others I've seen include Canonical (Ubuntu), Novell (SuSE), a bunch of start-ups, or even the GNOME foundation. Oh, and there's a heck of a lot of Python usage in the project, and the LOC count is probably second only to C.

The project's planet is normally where these 'GNOME companies' report their deeds. Have a look.


I am made to do work on Java and Windows.

Good news, it sounds like you are writing/working with code at least.

If I was in your shoes I think I would take a pragmatic approach, and learn how to port that Java app to Linux (when the boss is not looking).

It's a good exercise to make a application portable.

I am uncomfortable with Java

Don't be, in the Linux world you use the best language for the task. (Best free language at least).

Therefore you need to make sure that you are comfortable with Java, C++/Qt, C, python, php, perl, etc etc

  • Thanks. Well, writing my entire work profile is illogical so I haven't mentioned it full. here. But shall keep your reply's last line in mind.
    – Dharmit
    Mar 13, 2011 at 8:49

Not the answer you're looking for? Browse other questions tagged .