2 What makes me a good fit

Here are some of the things I believe make me a great fit for the internship:

2.1 I ❤️ .Rmd files

I was completely blown away by the R Markdown file format when I first discovered it, and I definitely felt like the courses I took in college in R should have mentioned the .Rmd format, as well as the tidyverse and the idea behind the pipe operator. I have spent a lot of my time learning R Markdown and digging through books and amazing resources made available by RStudio, so here are some of my favorite output formats that I am looking to teach people more about:

2.1.1 Learnr

I have been using learnr for about a year and a half, and recently I started to offer programming tutorials on my website using learnr where every time the tutorial is opened, users learn to program in R using data from the cryptocurrency markets that is never outdated by more than 1 hour:

(this takes about 30 seconds to load, give it more time if it’s showing up blank)

I would recommend looking at the Visualization section to visually see that the data is never outdated by more than 1 hour.

I post these on my website:

I’m loving the integrated tutorials tab within RStudio in the 1.3 preview and I am working towards including these with my PredictCrypto package, which I talk more about and use in the next section of this document.

2.1.2 Bookdown

I was very close to paying for a monthly subscription on gitbook.com because I thought it was such an amazing format to provide documentation through, so I was particularly impressed by and grateful for the bookdown (Xie 2020) package, and these days it’s my go to for organizing most things I work on, so why not my application?

This document is obviously an example of a bookdown document in itself, but here’s another guide I put together using bookdown:

This guide refreshes daily in order to show a preview of the latest data within the document and you can look at the GitHub Actions daily runs here. You can also see the refreshed data in the useful tables section of the document.

I also found that documentation done in bookdown can work really great when working within a large company as well, and I put together some very thorough documentation for a project using bookdown that was very well received (but I can’t show here). In my particular case it worked really well because I could send the link to the html index of the bookdown document and when opened it would behave like a website hosted on the shared folders within the secure network which ended up being particularly simple and effective.

2.1.3 Presentations

I am a big fan of ioslides and revealjs in particular as R Markdown outputs. I find the revealjs output to be incredibly cool with the rotating cube animation, and the ability to not only move forward but move downward adds a surprisingly useful tool to break down topics; ioslides is just really clean, well made and easy to use and looks great with widescreen enabled. I aspire to be an expert in Xaringan one day but am not currently.

Making presentations in R Markdown is what really got me working with .Rmd files, because I started working towards a very specific project using an idea I haven’t really seen elsewhere of creating presentations that give the user options and as they make their way through the slides, those options affect not only what they see in the slides that come afterwards, but also the options they are given. For example, the user could choose to do an analysis for a particular asset, then choose the main category of the analysis to perform, then the sub-category of the analysis and so on, until by the end of the presentation the user has performed an analysis that was completely unique and tailored to their preferences and interests. See the gif below for an example of what this looks like:

2.1.4 Blogdown

Blogdown(Xie 2019) and bookdown work very similarly, so most of what I mentioned in the bookdown section applies here. Because my website predictcrypto.com only shows the latest data based on the current date, I leverage blogdown to create weekly snapshots of the visualizations over the last 7 day period: https://predictcryptoblog.com/.

Because all these systems work so well with automation, as I keep adding new interesting content to my website I can also add archives of that content using blogdown.

2.1.5 Pagedown

Pagedown(Xie, Lesur, and Thorne 2020) is yet another awesome way to create html outputs and I used Nick Strayer’s repository https://github.com/nstrayer/cv to build my cv and resume using his template:

Big thanks to Nick Strayer for the awesome template!

2.1.6 Flexdashboard

Flexdashboards (Iannone, Allaire, and Borges 2018) were my first introduction to shiny apps and I was completely blown away by that framework and have used it for several projects and is one of my absolute favorite tools.

To get some practice, I converted some of the content found in Tidy Text Mining by Julia Silge and David Robinson and made it into a flexdashboard. I made no changes to the code found within the book, this was simply an experiment to learn more about flexdashboards and semantic analysis:

2.2 Automation

Automation is at the center of everything I do and my one true passion. One of my big goals for RStudio::conf 2020 was to learn more about automating things through GitHub using CI since I always had a hard time figuring that out, and the things I learned about especially relating to GitHub actions and using Netlify were above my expectations in terms of the ease of use, capabilities and free tier offerings, and I am super excited to share how crazy simple automating a very complex process can be through RStudio, GitHub Actions and Netlify. I didn’t fnd a huge wealth of information on automating things in R through GitHub Actions and I’m excited to share those learnings in the months to come.

It’s pretty mindblowing that these frameworks allow a user to create an interactive book with complex javascript, HTML, CSS, TeX, etc… from scratch, deploy it to an https secured website and create an automated process around it, all in less than 10 minutes with minimal code involved. What’s even more powerful, is that the same methodologies can be applied to make other interfaces and outputs, like making a blogdown website, and I can’t speak highly enough of all the work Yihui blessed us all with.

I have also done a lot of automation work for Vail Resorts using a tool called Alteryx to create fully automated processes with the main purpose of refreshing Tableau dashboards offering refreshed datasets relating to ski pass sales. You can find an example of an automated Alteryx process I created for a personal project doing automated trading on the cryptocurrency markets using my own database, SQL, R and Python here: https://community.alteryx.com/t5/Alteryx-Use-Cases/Predicting-and-Trading-on-the-Cryptocurrency-Markets-using/ta-p/494058

2.3 Fit Within the Company

After following along with the RStudio::conf 2019 as it was happening, I knew I had to make it out to RStudio::conf 2020, and it was a truly incredible experience. I learned everything I was hoping to learn about and then some, and JJ’s talk and BCorp announcement really resonated with me. Generally speaking my philosophy is that the most straightforward way to success is to help other people succeed, and I believe I share the values that RStudio holds dear as a company. The content of JJ’s talk around the model that companies currently operate under, the pursuit of profit being a legal obligation, how we got to this point, and the need for this model to evolve, was inspirational. I am very impressed by RStudio taking a strong stance in this area and I agree with JJ’s message wholeheartedly.

Another thing I was really impressed with was the focus and clarity around why everything should be reproducible and how not making your work publicly available can often be very costly in many different ways. RStudio has done an incredible job at making powerful and complex frameworks easy for anyone to use. I am driven to making easy to follow and informative content to help other “fellow self-taught programmers who were told they weren’t good enough but are too driven and excited to care” (Gans 2020) in the same spirit of former superstar interns like Maya. I also want to give Maya a shoutout for her amazing tidyblocks project; in college I learned to use an incredible tool called Alteryx and I have become somewhat of an expert in it, but it’s a publicly traded company and since I have learned to use it the price has gone up from an already ridiculous ~$3.5k a year to now being $5,195 a year, and as JJ pointed out in his talk this type of model is not a long-term sustainable model for programming software, and forget about reproducibility and outside access. The tidyblocks project works in a fundamentally different way because of the scratch-like design, but it’s actually got the main pieces to replicate what Alteryx does (which I believe is actually mostly built using R when processing data), and that’s been one of my main goals since tuning in for RStudio::conf 2019, so I have just started making my way through her Javascript for Data Science book and in mid-late 2021 I hope to be able to start making some contributions to that project.

I work well both in-person and remotely. I have a dedicated home office to do my independent work in, with a powerful desktop PC and two monitors. I have experience working remotely and keeping myself accountable without someone looking over my shoulder.

References

Gans, Maya. 2020. Javascript for Data Science. 1st ed. Boca Raton, Florida: Chapman; Hall/CRC. http://js4ds.org/.

Iannone, Richard, JJ Allaire, and Barbara Borges. 2018. Flexdashboard: R Markdown Format for Flexible Dashboards. https://CRAN.R-project.org/package=flexdashboard.

Xie, Yihui. 2019. Blogdown: Create Blogs and Websites with R Markdown. https://CRAN.R-project.org/package=blogdown.

Xie, Yihui. 2020. Bookdown: Authoring Books and Technical Documents with R Markdown. https://CRAN.R-project.org/package=bookdown.

Xie, Yihui, Romain Lesur, and Brent Thorne. 2020. Pagedown: Paginate the Html Output of R Markdown with Css for Print. https://CRAN.R-project.org/package=pagedown.