Early in my career I did myself a rather large amount of damage; I got myself on a very good team, but I thought I was holding the team back (I was obviously the least experienced person there) and I thought that everyone else was just being nice to me. I ended up quitting because I thought the boss was unwilling to fire me. Worst career decision ever. Going back and reexamining the situation and talking to some of the people involved, I now believe I was performing better than expected. I mean, they knew my experience level when I was hired, and they judged that experience level to be appropriate for the job at hand.
If you might have low self-esteem, I believe it's best to assume that other people act in their own best interest, to assume that other people will fire you if you are getting in the way of the team. If you get into a good team an they don't fire you, you should see that as evidence that this good team believes you are worth keeping around.
Every good team has a mechanism for ejecting people who hold them back, and if your team lacks that mechanism, your team has much bigger problems than just one person who isn't up to the level of the rest of the team. So get yourself on the best team you can, work as hard as you can, and don't dial back your ambition until you get fired.
Let other people decide that you are not good enough.