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!

8 Likes

I too am going down this road. While I was reading the R-Packages book I got stuck on the devtools::use_testthat() It is supposed to create the directory and R file that will help me test some of my work. I have found a few packages that I use often that are not quite orphaned, but have not had the care they deserve. I'd like to make come contributions to those and bring them up to speed. Does anyone want to create a virtual team where we ask basic package development questions?

  • How did you professionalize your development skills? I never professionalized my development skills but reading Hadley and others gets me closer.
  • What is important to focus on and what is not? It is important to focus on things you use and critique how you could make them less painful.
  • How do you prioritize package development amidst the whirlwind of your day job as an analyst/statistician/data scientist/researcher/etc? I don't thankfully there is a quarantine on.
  • How do you decide what problems are worth solving? I set goals and define the problems that need to be solved by asking carefully what I need to do.
1 Like