I graduated from college about 2 years ago in India, have been working in an outsourcing company developing Siebel CRM applications. I have grown really tired of developing enterprise applications that require solving the same problems over and over again. The work in these kind of companies is not really challenging, its just solving nasty little problems which the client isnt bothered enough to solve himself. To discard all euphenisms, its body shopping and doesnt require a 'Software engineer' to do the job. In my company i've seen people from non-engineering background perform better than demotivated software engineers!!
Sorry for the mini rant, but my question is what do is need to do to get out of this job, and into a company that does real development work? (say Thoughtworks, Google, MS) I dont have any commercial experience other than Siebel CRM(which wont be relevant for my next job, i hope)
I have gone through SICP, am proficent in Java and Scheme and familiar with Python. I have recently started an open source project which is a scheme interpreter written in Java. Is a lack of commercial work experience in the particular technology which i will be using, a big hindrance in bagging the next job? Is the open source project enough to prove that i can pick up the technology that i require on the job? What else do i need to do?