Perfectionism is a controversial trait.
While it is associated with professionalism, drive, and attention to detail, perfectionists are known to suffer from work-related stress, overanalysis, and fatigue, up to the point where many of them want to break free.
In an early-stage startup environment where agility and constant iteration are key, perfectionism can be a real hindrance. The notion of wanting your work to be perfect means spending more effort (and time) than necessary, leading to broken deadlines, late delivery, and delayed learning. When burn rates are involved, moving too slow can be detrimental to a startup’s survival.
As a recovering perfectionist myself (or so I want to believe), I am writing this post to share lessons learned from starting a company in my friend’s living room, raising VC money, and launching a mobile app that amassed half a million downloads (to date). …
This post is the second in a series on data analysis in League of Legends. Read the first one here:
Data analysis is the process of fiddling with recorded observations, in the form of numbers and properties, in order to discover meaningful insights. Since it is heavily based on figures, using unreliable figures may lead to unreliable conclusions. In other words, if some of the features in your dataset are flawed, you’re going to have a problem.
Working with data that somebody else has recorded may mean having to compromise on standards. You can’t always get the data you want. …
For the last couple of years, League of Legends analytics sites like op.gg, champion.gg, and League of Graphs have been consistently seeing tens of millions of visits a month, each averaging a length of 5 minutes (according to SimilarWeb). Why do gamers spend so much time looking at stats and graphs when they could be spending that time playing the actual game?
This post is the first in a series on data analysis in League of Legends and will answer the aforementioned question while introducing League of Legends and its data analysis methodology.
The release of the first iPhone in 2007 caused a major disruption in the mobile phone industry, making for a gold rush that is reminiscent of the wild west and whose effects are still resonating today, 10 years later, across multiple industries.
If you wish to build a globally-recognized mobile application nowadays, you want to have it available for both Android and iOS. You can (and arguably should) launch it on one of the two platforms, but when and if you get traction users will start approaching you asking for the app to be available for their platform. …
At Snipe, we use Redis as a Swiss Army knife. We first deployed Redis as an experiment to deal with growing caching needs but ended up keeping it to do a whole lot of other things. It has become a pillar in our software design and architecture.
Redis is versatile. Arguably the most versatile data store out there (with Elasticsearch being an honorable mention). It is a multi-purpose solution, and it’s also fast.
To demonstrate just how versatile Redis is, I decided to write about three different problems we solved with Redis effectively, where each of them relies on a different, advanced capability of Redis: Lua Scripting, Modules, and Pub/Sub. …
At Snipe, we deal with huge amounts of data. Considering the fact that there are more than 100 million active League of Legends players out there, each making hundreds of decisions within every single game, it should be obvious that in order to isolate the decisions that matter, you need to go through billions that don’t. Adding to the equation the fact that the “meta” of the game shifts on a bi-weekly basis, it’s also easy to grasp that you need to go through this process consistently.
In order to deal with those numbers, we opted to use Apache Spark — a cluster-computing framework that’s great for data processing and analytics at scale. The problem: computer clusters can, naturally, get very expensive. …