Job Posting: Yankees Baseball Operations Web Application Developer

Position: Web Application Developer – Baseball Operations

Postion Overview:
The New York Yankees organization is accepting applications for an experienced web developer in their Baseball Operations department. Candidate should have 3+ years of experience developing data-driven web applications using REST services and JavaScript MV frameworks like Angular, Vue.js, or React. Candidates should possess not only the technical skill, but the design sensibilities needed to create a compelling and efficient user experience.

Primary Responsibilities:

  • Assist in the design and implementation of web-based tools and applications for senior baseball operations personnel.
  • Migrate and adapt existing web applications for mobile devices and various hardware platforms.
  • Interface with all departments within Baseball Operations (scouting, player development, coaching, analytics) to build tools and reporting capabilities to meet their needs.
  • Work with major and minor league pitch, hit and player tracking datasets, college and other amateur data, international baseball data, and many other baseball data sources.

Qualifications and Experience:

  • Bachelor’s degree (B.S.) in Computer Science or related field
  • MUST have 3+ years of experience with data-driven web application development using:
    • REST services, preferably built on ASP.NET WebAPI
    • ORM frameworks (nHibernate/Entity Framework/etc)
    • JavaScript MV frameworks (Angular/Vue.js/React/etc)
    • Front-End CSS frameworks (Bootstrap/Material/Foundation/etc)
  • Proficient in SQL databases and various database design principles (Microsoft SQL Server a plus)
  • Familiarity with Microsoft Visual Studio and source code management tools (Git, TFS/VSS)
  • Knowledge of the software development lifecycle (requirements definition, design, development, testing, implementation, verification), Agile, and industry best practices.
  • Excellent communication and problem-solving skills – must be able to breakdown a complex task and put together an execution strategy with little guidance.
  • An understanding of typical baseball data structures, basic and advanced baseball metrics, and knowledge of current baseball research areas a plus.

Please note, full-time telecommuting available under the right circumstances.

Job Questions:

  • Describe your experience developing REST APIs and how you’ve used them in development of data-driven web applications.
  • Describe your familiarity with JavaScript MV frameworks (Angular/Vue.js/React/etc) and how you have used them in your work.
  • Have you ever worked with any baseball datasets? And if so, which ones and how have you used them?
  • List any active websites or mobile applications you have developed (and the technologies they use) that might showcase your work.

To Apply:
To apply, please submit an application through this link.

The content in this posting was created and provided solely by the New York Yankees.


Job Posting: Detroit Tigers Baseball Operations Software Engineer

Position: Software Engineer, Baseball Operations

Location: Detroit, Michigan

Description: The Detroit Tigers are currently seeking a Software Engineer. This role will be responsible for development and maintenance of software projects within Baseball Operations. This position will report to the Sr. Software Engineer, Baseball Operations.

Key Responsibilities:

  • Perform general development and maintenance tasks for the upkeep of internally developed software products.
  • Use modern software techniques and best practices in all parts of the software life cycle.
  • Support the integration of baseball analysis into our proprietary tools and applications.
  • Assist with the design and development of new software products.
  • Other projects as directed by the Baseball Operations leadership team.

Minimum Knowledge, Skills, and Abilities:

  • BS degree in Computer Science, Computer Information Systems, similar technical field of study or equivalent real-time experience.
  • Demonstrated knowledge in developing in a Web-based object-oriented product environment.
  • Demonstrated knowledge in working with medium-to-large scale relational databases.
  • Ability to work in all phases of the product lifecycle, from requirements gathering to design, testing, and implementation.
  • Ability to learn new technologies and techniques as necessary.
  • Familiarity with the sport of baseball, baseball-specific data, modern statistical techniques, and sabermetric analysis.

Preferred Knowledge, Skills, and Abilities:

  • Experience with data pipelines, data warehousing, or data engineering, especially using SQL Server.
  • Experience developing web APIs using Java or C#/.NET.
  • Experience with JavaScript visualization tools such as D3.js or Plotly.js.
  • Experience with cloud services and/or container technologies.

Working Conditions:

  • Office environment.
  • Occasional evening, weekend, and holiday hours may be required.

To Apply:
To apply, please complete the application here.

The content in this posting was created and provided solely by the Detroit Tigers.


Job Posting: Tampa Bay Rays (Multiple)

Please note, this posting contains multiple positions.

Position: Baseball Research & Development Analyst (Multiple Roles)

Location: St. Petersburg, Florida

Description: The Tampa Bay Rays are searching for their next Baseball Research and Development Analysts. Their R&D group helps shape their Baseball Operations decision-making processes through the analysis and interpretation of data. They are seeking those with a passion for baseball and a desire to contribute through mathematics, data analysis, and computation. The next members of their R&D team will be intellectual contributors that can work both individually and collaboratively, come up with interesting research questions to explore, find ways to answer those questions through the available data, develop, test and validate quantitative tools, communicate the results of their research, and work to apply their research outcomes to improve how their organization operates. They want to work with people who care about being a good teammate, want to make a positive impact on their organization, have an innovative spirit, and will explore new ways to make them better. Does this describe you?

Duties & Responsibilities:

  • Develop models to answer various questions and problems posed by decision makers
  • Generate internal quantitative tools for use by other members of the department
  • Administer the processing of quality data from various sources
  • Examine the relationship between the data from various sources and player performance
  • Create reports at the request of various stakeholders
  • Investigate ways to improve current tools

Skills:

  • Fluency in R or Python
  • Experience with statistical modeling and machine learning
  • Candidates with non-traditional schooling backgrounds, as well as candidates with traditional degrees in related areas, are encouraged to apply

To Apply:
To apply, please complete this application.

Position: Product Designer

Location: St. Petersburg, Florida

Description: The Tampa Bay Rays are hiring a Product Designer to improve their existing products and build new features in their products. The goal is to provide their end-users with an intuitive and consistent experience throughout the entire suite of applications. They are searching for someone who is self-motivated and acquires skills quickly. This role will have a direct impact in the software that is used for all aspects of their Baseball Operations department and on the experience of users in different capacities around the world. Their ideal candidate will have experience and demonstrated success in the items listed below.

Duties & Responsibilities:

  • Create a design framework of reusable components to standardize the UI across the entire web app
  • Develop new user-facing features, and improve the existing UI/UX
  • Ensure the technical feasibility of UI/UX designs
  • Be responsible for all design choices from inception through launch
  • Collaborate with other team members and stakeholders from beginning to end with regards to UI/UX design and usability to ensure that the stakeholders needs are met in coordination with the Baseball Systems Development Team

Skills:

  • Be able to implement your designs using HTML & CSS
  • Understanding of when it’s best to use different technologies such as Flexbox and CSS Grid
  • Understanding of server-side CSS pre-processing platforms, such as Sass
  • Familiarity with client-side scripting and JavaScript frameworks such as Vue, React, jQuery, vanilla JavaScript & ES6
  • Good understanding of asynchronous request handling, partial page updates, and AJAX and how it will affect your design choices
  • Knowledge of image authoring tools, to be able to crop, resize, or perform small adjustments on an image. Familiarity with tools such as Gimp or Photoshop is a plus.
  • Understanding of the Git version control system

To Apply:
To apply, please complete this application.

Position: Data Engineer

Location: St. Petersburg, Florida

Description: The Tampa Bay Rays are seeking a Data Engineer to join their Baseball Systems department to help ensure data integrity and that users have acceptable performance when accessing the database. This role is responsible for importing data from external providers, integrating data from different sources, and working with members of the R&D department to operationalize analytical products. This person will interact with multiple departments and staff members, sometimes all at once, to take feedback as well as to make recommendations for improvements. The sole focus of this role is the performance of the database – a critical aspect of the success of the Rays Baseball Operations department – and the necessary interaction with the Research and Development and Baseball Systems groups to achieve that goal. Problem-solving skills and being an excellent teammate are a must in this role.

Duties & Responsibilities:

  • Responsible for development and support of integrations with external data providers
  • Address data quality issues and implement procedures for error checking and monitoring
  • Ensure the database performs up to an acceptable level
  • Coordinate R&D models with the daily flow of data to ensure that they are synchronized
  • Explore emerging technologies and determine their fit with the Rays’ current platform

Skills:

  • Advanced understanding of SQL
  • Experience with R, Python, or other scripting language
  • Proficiency with evaluating and improving the performance of SQL queries
  • Ability to assist in the development of data models optimized for business intelligence and/or analytic workloads
  • Knowledge or experience with semi-structured or unstructured data stores
  • Comfort with exploring and evaluating new technologies
  • Ability to manage multiple tasks and priority levels at once

Technologies:

  • RDBMS (SQL Server, MySQL)
  • SQL Server Integration Services
  • Cloud Technologies (Azure, AWS)
  • Apache Project (Hive, Spark, Kafka, NiFi)

Education/Experience:

  • Bachelor’s Degree in Computer Science, Engineering Degree or commensurate experience

Demonstrated success with:

  • Data Ingestion
  • Data Processing (Cleaning, Transformation, Integration, etc.)
  • Data Warehousing

To Apply:
To apply, please complete this application.

Position: Junior Data Technician

Location: St. Petersburg, Florida

Description: The Rays’ Junior Data Technician will be responsible for assisting with the inspection, validation, calibration, and processing of multiple data sets. Their new hire will partner with the Data Technician to thoroughly vet, critically assess, and curate many data sources used by the Baseball Operations department. They will work collaboratively while ensuring the reproducibility and reliability of the Rays’ data processing by standardizing procedures and generating documentation. This role will interact with multiple departments and staff members to take feedback as well as to make recommendations for improvements.

Duties & Responsibilities:

  • Builds statistical models and automated systems to process, evaluate, and calibrate data
  • Assures that data received from external sources is of usable quality and standardized
  • Reviews discrepancies in data, gathers clarification or advises end users of issues related to data set
  • Supports the analysts that use the data set
  • Interacts with staff on matters affecting the data and makes recommendations for improvement or process enhancement
  • Produces documentation outlining standard processes

Skills & Education:

  • Familiarity with R and SQL or proven ability to learn new a programming language quickly
  • Knowledge of statistical modeling
  • Candidates with non-traditional schooling backgrounds, as well as candidates with traditional degrees in related areas, are encouraged to apply

To Apply:
To apply, please complete this application.

Position: DevOps Engineer

Location: St. Petersburg, Florida

Description: The Tampa Bay Rays are seeking a DevOps Engineer to embed with their Baseball Research & Development department to improve the efficiency and increase the reliability of their products and tools. A primary goal for this position is to reduce the amount of time spent on code and infrastructure maintenance while positively impacting research progress. This person will work in collaboration with current staff and develop best practices for the department. This role will have the expertise to develop a framework to facilitate continuous evaluation of their models to ensure reliability and optimize speed. Their new hire will also have a strong ability to relate to staff and effectively communicate new practices. If you have a passion for improving processes, automation, developing best practices, and being a great teammate, consider the responsibilities below.

Duties & Responsibilities:

  • Improve the overall efficiency of the R&D group and reliability of production models and code
  • Oversee computational infrastructure, make decisions on the best approach, and configure the infrastructure accordingly
  • Improve database performance by reducing the inefficient ways database resources are used
  • Facilitate the reliability and quality control of the Rays’ various models
  • Develop internal software packages (R, Python) that can be leveraged to make development and deployment more efficient
  • Manage a server that houses various analytical tools
  • Coordinate with Data Engineering to deploy the Rays’ pipeline in their main data import procedures, when possible
  • Develop API’s for their models for live data processing and for exploration of models via interactive apps
  • Assist analysts in the development and maintenance of various apps

Skills & Education:

  • Continuous Integration and Deployment in a data science environment
  • Containerization technologies
  • Automated testing tools
  • Package development
  • Scripting Languages (Python, Powershell, Perl, etc.)
  • Candidates with non-traditional schooling backgrounds, as well as candidates with traditional degrees in related areas, are encouraged to apply

To Apply:
To apply, please complete this application.

The Rays are an equal opportunity employer and all qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability status, protected veteran status, or any other characteristic protected by law.

The content in this posting was created and provided solely by the Tampa Bay Rays.


Daily Prospect Notes: 5/1/19

These are notes on prospects from lead prospect analyst Eric Longenhagen. Read previous installments here.

Yohan Ramirez, RHP, Houston Astros
Level: Hi-A   Age: 23   Org Rank: NR   FV: 35
Line: 4.1 IP, 1 H, 1 BB, 0 R, 8 K

Notes
Ramirez has been up to 97 and is sitting 92-95 while making heavy use of an above-average curveball. Spinwise, he averages about 2300 rpm on his heater, and 2500 on the curve, which is relatively tame for Houston prospects. His changeup is a distant, tertiary offering. He’s K’d 30 in 20 innings so far, but looks like a two-pitch relief candidate at most.

Zach Plesac, RHP, Cleveland Indians
Level: Double-A   Age: 24   Org Rank: HM   FV: 35
Line: 6.2 IP, 4 H, 0 BB, 1 R, 9 K

Notes
Plesac’s velocity is up. He sat 90-94 in college and was back in that range following Tommy John, but this season his fastball is averaging about 94 and bumping 97. His changeup is plus, and he is throwing a lot of strikes, something that he didn’t do as an amateur. There’s still not a great breaking ball here and that might limit Plesac’s role, but he’s starting to look like a near-ready bullpen option, at least. Cleveland continues to do quite well developing college changeup artists.

Rico Garcia, RHP, Colorado Rockies
Level: Double-A   Age: 25   Org Rank: tbd   FV: 35
Line: 6.2 IP, 4 H, 0 BB, 0 R, 11 K

Notes
Garcia will sit 93-96 and touch 97 early in outings but lose command and zip later in starts. There are a variety of opinions about Garcia’s delivery, as one source thinks his deliberately paced mechanics are easy for hitters to time, while another thinks Garcia hides the ball really well. He’ll flash an above-average changeup and slider, and shows an ability to manipulate the fastball to sink and cut at various times. He’s more of a middle relief candidate than potential rotation piece, but it appears Colorado has found a big league piece in the 30th round.


New FanGraphs “Plus” Stats!

One of the tricky things about having so many stats on the site is that it can sometimes make it difficult to figure out whether a particular player is “good” or “bad” in a given statistical category. The other thing that can further complicate matters is the ever changing league rates. Given that the league strikeout percentage has increased over 8% in the past 30 years, what was once considered a well above average strikeout rate might today be merely average.

That’s why we’re introducing the “+ Stats” section to our leaderboards, where we have season and league adjusted a number of stats for your perusal.

Just like wRC+ and ERA-, all of these stats have a baseline of 100, where the number above or below 100 is the percentage above or below average a player is. For instance, Pedro Martinez’s 1999 K%+ is 239, that means he was 139% above the league average.

These baselined stats make it relatively easy to compare things like strikeout rates and walk rates across seasons and careers to see who was truly above (or below) their peers.

We’ll periodically add other stats to this section, so if you have additional “+ Stats” you’d like to see, please let us know in the comments!


Just What the Hell Was Marcell Ozuna Doing?

Look, we all make mistakes. After all, we’re human. Sometimes our judgment of a situation is flawed from the outset, prone to fallacious reasoning. Often we overestimate the probabilities of events, or the limits of our capabilities. Occasionally, we look foolish doing so, but rarely in so grand a fashion as Marcell Ozuna did on Tuesday night.

With the Cardinals hosting the Dodger in St. Louis, Kiké Hernandez launched a fly ball to left field off pitcher Mike Mayers. It left the bat with an exit velocity of 99.3 mph and had a good arc to it. Ozuna … well, he tried to be a hero:

You can’t hear Ozuna’s voice, but if you could, it would probably be some variant of the classic, “I got it! I got it! I got it! I … ain’t got it.” Ozuna scaled the wall, only to realize that the ball would fall about 10 feet short, and his effort to correct course was ungraceful, to say the least. Between his cleats digging into the padded fence, his bellyflop, and the near-miss of a flying projectile in the general vicinity of his noggin, he’s damn lucky he didn’t get injured.

Statcast guru Daren Willman harnessed all of MLB Advanced Media’s computing power to determine Ozuna’s route efficiency…

…wait, no, that’s not it…

…before memorializing the play in an easy-to-find location.

This isn’t even the first time Ozuna has screwed up in such grand fashion. He did something similar last June 21 on a drive by the Brewers’ Jesus Aguilar.

Like Hernandez’s fly ball, that one turned into a double as well. The real issue is that Ozuna has actually scaled the wall to rob a home run before — from Hernandez no less. From July 16, 2017, when Ozuna was still a Marlin:

Given that, it’s easier to understand what happened on Tuesday night, and to be fair, the defensive metrics don’t suggest Ozuna is particularly incompetent afield, at least since leaving center field after the 2016 season, when he was 5.6 runs below average according to UZR, and 12 below according to DRS. For 2017-18, he was 7.1 runs above average in left field per UZR, and 19 above average via DRS. He even brought home a Gold Glove in 2017!

Yet time and entropy remain undefeated, which is why very few of us — besides Mike Trout, at least — are capable of the same feats we made look effortless just a couple of years ago. It’s good to laugh gracefully at such mistakes:

Some of us can’t resist laughing at, instead of with:

Really, though, we’re all just Kenley Jansen for this one:

We can’t help laughing, but we don’t want to make too big a show of it. After all, there’s a chance that we might be next.


ZiPS Update: Three Year Projections!

FanGraphs now has Dan Szymborski’s Three Year ZiPS Projections on both the sortable projections pages and all of the player pages.

As Dan notes:

It’s the ZiPS you love/like/hate, now slightly less accurate! Predicting the future is foggy and the further you go, the thicker the fog gets. Every time ZiPS runs a projection, it provides a player’s rest-of-career projection, but until now, only the first-year projection has been made public on a systematic basis.

ZiPS is a non-parametric model, deriving aging curves from very large groups of similar players, so history is the main guide. After all, there’s no experimental data; it’d be nice to let Jose Altuve play out his career a million times in a million realities and see how he ages, but that’s currently impossible. Plus, the MLBPA probably would not be open to participating in this unending purgatory.

The three-year projections are start-of-season projections. There’s currently no mechanism to update future projections the same way the in-season projections are calculated. The year-to-year model that ZiPS uses is much more robust than the in-season model and I am not smart enough to have figured out an automatic workaround yet.


We Added Minor League Level to THE BOARD!

We’ve added a column on THE BOARD called “Current Level” displaying the most recent minor league level the prospect has played at or has been transacted to.

The process of programmatically determining a prospect’s current level is slightly less straight forward than it might seem. For example, Vladimir Guerrero Jr. is currently a Blue Jays non-roster invitee, so his Minor League Baseball stat page has him listed as Blue Jay, but he hasn’t played a MLB game.

To mitigate problems like this, we are using a combination of our game logs and MLB’s transaction list, along with some logic to determine the prospect’s level. Here’s the summary of the logic:

  • If the prospect hasn’t played in the majors, he cannot have the majors as his level.
  • We look at the most recent minor and major league games the player has played and find the game with the most recent date.
  • We look at the most recent transaction MLB has listed.
  • We compare the transaction and last game to determine which is more recent and use that for level, with consideration of the MLB debut.

This logic will prevent prospect non-roster invitees in Spring Training from displaying as being at the major league level. The transaction and game log approach will provide some robustness against any errant transaction data. Since this is programmatic, there isn’t any judgement on whether an assignment is temporary, like a rehab stint would be.

If you notice any errors, there could be a delay because the data processing runs overnight, but if it persists, please let us know.


Mike Trout Is Baseball’s $430 Million Man

Have you had your morning coffee yet? Here’s something for you:

In the seven years since his debut as a precocious 19-year-old back in 2011, Mike Trout has been worth 64.9 wins above replacement — nearly 20 more than the next-greatest mark achieved over that period (Buster Posey’s 47.3). If you look since 2012, which eliminates Trout’s 0.7 win 2011, the gulf is just as wide: Trout’s 64.2 wins are as far ahead of second-place Posey (45.4) as Posey is of 21st place Jonathan Lucroy (26.3). Trout holds the record for most WAR through age 21, 22, 23, 24, and 26 (Ty Cobb beat him out for 25). Mike Trout is 23rd all time in career WAR through age 30, and he is only 27 years old. Mike Trout is already an average Hall of Famer, and his career can’t yet drive or buy a drink.

Now he’s also signed the biggest contract in professional sports history, besting in one swoop both Zack Greinke’s $34.4 million AAV (Trout will get $36 million), and, by $100 million, Bryce Harper’s briefly record-setting $330 million contract with the Philadelphia Phillies. Trout will be an Angel for life and he is already the greatest to ever wear that uniform. Craig Edwards will have a much longer post putting this all in context later today, but for now, please take this time to discuss, reflect, and enjoy. Mike Trout is baseball’s greatest player, he should be the game’s biggest star, and he’s finally going to be paid like it.


Steven Wright’s PED Suspension Could Test Red Sox Depth

In what will be its 16th season suspending players for taking performance enhancing drugs, Major League Baseball has given Steven Wright an 80-game suspension. Tests revealed a growth hormone in Wright’s system. Wright indicated he didn’t know how the PED entered his body, but accepted the suspension. 2019 will mark the second straight year in which Wright will begin the season with a suspension; he missed 15 games in 2018 after violating the league’s domestic violence policy.

Without Wright, the Red Sox depth in the bullpen will be tested. I tried to test the depth of the Red Sox myself, but I almost broke both of my arms trying to swim in a pool of baseball players.

Jay Jaffe just wrote about the Red Sox bullpen as it relates to their lack of pursuit of Craig Kimbrel, despite losing the aforementioned closer as well as Joe Kelly.

Nobody new of any note has come into the fold besides Jenrry Mejia, who signed a minor league deal in January after being reinstated from a PED-related, lifetime ban that cost him the past 3 1/2 seasons. Via our depth charts, the primary pool of relievers appears to consist of lefties Brian Johnson and Bobby Poyner, and righties Matt Barnes, Ryan Brasier, Heath Hembree, Tyler Thornburg, Hector Velazquez, Marcus Walden, and Brandon Workman, with knuckleballer Steven Wright coming along slowly after arthroscopic surgery on his left knee [update: and also suspended for 80 games due to a PED violation] and Carson Smith not available until sometime in midseason as he works his way back from last June’s shoulder surgery.

Jaffe took a look at the ‘pen’s depth chart and noted the projections were not very good. Wright’s 0.1 WAR projection doesn’t make his suspension seem like a big loss, but knuckleballers might be a difficult bunch to project given the lack of comps. The Red Sox were certainly planning on using him and saw something beyond what our projections see, or at least, saw something better than their other in-house options, which include little help from the minors.

While Wright wasn’t expected to start, it’s also worth noting the Red Sox have almost no starting pitching depth either. They have a very good starting five with Chris Sale, David Price, Nathan Eovaldi, Rick Porcello, and Eduardo Rodriguez, but almost nothing beyond that. Boston should be a very good team this season, but their pitching staff has some weakness to it. Wright’s suspension isn’t likely to affect much, but it does hurt their depth just a little bit more, and in what is likely to be a tight division, small losses can have big impacts.