I'm currently an inexperienced software developer working for a large company.
While I'm extremely passionate about my work, I lacked quite some experience in this field when I was offered the position (2 years ago). I should mention here that I do not possess a bachelor's in engineering or computer science (Social Science B. A. and M. A.). I became involved tangentially, and began acquiring experience as a volunteer (open source), and through small consulting work (web dev. and systems administration.
Within the office, I continue to miss deadline after deadline. The project/product manager seems to enjoy plying me with feature requests, and with pledging my time for unrealistic deadlines to customers. My shoddy work is then put on display in front of my co-workers to be openly ridiculed on a nearly daily basis. Yet, I'm told repeatedly (and reassured) that all is well by the manager.
The customers/stakeholders have been abnormally patient and generous thus far (I suspect that the situation is obvious). But I now live to only to work for these deadlines. I have no weekends, and my time after hours is spent feebly attempting to meet these deadlines.
I'm passionate about my work, and I have (and plan to continue) to enroll in Comp. Sci. courses. But, I don't wish to find myself fired or to force those at the office to tolerate an incompetent employee.
How best to proceed? Should I offer to resign? Or is this normal?