One of the more satisfying things to happen to me lately on the work / career side of life has been how I've been able to see the impact of my open source contributions on the community as a whole. For the small bits here and there, such as the support for MySQL native replication I started working on last year, or work related to MooseX::Types and MooseX::Types::Structured, I can actually see that others are not only using the code, but actually working on it with me to solve bugs and add features. It's an amazing feeling to feel part of this grand, distributed tribe of interested Perl programmers, and it's even more amazing, and humbling, to feel like something I did is actually out there making another's life easier.
So, if you are just starting out with bug patches, documentation fixes and tests for edge cases, I encourage you to stay with it. Although those things may not have so much visibility, they are very important and will eventually lead you, as your skill and abilities improve, to making even more impact on the community.
Which leads me to the second part of my mediation, related to something that got screamed at me while I was heading for my subway car (I work in New York City). There was a man who was preaching to the crowd, and his topic was salvation and how to get it. He was asserting that no one person is intelligent, wise or capable enough to discover and achieve salvation independently. Leaving aside religious beliefs for the moment, what the man said reminded me of how one boss I had once spoke lovingly of the 'shelf of common components' his IT had developed over the years. This was a powerful intellectual asset. However when I got access to the CVS repository, what I found was a pile of code, written against a 5 year old version of Java struts, without documentation, unit tests or examples. Also, the original authors were no longer with the company. Which to me proves a point: There are very few companies (if any) with the internal ability and IT capacity to create, maintain and properly document most of the types of common framework components we as developers need to do our jobs. Open Source code, if it's a living project, gets tossed around the Brownian motion machine of the community, which keeps it fresh and mutates it so that it stays in the now.
What I've said has been said before, but I never really realized it in quite this way. It's not just about many eyeballs making all bugs shallow. It more about the diversity of backgrounds and needs those eyeballs bring. It's about how code dwindles when it's stuck in isolate, and how code loses it's way when it experiences sensory deprivation.