Baseball is a numbers game: From batting averages to RBIs, even casual fans are well-versed in players’ stats. As the baseball systems developer for Major League Baseball’s Los Angeles Angels, this is what Nick Usoff does for a living.
Nick, who spent most of his career as a software engineer, uses data analytics and visualizations to track players’ performance during games, then makes suggestions to the coaching staff to help teams win games. (Yes, it’s a lot like the 2011 movie Moneyball.)
The MLB’s recent 99-day lockout and labor negotiations means that Nick’s job has been “mostly theoretical” so far. (He started the position in December 2021, and opening day is scheduled for April 7.) But it’s still thrilling: “It's a normal software engineering job 80% of the time,” Nick says. “And 20% of the time, it’s kind of like you're a part of the baseball team.” When he’s not working remotely during the pandemic, his office is in Angel Stadium of Anaheim.
Here’s what it’s like to use code to help a baseball team win games, plus what you need to know to get a job like this.
What got me interested in the job
I feel like in everything else [I’ve done throughout my career], I've just been like, ‘Okay, I'm writing code for the sake of writing code.’ And now it's like, I'm writing code for the sake of winning baseball games.”
How I got in the door
“What I always wanted to do is have creative license to create visuals that capture a concept or an idea. Since I am a huge baseball nerd and fan, I saw this opportunity to do something similar for a baseball team.
On a whim, I applied and was a little unsure what that would entail. Through the interview process, it was like, ‘Turn this data into something that we can see.’ I thought, ‘Okay, this is what I want to do.’ If I can do it for a baseball team, that's great.
For baseball, in particular, up until 10 years ago, none of this stuff existed. Player evaluation was based on measurable outcomes, but no one was looking at what the outcomes should be. Technology got to the point where everything could be measured.
Now, in professional baseball fields, they have 18 high-speed cameras that shoot at like 1,000 frames per second, at super high resolution, watching all the players in the field at the same time. The implications of that are you can measure anything, like the rotation of the ball and reaction times of players. A huge thing is biomechanics, so looking at how fast someone's arm rotates when they’re throwing the ball, trunk rotation, flexibility, stuff like that.
Every team has access to this data, and all of them are hiring software people and machine learning people like crazy. Since everyone's thinking about the game differently than people have in the past, it creates this opportunity for all kinds of people to hop in.”
What I actually do every day
“We're kind of like the interface between the data and the players and coaches, and also the front office, the people who are in charge of signing and trading players.
For example, we have this physics modeling of the way the ball rotates and should move, and then we take that and see: Well, the ball didn't move exactly like what the physics model said, what's the difference? What if two people throw the same pitch, with the same rotation, and the same angle? Turns out, how you grip the ball is what's different. Now you can go to the player and say, ‘You're throwing this kind of pitch, trying to get the ball to curve, but you're not gripping it the same as this other player. Maybe you should try changing your grip on the ball?’
Or, the catcher has to be very knowledgeable about the hitters’ tendencies, so they can tell the pitchers what pitch to throw. It's really hard to remember all of that information, so on the catcher's wrists is a piece of paper with all the tendencies for the hitters on the other team. I'm working on creating that piece of paper.
This is where all that data comes in: Every single pitch is documented and stored. It's amazing the data that Major League Baseball provides on teams. For every data point, you get a video of that pitch, so you get to see what happened in this play. We take all of that information and boil it down to basically one sentence for each opposing player, which goes on the catcher's wrist. So, my job for a couple weeks was taking all of that data and turning it into that sentence and a little picture.”
Want a job like this? Here’s what you need to get started
A solid grasp of statistical analysis can get you far, Nick says. “Even just the basic understanding of how normal distribution and standard deviation works is such a good baseline,” he says.
In terms of specific programming languages to learn, Nick recommends starting with Python, because it’s easy to pick up and start using right away. With Python, there’s also “the power of having such a large user base,” he says. “So many people have put so much work into creating libraries that allow you to basically do anything with the language.”
- Start with our beginner-friendly course Learn Python 3 to get a grasp on the basics.
- If you want to dive deeper into the world of data, our skill path Visualize data with Python is the way to go. (With this skill path, you’ll even have a chance to work on a project visualizing World Cup data — another example of how the sports industry can utilize data science.)
- Curious how Python is used for data analysis? Check out our Analyze data with Python skill path.
- To learn the skills that you need (including a Python fundamentals course) in order to apply for jobs in data science, head to our Data Scientist career path.
If you have time on the side to create your own data visualizations about things you’re interested in — whether that’s sports or something completely different — that’s also a great way to showcase your skills, Nick says. Not sure which type of project is right for you? Head to our library of projects in Python for some more inspiration. And once you feel comfortable coding with your training wheels off, try a portfolio project, which you can eventually share to prospective employers when you’re applying for jobs.
Nick’s advice if you pursue this field: Don’t fret about learning everything there is to know about one language, and instead focus on being resourceful and developing problem-solving skills. “It was less important that I have an extremely high level of knowledge about programming, and more that I could demonstrate a minimum sort of understanding but know how to apply it,” he says.
Interview has been edited for clarity and length.