The road from amateur to professional R package developer

Hi everyone,

Lately I have been thinking about how to professionalize my R programming / package development skills. I have created a couple packages in the past couple years based on what I have learned from Hadley's R Packages book and the "Building Tidy Tools" workshop. However my efforts still feel very amateur. There are so many amazing packages out there that it is kind of hard to imagine how these get built. A few things that seem like they might be important are:

  • Reading R code
  • Collaborating on packages with other programmers
  • Using Git and Github effectively
  • Learning software design patterns and tools like automated testing
  • Working on a team with more skilled programmers

To the professional or semi-professional package developers out there -

  • How did you professionalize your development skills?
  • What is important to focus on and what is not?
  • How do you prioritize package development amidst the whirlwind of your day job as an analyst/statistician/data scientist/researcher/etc?
  • Do you have dedicated work time devoted to package development? If so, does the package need to be work related?
  • How do you handle package maintenance, releases, upgrades, ect?
  • Is development better as a solo or group activity?
  • How did you become a package developer? By accident or by choice?
  • What do you like about it? What do you dislike about it?
  • How do you decide what problems are worth solving?
  • What does a typical day, week, month, year look like with respect to package development?

Seeing all the amazing things the R community creates inspires me to create as well. I'm just wondering if anyone is interested in sharing their experiences becoming a professional R package developer. Thanks!