Custom Software Dev for Sports Tech Company
- Custom Software Development
- Less than $10,000
- Oct. 2019 - Mar. 2020
- Quality
- 5.0
- Schedule
- 5.0
- Cost
- 5.0
- Willing to Refer
- 5.0
"We appreciated Shaun's professionalism and how easy it was to communicate with him."
- Other industries
- Portland, Oregon
- 1-10 Employees
- Online Review
- Verified
Sembit provided custom software development for a sports tech company. The team created software that is integrated on the client's three platforms while preserving the legacy software as a primary data source.
Sembit was able to deliver them and match the client's request for the project despite the daunting requirements. The team provided highly detailed project breakdowns. The team was also able to finish the project and all the deliverables according to the set timelines.
The client submitted this review online.
BACKGROUND
Please describe your company and your position there.
I am the co-founder and CEO of Grantstone Ventures, and PickleballRatings.com is our primary software product and service. We use the common Elo algorithm to process player ratings for tournaments and clubs in the fast growing sport of pickleball, which is the offspring of a passionate night spent between tennis, ping-pong, and badminton.
OPPORTUNITY / CHALLENGE
For what projects/services did your company hire Sembit, and what were your goals?
We built a custom piece of software to integrate three platforms, in which the platform (tournament software) that was the primary data source was a legacy piece of software. This was a daunting project, and when it was all complete and functioning, we sought bids for an independent valuation of the cost to replicate this effort.
SOLUTION
How did you select Sembit and what were the deciding factors?
Shaun and his team at Sembit blew away the competition -- it was clear right away that Sembit was willing to do the deep dive into our project and the code to really understand what was needed in this project and how we accomplished it.
The other agencies we looked at, frankly, wanted to tell us how great they were. Sembit instead asked a lot of probing questions and provided the kind of consultation that really made us comfortable in hiring them.
Describe the scope of work in detail, including the project steps, key deliverables, and technologies used.
Here is what we shared with the agencies that we reached out to: Application will be a 3-party API integration between tournament software vendor, ratings processing vendor (self) and governing body of sport. Scripts will run each week to pull updated source data from governing body membership data and tournament results and player data.
Tournament match results can be exported per-tournament as HTML, but each match result shows player names (first/last) in the HTML output. Will need to dig into existing Perl web app code to change that output from first/last to instead output a player's unique record ID. Internally the existing software has a flat file database for tourney data, and a separate SQL database for player data.
Additionally, there is a large subset of match results where a player's unique record ID is not linked, this is because some tournaments' data get "imported" through an external-data-import process. Need to dig into existing Perl web app code to try to re-link these orphaned player records.
In addition to parsing match outcome data from the HTML data, also need to identify matches that end in forfeit or withdrawal so they can be not-included for ratings changes. Other tournament data such as tournament title, date of tournament, name of individual brackets/events needs to be parsed from the HTML data.
Tournament sanctioned-status needs to be retrieved from the flat-file database for purpose of weighting the Elo algorithm more heavily for sanctioned tournaments. This will be a new, separate Perl script in the existing Web app, it will expose a JSON dump of tournament IDs with the sanction field value.
Tournament results will need to be classified as Men's Doubles, Women's Doubles, Mixed Doubles, Men's Singles and Women's singles. Need to write an algorithm that looks at the title of each tournament event and parses it into one of these 5 classifications. A given player can have 1, 2 or 3 ratings: gender doubles, mixed doubles and singles.
Tournament results will need to be sorted by date so they can be processed for ratings in chronological order.
Tournament player data (as opposed to match results) can be exported as a JSON dump from the SQL database, the master player database contains normalized tournament entrant data, so there is only one player record for many tournaments.
The master player database contains many duplicate entries for players, some players have 2 or 3 accounts and other players have 6 or 8 accounts, need help identifying and reconciling player data problems so that ratings engine combines all match results together for a given player even if they have 2 or more player records.
To create the initial Elo "starting point" ratings for players, we want to write a program that looks at the first bracket they played in, up to 3 years ago. It would look at the other players in the bracket and average the other players' ratings to create a players new rating.
After establishing initial ratings for all players, we want to "re-balance" the distribution of player-ratings. We will provide percentages for the expected amount of 3.5, 4.0, 5.0+ etc players, we are looking for a custom program that will allow us to move players up and down at the outset, to create the correct numbers of players at different rating levels.
After the ratings system is launched, when new players play in a tournament, they will get a new rating based on the average of the ratings of other players in their bracket. When tournaments are processed each week for the purpose of ratings-changes, will need to expose an API where weekly updated ratings can be downloaded in two formats.
One format will associate governing body member ID (is available in the master player database) with the player ratings (up to 3 ratings per player). This format will be used to update the governing body player database.
The other format will associate the player unique ID with his updated ratings for the purpose of updating the ratings as they appear in the tournament player master database. This output will have to accomodate any players who have multiple/merged player accounts. Need to create a web app for displaying each week's ratings processing per-player.
This web app will have 5 reports for each week's ratings, one for each of the 5 classes of ratings.
The report will list all of the players and ratings in a searchable/sortable list, clicking on an individual player will show the details of all of that players match results going back 3 years, including the rating-change for all four players in each match and will include a visual graph showing the players rating history over time.
This web app will need to have user-authentication so only administrators can view the ratings. When tournaments are processed for ratings changes, need to check the sanction field for sanctioned status and "weight" the Elo algorithm so that sanctioned tournaments have a full effect but unsanctioned tournaments will have 60% effect on ratings-changes.
Need a web app for overriding ratings when players appeal to governing body. Need to be able to override a 4-digit rating before the week's processing begins. Also need to override 2-digit rounded ratings (which are established/re-rounded/preserved at the end of each week's 4-digit processing).
The web app for overriding ratings will operate on ratings data in the tournament vendor's Perl application - those ratings will be compared to the prior week's ratings to detect changes and relay the changes to the governing body's web site.
How many people from the vendor's team worked with you, and what were their positions?
VP Shaun Davidson was our exclusive contact at Sembit, though I believe he utilized members of the Sembit programming team to assist with this project.
RESULTS & FEEDBACK
Can you share any measurable outcomes of the project or general feedback about the deliverables?
Sembit delivered exactly what we asked for -- both a high level analysis as well as a detailed breakdown of this project, and of course a "cost to build" bid.
Describe their project management style, including communication tools and timelines.
Shaun was very consultative and asked a lot of questions before laying out expectations such as Sembit's bid to complete this task and the timeline on deliverables.
What did you find most impressive or unique about this company?
We appreciated Shaun's professionalism and how easy it was to communicate with him, especially after having to listen to the other agencies we talked to tell us how great they were while asking us very few questions.
Are there any areas for improvement or something they could have done differently?
We really can't think of any!
RATINGS
-
Quality
5.0Service & Deliverables
-
Schedule
5.0On time / deadlines
-
Cost
5.0Value / within estimates
-
Willing to Refer
5.0NPS