Right now I have a really uncomfortable situation and not sure what's the best way to handle it.
I am working as a software developer for an outsourcing company based in Eastern Europe. Most of its clients are located in the United States. We develop new and interesting products for company's customers, so mostly I am quite satisfied with tasks I am working on.
What I am not satisfied with, is how the employer treats his customers and how it is doing business in general. Let me explain this in more detail.
As an outsourcing company that doesn't have their own products and charges customers for developers' hours spent, their primary way to increase profits is to sell as many man-hours as possible. Basically, company management believes that the only difference between senior- and middle-level developers is that a senior developer can be as twice as efficient as a mid-level one in terms of delivering features and bug-fixes (that's exactly what PM told me when I asked him what he thought about this business model). So, from my point of view, they don't care much about the quality — it's only the speed and pace that matters for them. Consequently, senior developers in that company typically work on more than one project — usually two (there are also some guys working on three and even more projects). This is where company starts cheating.
As a senior developer, I work on two projects. I have a standard 8-hour day, working 4 hours for each project. However, the customers I work for are not aware of this. The company charges them as if I worked 8 hours for each of them. My goal, as a developer, is to keep both customers satisfied with my productivity. Delivering quality software is not the highest priority — the main goal is, well, doing business. For reporting, I have to tell each of the customers that I work full-time exclusively on their project. So, essentially, every day I have to participate in this ugly trickery.
Almost every developer in the company works this way. It allows the developers to gain more money, and the company to save at the same time — one developer pretending to work 16 hours while actually working only 8 is cheaper than two developers who really work 16 hours a day. Don't forget to charge the real money for that imaginary extra 8 hours, and you'll get the pure profit.
The company has become really good in this business. Recently, when I joined the second project, they had a meeting for developers, teaching all of us how not to disclose the fact that we are working this way. Some of the developers don't even use their real names, because a lot of customers are located in the same US state and know each other well. The company is working really hard to prevent the situation where customers would realize that developers don't actually work full-time, because the following would be a complete failure for the company:
Customer A: Hey, developer X from company Y implemented a really cool feature for my app!
Customer B: How is that possible? He is working for my project full-time!
When I was interviewing for this company, they did not tell me they work this way. It came as a complete surprise to me. Now I'm very embarrassed and feel really bad that I have to participate in this stuff.
Do I have an ethical responsibility to quit? To notify the company's customers? What are my options in this situation?