I chose Mozilla instead of another startup so that I could contribute to projects that make the world better as well as to work with some of the smartest engineers on the planet. From the first day, I viewed Mozilla as an opportunity to make myself an apprentice.
If I wrote what skills I wanted to develop 18 months ago, I feel the list would be different than today. At the time, I was focused on becoming better. The thing is, I wasn't exactly sure what better meant and I fell back to focusing on technical skills.
With more experience, I have come to understand that better means more than just deep technical knowledge, it also means being effective. It is possible to know algorithms inside and out but still be an ineffective developer. It is possible to code up complex systems but still be ineffective at working with people.
Perhaps like many developers, I am guilty of both. I have an innate belief in my own ability to eventually solve technical challenges. If I don't have a particular development skill today, I am confident I can learn it within a few months. Technology is not where I stumble the most. I stumble when using the soft skills that are unquestionably more important to being effective than the ability to code up a web site in whatever technology is the flavor of the month.
My systems thinking needs developed. My architectural abilities need honed. My writing is too verbose, lacks clarity and frequently contains mistakes. My spoken communication needs to be more concise and articulate. I need to be able to sell myself and my ideas to people within and outside of my immediate group.
I am writing these down today not to bash myself, but to give myself a reference point to see how I progress over the coming months and years.
This is going to be hard work.