I am delivering mediocre work and feel awful about it. Should I commit seppuku?
nostrademons: I was in a similar situation with my last employer - I absolutely loved my first project there, felt really productive, did a bang up job with it, and delivered something pretty slick.  And then I got put on another project with a different toolset and absolutely hated it.  I felt terribly unproductive, like I was wasting my time, and didn't believe I was learning anything professionally useful.If I were you, I'd look around for other jobs and see what else is out there.  If there's another job that you really want to do, or you see a viable startup opportunity, jump ship.  If not, buckle down and finish up the project.  In my case, a friend from college IM'd me a couple months after I'd started feeling discontent, and said "We're starting a startup, and need a technical person.  Wanna join?"  I stayed long enough to get my current project into a sellable state, and then quit.Some reflections in hindsight:1.) My feeling of lower productivity was mostly a mirage.  In LOC/day, I was almost as productive as I was in the previous project, it's just that more of those lines were boilerplate, and so I guess my productivity in function points/day was lower.  Boss was relatively happy with my productivity, he just didn't like my complaining.2.) In terms of it being a dead-end professionally, I was absolutely right.  Actually, both technology stacks (Swing/Netbeans for first project and JSF/Facelets/A4J/Hibernate for the second) were dead-ends; overall job markets for both seem to be declining, and anything new that I'd start now would need a modern web framework (Django or Rails) and/or C++ WinAPI experience.3.) 90% of products fail, whether they're done by a startup, a small company, or a big company.  The only variable seems to be in how fast they fail, and how much resources they consume.  So you should expect that your project is doomed and do it anyway; that's the only way to find out if it's one of the failures.4.) There was just as much grunt-work for my startup as for my job, but it didn't feel nearly as onerous.  I think this was because I knew that even if the product didn't pan out, I was building skills that I'd want to use in the future.  For me, it's okay to work on a project that'll fail as long as it leads to one that'll eventually be a success.  At the last project at my employer, I felt that not only was the product doomed, all future projects using that skillset would also be doomed.  (This feeling was not helped when we e-mailed some mailing lists on how to do simple things like integrate other AJAX libraries, and the response was "It's not possible.  In fact, the engineers here have recommended to management that use of JSF be banned for all future projects.")