Everything You Need to Know About Pitch Profiler

It's a journey, buckle up.

Jeremy Maschino
8 min readDec 31, 2023

For those who just want to check out the website, here you go (Pitch Profiler)!

August 2019

Because I’ve never really spoken about how Pitch Profiler came to be, let’s start at the beginning. About a month prior, I graduated from college with a degree in software engineering while also ‘participating’ on the campus baseball team — but that’s a story for a different time. Now it was time for me to get a big-boy job, but I had absolutely no traction. Phone interviews came and went with nothing to show until one day I finally received an invite for an in-person interview. Needless to say, I was pretty stoked. Interview day arrived, I put on my best (only) sports coat in the middle of the Minnesota August humidity and made the drive to the office.

The interview was four hours long, and I met with pretty much everyone at the company, from potential coworkers to executives. But, after the first 45 minutes of this interview, I can confidently tell every single one of you reading this that I was not going to get the job. It was embarrassing. If any of you have written code from scratch on printer paper in a coding language you do not know, I promise you that you’re not missing out. I felt unqualified and suffered greatly from imposter syndrome. From that moment on, I made my decision that the corporate software engineering route wasn’t for me.

So, I turned to baseball for help like I had done so many times in my life. Within a few weeks, I stumbled upon Baseball Savant and after researching how to scrape data from there, I found pybaseball (huge shoutout to everyone who has contributed). I put my nose to the grindstone and started writing the beginnings of the most important Python script of my life (unbeknownst). I watched countless hours of Simple Sabermetrics to gain industry knowledge and figure out ways to implement the stats/metrics Jake talked about into my Python script. At the time, the output was just a Pandas DataFrame in the terminal, showing basic pitch metrics (velocity, spin rate, inferred tilt, inferred spin efficiency), along with some results for each pitch.

The OG Python Script

Using this script, while watching the 2019 World Series between the Astros and Nationals, I quote-tweeted at least 25+ Pitching Ninja videos with metrics, hoping something would stick. And something must have because I remember getting my first retweet from him and feeling like I had just struck gold. That might have been the first time I thought I could make something out of this. However, all I had were numbers, and no one likes staring at a screenshot of a Pandas DataFrame. I needed to find a way to make my script visually appealing.

Pitch Profiler V1

Honestly, I don’t really remember when I started creating what resembles the Pitch Profiler website you all see today, but it had to be right after the 2019 World Series. At that point, I had pretty much taken over my parents’ basement (thank you, Greg and Lisa) and wanted to figure out how I could showcase my DataFrame. So, I learned the most practical way of sharing data: by outputting it into a Microsoft Word document (lol) using matplotlib, Pandas, and a few other Python packages. Eventually, I was finally able to produce ‘legitimate’ reports.

Pitch Profiler V1

With those reports, I spent countless hours writing analyses for potential free-agent pitchers on Reddit. One day, out of the blue, I received a DM asking if I had ever heard of SportRadar (I hadn’t) and if I would like to set up a job interview (absolutely!!!). The interview process went incredibly fast. I visited the office twice, and within a week, I had FINALLY accepted my first legitimate job out of college. I owe the vast majority of credit to Pitch Profiler. I specifically remember bringing a printed-out report of Max Scherzer’s 2019 season, walking them through all the metrics while explaining my passion and ideas behind Pitch Profiler.

My role at SportRadar was to provide stats/information to MLB, NFL, NHL, and NBA broadcast crews (national and regional — think FOX, CBS, Bally, etc.) as well as provide insight on some of the more advanced MLB numbers. And because of this new job, Pitch Profiler ended up sitting on the sidelines for a while.

Unfortunately, over the next two years, my mental health declined drastically. Being furloughed during COVID was tough on me, especially as an extroverted person. I thought getting my job back would help ease this, but it only made it much worse. For those unfamiliar with working in sports, it becomes your life. My work schedule was Tuesday-Saturday, with most Friday and Saturday shifts starting at 2 pm, and some as late as 6 pm. Which meant that I worked until 2 am the next day. This really took a toll on me, pushing me into uncomfortable areas of life that no one prepares you for.

Physically, I went from someone relatively in shape from playing college baseball to someone I barely recognized. Mentally, I shifted from being a go-getting, positive person to battling anxiety, causing me to question whether getting out of bed was worth it some days. Socially, spending time with the people I cared about became almost impossible. My work schedule got so whack that I went six months without seeing my then-girlfriend, and spending time with friends became close to impossible due to conflicting schedules. This not only led to the end of most of my friendships but also the demise of a long-term relationship.

In the timeline of things, it’s now August 2021. I felt like I had lost everything — friendships, a partner, any positive self-image, drive, determination, motivation. Anything and everything positive that I had built up in my life now seemed like a distant memory. Deep down, I knew I had to make a change to be happier, starting with finding a new job. That’s when Pitch Profiler came off the sidelines and work on the online version began.

Pitch Profiler V2

I often tell people that I created the website because I grew tired of running reports for others all the time. The truth is, I developed the website to showcase my skills and find a new job. My time at SportRadar was miserable, and I yearned for a job that would allow me to see my friends more frequently or, at the very least, engage in the activities I enjoy outside of work. Just getting back to a normal life seemed like a dream to me. I thought the best path forward was to take the next big step with Pitch Profiler and make it a website. From late 2021 to early 2022, that’s precisely what I set out to do.

I had zero intentions of actually continuing to update the website after I found a job, but unfortunately, I was not finding any jobs. Likely due to me casting a very small net, looking for jobs that would allow me to live my life on my terms, doing the things I enjoy, and spending time with the people I care about. Because of this, the updates to Pitch Profiler continued but my career in sports was slowly coming to an end.

This is the part where it gets kind of nerdy, so strap in. It’s now early 2022, and the website underwent some major changes. The most significant change is that all of the data is now being stored in a database, rather than pulled straight from Baseball Savant via pybaseball. However, the most notable addition was the inclusion of pitch modeling metrics (Stuff+, Command+, Pitching+, and xWhiff+) that I created myself using Linear Generalized Additive Models. Later, I added the Pitchers and Pitches leaderboards in a constant effort to improve the website, hoping that all the work I put into it would pay off.

July of 2022 was when my life changed significantly for the better. A recruiter contacted me about a potential data analyst position, and within two weeks, I received a job offer, largely attributed to the work I had done with the website. Up until this point, I had never experienced tears of joy, but they were indeed shed. I consider the day I accepted my current job as the best day of my adult life (up to this point). However, due to having to get up to speed at the new job and experiencing what life should be like for the first time in a long time, Pitch Profiler took another back seat.

Pitch Profiler V3

In the year and a half following the acceptance of my new job, I discovered that I still love sports, but now only at my own pace. After some time, I found myself updating the website again, not because I was looking for a new job, but because I genuinely enjoyed doing it. Much of this I attribute to y’all — the people who have left so many positive comments on Pitch Profiler. This new update is another significant step forward in the lifecycle of Pitch Profiler, with many of these changes specifically requested by users of the website!

For those reading along who have experience in web development, you might not be thrilled when I tell you that Pitch Profiler is 100% Python-Dash. Fortunately for me, I work extensively with Python-Dash in my current job. Over the last year and change that I’ve been at my current job, I’ve had the opportunity to learn and grow, and now I can apply that to enhance Pitch Profiler.

In short, this new iteration is more streamlined, visually more pleasant, and overall easier to use. While the additions to the website may seem minimal, they present all the relevant information with minimal scrolling (perhaps addition by subtraction?). I’ve also introduced a new glossary section (now you can stay on the website when you’re curious about a stat!) PLUS there are new graphing pages that I believe will see a ton of usage. Of the things you cannot see, I rewrote my data pipeline code, making the data transfer from Baseball Savant, through my models, and into my database twice as fast. This is the most excited I’ve ever been about an update to the website and it's all thanks to you guys.

I didn’t really have a direction for this write-up in mind when I sat down, so I kind of just wrote out all my thoughts. It kind of turned into a story of my life over the past five or so years (so I’m sorry if you came for spark notes on the upgrades). First and foremost, I’d like to say a massive thank you to so many of you. Without the support and suggestions on how to improve the website, Pitch Profiler would have never gotten this far. Without the website reaching this point, I don’t know what I would have done. The evolution of the website allowed me to escape a difficult phase in my life, and because of that, I’ve learned to love baseball and, more importantly, my life again.

Due to the website, many of you I now get to call my friends, and I’ve had the pleasure of meeting a great deal of you — something I never imagined when I started this journey in 2019. It’s been nothing short of amazing.

For my non-baseball friends and family who may be reading this, thank you for sticking with me and keeping me sane. There were days when I absolutely needed to step away from everything, and you helped me do so.

So again, thank you. Your support has helped me more than I can ever begin to repay.

- Jeremy Maschino

--

--

Jeremy Maschino
Jeremy Maschino

Written by Jeremy Maschino

Data Analyst & Pitching Enthusiast

No responses yet