Intro to FanAI Engineering

Karim Varela
FanAI Engineering
Published in
6 min readJan 15, 2020

I’m excited to introduce you to FanAI and the challenges we face as an engineering organization! For those of you who aren’t familiar with what we do, we are a sponsorship performance analytics platform.

What is a sponsorship performance analytics platform?

Essentially we analyze the fans (audience) of (e)sports teams to answer the following core questions:

  1. As a brand, which team should I sponsor?
  2. As a team, which brands should I pitch?
  3. How effective was the sponsorship?

As CTO, it’s my job to ensure that we build a scalable, robust, secure, and performant platform that our clients can use to do this analysis. We deal with terabytes of data every day from multiple data sources like Twitter, Twitch, and a myriad of financial and demographic data providers as well. To make things more complex, we also ingest PII (personally identifiable information) from our clients so we have strict security and data privacy measures we must adhere to.

The Tech Team

We currently have 3 teams in our technology department:

Backend

The backend team is primarily responsible for building ETL (extract-transform-load) pipelines to get data from multiple sources and building RESTful APIs (web services) for our frontend and data teams to consume. They are also responsible for the operations, stability, and performance of our platform.

Tools: GCP (Google Cloud Platform), Python, Kubernetes, Docker, Cloud Functions, BigQuery, Postgres/CloudSQL, Redis/MemoryStore, ArangoDB, Cloud Storage

Frontend

The frontend team is primarily responsible for building our client-facing web application. They are also responsible for maintaining our marketing WordPress site. At some point, we will combine them. :)

Tools: React.js, Typescript, Webpack, Firebase, Firestore, Cypress, Jest, Enzyme, Docker, HighCharts

Data (Science)

The data team is primarily responsible for doing greenfield analysis to support new clients or new use cases. They are also responsible for creating automated analysis tools for our client services team to use and are also responsible for evaluating and selecting new data sources.

Tools: Python, Docker, Jupyter Notebooks, BigQuery, Cloud Storage

Current job openings

Workflow

In the future, we will showcase technology each of these teams have built, but for now just know that these teams work in conjunction to productionize analysis that typically originates in our client services and data teams and is done on a one off basis. When any particular analysis becomes widely requested, the backend team ensures we have robust ETL pipelines built around that data source and builds a set of APIs for both the frontend team and the data science team to consume. The frontend team consumes those APIs and builds beautiful data visualizations for our clients in the platform.

Engineering Philosophy

Engineering at FanAI is fast-paced and complex. We are still a small startup, but we have big hairy audacious goals and we deal with a ton of sensitive data. We want to move as fast as possible, but we have to temper that at times with the need for accuracy in the analysis we do and also for security in protecting our clients’ (and their fans’) data.

We try to ruthlessly prioritize working on the things that are going to have the most impact to our business and provide the most value to our clients. Our miracle is demonstrating that we can show an uplift in real-world spend at a brand as a result of that brand sponsoring an (e)sports team. We are dedicated in our mission to prove out our miracle and ensure sponsorships remain a viable marketing avenue for big brands.

In general, our engineering philosophy centers around a few core ideals:

1. Focus on the User

Everything we do should in some way be adding value to the user. If not, we should question why we’re doing it and if we should be doing something else. We strive to put ourselves in the user’s shoes and imagine what type of product we’d like to use and what types of analysis we’d like to see. We strive to get feedback early from our users and really understand the business. And we work to identify what users really need, not necessarily what they ask for.

Practices

  1. We keep open lines of communication with client services and sales to ensure user feedback is getting to the tech team.
  2. We dog-food our product. Everybody tests the frontend. We ensure we build APIs that both frontend and data teams can use.
  3. We measure all user actions and sessions with our analytics platform (Google Analytics).
  4. We write user stories and plan our work from the user’s perspective. We justify, scrutinize, and simply our implementations accordingly.
  5. We write tests from the user’s perspective.
  6. We give demos of our product to the entire company.

2. Keep it Simple

We want to eliminate friction and focus on building cool and useful things. We don’t want to focus on automatable or mundane tasks. We identify what are the MVP (minimum viable product) of features we are building and iterate on them to deliver incremental value.

Practices

  1. We prefer to use a more stable, more performant managed service / DB when given a choice between a managed service and an unmanaged service, even if the managed service might be more expensive.
  2. We follow common engineering conventions to reduce confusion.
  3. We use and explore existing tools and proven libraries before building our own. We only create abstractions in code when necessary (not just because it’s cool and nerdy).
  4. We practice DRY (Don’t repeat yourself) principles.
  5. We wait to identify bottlenecks in our system until we see actual usage and can measure the effects of optimizations.
  6. We focus our code reviews on substance (not formatting — that’s the linter’s job).

3. Keep Learning & Growing

We believe that learning and growing is an investment into our future and the future of our engineering organization. We’re not afraid to question existing practices and paradigms. And we value learning and growing, not just technically, but as professionals and people as well.

Practices

  1. When we feel stuck or are stalling, we proactively seek help and knowledge.
  2. We continually educate ourselves by taking classes and reading books.
  3. We take on challenging projects and eagerly step outside of our comfort zone.
  4. We use our education budget ($1k / year).
  5. We actively teach others and share what we’ve learned as a means to increase our own understanding.
  6. We stay on top of industry news and trends.

4. Be Agile

Our north star is proving our miracle of spend attribution for sponsorships, but the road to get there is full of twists and turns. We want to be flexible and adaptable in our practices to ensure that changing requirements and business needs are taken in stride. We practice agile, but believe that agile itself is an agile process, and will continue tweaking the process to continuously improve.

Practices

  1. We break down tasks to digestible, functional pieces.
  2. We produce reviewable code daily.
  3. We deliver incremental value and continuous improvement.
  4. We keep others informed about our work. We communicate early and often.
  5. We practice retrospectives, and take action from them.
  6. We meet sprint commitments.

5. Be Humble

We are humbled by the journey ahead of us and feel blessed that we are the warriors on this journey. We recognize that each one of us brings a unique perspective and aren’t ashamed to lean on each other for help to support our greater mission. We remember that we are all human, and we get to know each other as people. And we check our egos at the door.

Practices

  1. We have strong opinions held loosely, and we seek out contrarian opinions.
  2. We don’t waste time going down rabbit holes alone; we ask for help early when we need it.
  3. We proactively offer assistance to each other.
  4. We embrace constructive criticism with a growth mindset.
  5. We don’t take code reviews personally.
  6. We celebrate wins and laud others’ achievements

Company Culture

We have a dynamic, fast-growing, fun, and professional culture. As a company, we do complex work, so everybody that works at FanAI is smart and analytical. We hire some of the best developers, data scientists, and analysts in the world, and we let them work on difficult problems that no other company has solved before.

We have a culture of learning that’s reinforced through pair programming, mentorship, lunch n’ learns, and an educational stipend for all employees.

We are also a dedicated group of gamers, (e)sports fanatics, and nerds, and as cliche as it is, we work hard and play hard together. From sprintly game nights to happy hours to company off-sites, we’re a tight-knit group of people all working towards a common goal and having fun on the journey.

Current job openings

--

--