RAS Internship Follow Up

Hello!

I have been truly overwhelmed with the positive response from folks like you who are looking to intern with RAS.football. This is a site that I created several years ago from an idea that is now more than a decade old. Is there a way to contextualize player testing in a manner that is both easy to understand and useful when evaluating prospects? The idea remains as simple now as it was then, putting testing  numbers on a 0 to 10 scale compared to a player’s position group and draft year to show just how athletic those numbers are by comparison, allowing you to at-a-glance determine if the test is good, bad, or in between.

Simple as it is in concept, it has been a bear to maintain over the years. Similarly, scaling up in any way seemed a daunting task, as it was already a pretty sizable task for one person to manage. In 2022, I brought in an intern, Eric, out of necessity. It was the first time I was really opening up the code base to someone other than myself, and his creativity and determination to learn helped create the RAS Compare tool and on page calculator, as well as the player comparisons that have become popular additions to the site. Things that existed only as concepts were now a reality, and fans were able to truly enjoy those additions over the past two draft cycles. 

This won’t be a simple task, but I’m hopeful that it will be a rewarding experience. There is a lot to do, and not all of it will be as exciting as the final product promises to be. We have dozens of research projects that require collection and coding. These range from simple concepts, such as adding wingspan or age to the player cards (or at least the player pages), to more complex integration tasks like working traditional NFL statistics into the site for comparisons and studies. 

Now, heading into the 2023 draft and 2024 draft offseason, I’m faced with a new task. How can I expand the site while still performing the necessary maintenance tasks the site needs every time the draft offseason hits? The answer was pretty simple, but a little scary. Bring in more people. 

Adding player age to the cards seems simple in concept, but it requires the gathering of birthdate information for more than 24,000 players, and being able to show that the information gathered is accurate. You may find yourself hours into the task only to realize you’ve only done a few dozen. With more hands driving the wheel, it can be cut into more manageable chunks, but the data gathering part of research is never exciting. 

This probably isn’t the introduction you were expecting, but there’s a lot of ground to cover and this is neither a job nor a normal internship. Please read through my very long winded explanation of what I’m looking for and what I’d like you to consider, and if you’re still interested there is a final bit in the end to opt in. I’ll review the final group and send out personal invites after the draft.

Requirements

This is likely the part you’re most curious about. What will I actually be asking you to do? How much time will you be asked to contribute per week, and for how many days?  

The answer here is both a little simple and a little complex. You’ll be asked to work as many hours per work as you feel comfortable or interested in contributing, and working as many days per week as you feel comfortable or interested in contributing. I’d hate for you to overwork yourself, especially considering this isn’t a paid opportunity, but I do know how it can get if you’re working on something and it’s interesting and fun. I’m also aware that life happens, always, and there are few timelines during the draft offseason. If there is a set timeline for something, I’d expect it to be met, but that isn’t common.

Ultimately, though, it comes down to how much we will end up working together. I’ll be setting aside three days a week for office hours, where you will have the option to show up, ask questions, possibly work through individual items if need be. As it’s an office hours situation, you might not get all the specific items you want during that time, though, depending on what’s being worked and who is being prioritized at that time. But you’re also not expected to be at every one of those, so if you’re busy with something else, or have no pressing questions, you don’t need to show. There will also be an hour a week where I’ll be meeting with you individually, to go over any questions you may have, work with you directly on any coding items you’re working, provide guidance on more specific items. 

So you’re looking at a couple hours a week of personal interaction to start, with more as needed if needed. Much of the time, however, you’ll be working on your own. A lot of the research tasks don’t really require supervision, and it would just be weird if I was creeping over your shoulder for those types of things. For query related items, a lot of the questions and answers can be handled via chat, there really isn’t a need to get on a call for those. Similarly, much of the PHP/HTML/Javascript work can be done independently, with the only interaction needed when things are test ready.

If you think it’s not for you, or it’s too hard, or not the kind of work you were expecting, that’s fine. There’s no real expectation or contractual obligation in any of this. It’s an opportunity to work for a somewhat flighty football nerd while learning some code and hopefully picking up some useful skills as you go. 

  • You’ll be expected to download MS SQL Server or Mac equivalent SQL service.
  • A code editor will be required. Visual Studio Code is free and is, in my opinion, the best option, but any will do. 
  • A graphic design program is not required, but is recommended. You could buy photoshop or something like that, but I use free services like Krita and get essentially the same benefits without having to shell out the cash.
  • For what should be obvious reasons, you must have a reliable internet connection.

Specifics

Specific items that will we be working on:

  • Data Integrity Review
    • Involves combing through player data to review any inconsistencies or incorrect data points that may need correction. This is done every year, but we always find something.
    • This involves review of several hundred thousand data points.
  • Data tables must be reviewed and updated.
  • Full RAS RUN script must be reviewed and otimized.
  • Error Handling
    • RAS has little in the way of error handling, so we’ll be adding programmatic catches whenever there are errors in the code on the site. 
  • Mac Compatibility
    • A vast majority of the code was developed on a PC, and while Mac testing was a part of the overall design and aesthetic, some updates in the last few months have led to general ‘wonkiness’ that needs to be addressed. Adding in specific code to handle mac vs pc is likely necessary.
    • A majority of these changes are visual, but may require handling in HTML, PHP, and CSS.
  • Modular Conversion
    • I began converting my code from functional to modular a couple years ago, but it’s slow going. Things work, so I don’t mess them up much.
    • When draft season is complete, we have the opportunity to convert all code to a more modular build.
  • Data Enhancements
    • Wingspan is not a tracked attribute, but must be added both in the database and functionally in some way. 
    • Player age shall be added by looking for player birthdates and converting by start of league year.
    • Calculated statistics such as Flying 20, vertical force, and others will be added to a table for review and posting.
    • Alternative position datasets will be created, such as EDGE, IOL, and NCB.
      • This will require a review of all 24,000 players
      • MUST NOT be allocated alternate position by size alone
  • Site integration
    • PFREF IDs must be gathered for all players so we can integrate with their site in an ethical manner
    • NFL IDs must be gathered to integrate player rosters and other features
    • Fantasy football integration must be researched, data points created
    • Possibility to integrate OverTheCap info
    • Other site integration is possible
  • Widget creation
    • I’d like to create a shareable widget for RAS, both for the individual cards and for specific tables.
    • Embeddable tables are also an option for media sites and blogs.
  • Research articles
    • If you find something neat and want to write about it, we’ll be using the site as a platform to post that work. Will be promoted through all socials.
    • Some may be assigned for research, but not with expectation that you write (unless you want to)
  • New Site Functionality will be explored and built
  • Update functionality must be expanded.
  • Make-a-Query Page
  • Better Social Media Integration
    • The site is optimized for Twitter
    • Expand for other Socials
  • Improve Data Visualization

Languages

RAS utilizes four different coding languages and CSS, each of which you will be tasked with learning in some capacity and given the resources with which to learn. 

SQL-Structured Query Language-This simple coding language allows you to run queries against stored databases. This does a lot of heavy lifting with RAS, and is an extremely useful tool. The learning curve for SQL starts off simple, so simple in fact that it will take only an hour or two to get started with querying a database for a multitude of information. But from there, it gets significantly more complex quite quickly. For most, the difficult part is finding a database with enough information in it that you’re interested in researching, but that’s really the easy part with RAS. You’ll be using a program to interface with the RAS database for SELECT queries, the most basic form of query, which allow you to pull in data and information on demand. With enough experience, we may get you to the point where you are downloading whole chunks of the data to interface with locally on your computer, using a combination of MS SQL Server and Visual Studio Code. It will take time to get there, though, and enough drive on your part to learn.

HTML – This is the basic web language for webpages, and believe it or not it’s a pretty small part of running a website despite that. For RAS, it’s mostly used in conjunction with PHP or Javascript to build the things you need to with dynamic content. It takes some understanding of HTML in general to be able to build dynamic content, though, so you’ll have to do some of the basics on your own to get started. 

PHP – This is a general scripting language used to build dynamic content on a webpage. Like HTML and SQL, you’ve seen PHP in action every single day on webpages you visit, but you probably don’t realize it unless they break. PHP is a beast for RAS, and most of the website’s content is built using a combination of PHP, SQL, and HTML, with Javascript picking up only the most complex pieces. PHP is generally a server side language, which means the work is done by the website and not your computer. It’s not an easy language to pick up, so we’ll be starting with some relatively smaller tasks until you’re comfortable picking up the modular stuff.

Javascript – Javascript is a popular scripting language that can be used to run both server and client side tasks. This is how you can run tasks on a webpage without having the page reload. One instance of this is how on the RAS calculator, when you enter a new metric it automatically displays what that new test would score. This is also how we are able to create an image from the HTML table for RAS, allowing a user to quickly copy the RAS card and paste it to their social. 

CSS – Style sheets, useful, important, my least favorite thing.

What’s Mine, What’s Yours

One worry that I’ve always had is that opening the site up to more people means more opportunities for someone to rip off the concept, code, and data, to create something in opposition to the site. I know it’s silly, but that reservation has for many years allowed me to be creative in my work, knowing that it’s always stored in a single spot between the ears. It’s also hampered creativity as time goes on, however, and avoiding stagnation is absolutely essential.

As an intern for RAS, you’ll be working with proprietary information and my own intellectual property. That’s a responsibility I would expect you don’t take lightly, but the respect you show towards that work also flows both ways. What you develop for the site is your code, it will be attributed to you, you’ll be given credit whenever it’s mentioned, and if you ask it to be taken down from the site for whatever reason, that will happen. Anything you code will be made use of on the site, and you’re agreeing to allow that usage by accepting the internship, but we will approach any usage or non-usage of your work with mutual respect and consideration.

If you learned enough to move on and you want to keep copies of your code to use elsewhere, that will absolutely be allowed provided you are not also using proprietary information or underlying data from the site. Any research projects you complete are yours to publish on this site, or any other site if you so wish provided the underlying data is attributed to RAS.football and is not published along with the research without a release. You may sense a growing theme here. What’s mine is mine, what’s yours is yours, and as long as we both respect each other’s work then everything is fine and dandy.

What do you get out of this?

If you’re an applicant who doesn’t have coding experience and is wishing to gain some of that, then you’re going to get some of that. Similarly, if you’re here to add to your resume, that’s going to be pretty evident. While not an expert in any one area, I’m proficient in the coding languages I mentioned and a few others, and know enough to provide some guidance on how to complete many tasks. As a learning internship, you’ll be able to show potential future employers that you are willing to work in a fully OJT situation while taking on a diverse set of responsibilities.

If you’ve already got the coding experience, you’ll get the opportunity to work with a sizable dataset in a controlled environment. You can experiment and polish your skills on a site that has pretty high visibility among the NFL and draft communities. It may also lead to other networking opportunities as you gain exposure with your work.

Here for the analytics? Metrics analysis is a bit niche even in the field of football, but being able to critically evaluate data and use it to tell a story is an essential part of any analytic study. You’ll have the opportunity to use a large volume of data to tell stories that haven’t’ been told yet, or expand upon ideas that are already out there with more supporting data.

Just want the database access? I’m hopeful, obviously, that you’ll contribute in other ways, but having access to the database offers a lot of opportunities to use that data in interesting ways. Provided you do not publish the data outside of this site, I have little reservation in using the data to explore new topics.

Just here to sow chaos? You realize I can read those answers, right? What were you thinking?

An underrated part of this, I think, is how I can help expand your usage in Google Sheets. I’m certainly not an expert myself, but there’s a lot of ways that Sheets is used that is simply vanilla. It’s a much more powerful tool than most realize, and it’s the best way to cheat at pretty much any data task.

Still here? Still interested?

Is it normal etiquette to post a long form narrative on what is expected of you, what you get out of it, and all that? No, most will just throw bullet points at you, like I did for the specifics section. But one of the few things I truly expect from you in all this is honesty. I’m handing you the keys to my life’s work and asking you to help me make it better. And that interested you enough to read this far. Or maybe you skipped down here, cheater. Whichever it is, I’m truly excited to try some new things, to build some functionality, to research new topics. And if you’re still interested after reading all that, all you have left to do is to drop your contact info, ensuring it matches your previous questionnaire.

And if you don’t get picked this time, don’t worry, I’ll be doing this again.