How We Built XP Fantasy

Arjun Bhushan
XP Corp
Published in
3 min readFeb 15, 2021

What is XP Fantasy

XP Fantasy is a daily fantasy esports website. To understand exactly what that means, read the article my co-founder, Justin Wong, put together.

Today I’ll be sharing what we’ve built so far and introducing features that will be landing within the next couple months.

Who I am

My name is Arjun Bhushan (a.k.a Abfusion) and I am the CTO and co-founder of XP Fantasy. What that means in our small team is that I manage all of the infrastructure, frontend and backend development.

I am currently a third year student in the Software Engineering program at the University of Waterloo. I have experience working in your classic Bay Area startup, Apple 🍎 and Citadel 📈. Fun fact, if you are using an iPhone, you are running code that I’ve written for iOS 14!

What I Have Built 🔨

Fantasy websites, regardless of the underlying sport, provide a means for users to create a roster of professional players from the NBA, NFL, and now in esports! Rosters will be scored based on each individual player’s in-game performance with prizes awarded to the highest performing teams.

To develop our current system, the first step was to obtain data on the various leagues, upcoming matches, players and player statistics. One way of accumulating all of this data would be looking at all the upcoming matches for each individual league, which entails analyzing hundreds of players and matchups per week. So, unless I wanted to spend all my Sunday afternoons searching up every single player’s performances, I did what every good developer would do and paid for a solution instead. After integrating with PandaScore — an esports data provider — all of the data we need is now ingested and cleaned for us, we’re able to pull all of the required data and create contests on the fly. Phew.

The second part of the main product is to score each player’s in-game performance on a select number of player statistics — ie. kills, deaths, assists, creep score, barons, minions. Another engineer on the team, Shun, wrote all about scoring systems in this blog.

After both those pieces of the product were put together, the main product had been built.

Now came the fun part, groups and user personalization.

Although creating a roster and crushing random users’ rosters is quite enjoyable, it is even more fun to crush your friends’ rosters.

Therefore, we wanted our next group of features to be focused on grouping users together so that they could directly compete against people they knew personally, making their victory that much sweeter. We integrated an “Add Friends” system and, since we are currently testing our product with university students, we created a “Groups” feature that enabled users to compare their stats and performances against their fellow classmates.

Lastly, my favourite feature to date has been personalization. Personalization gives users the ability to upload their own profile pictures and pick from a range of custom badges to be displayed for everyone to see. This has definitely been my favourite profile picture to date —

Why YES, that IS a cat riding a unicorn on a rainbow. Gotta love our community.

Product Roadmap 🗓

The fun doesn’t stop here for the XP Fantasy engineering team!

After numerous user interviews and suggestions in our #suggestion channel on our discord page, the team has decided on the three most important features that we will be tackling in the coming months:

  1. Live Scoring

Reduces user wait time to receive roster performance results since scores are updated in real time

2. Mobile App for iOS/Android

Helps users track their rosters and stats while they’re on the go.

3. Browser Extension

To provide people the flexibility of watching the games on their preferred platform (Twitch, YouTube, etc.), while still keeping track of their live performances.

If you’re interested in learning more, check us out at xpfantasy.com/ and join our discord community to see what we’re up to!

“Strive for continuous improvement, instead of perfection.”

--

--