I've been seeing posts about front-end devs fearing that AI is going to take their jobs.
Is it just me, or is front-end not as trivial as people make it out to be. Building a performant web app ends up being a systems problem : how to lay out your data flow, SSR vs CSR (will be
I love working with
@vercel
from a DevX standpoint, and it truly does have some of the best support for NextJS as a programming framework...
BUT I think that
@Cloudflare
's infrastructure takes the cake. They're just faster for a globally distribted audience (Note: we use both
The Monkey Tilt leaderboard v1 will be live on our platform on April 29th. And we are tracking ALL bets right now at .
What is the Monkey Tilt leaderboard?
The leaderboard is our way to recognize and reward early users of our platform...
Only winners in our club.
@RyanGarcia
joins the playground as our new Brand Ambassador.
🎁 To celebrate, we are giving away $1,000 to 5x lucky winners who:
🎲 Sign up to and place one (1) minimum bet.
✅ Follow
@MonkeyTiltPlay
and leave a reply below.
Scaling problems 101 :
@MonkeyTiltPlay
is experiencing a large growth in DAUs, and we spent a lot of today dealing with classic issues in database scaling for our backend services
Small 🧵on how we think about scaling
We dropped the Leaderboard this week
@MonkeyTiltPlay
, super proud of the team and could not be more excited. I like to refer to this internally as the "Make Points Fun Again" campaign.
A small 🧵
Yo to my fans in Mexico, Canada and Brazil. We just launched my new online casino and Sportsbook
If you like shooting dice, playing blackjack, or betting on me fighting you should check us out!
Good try and gamble responsibly.
@monkeytiltplay
I want to start talking about why I founded
@MonkeyTiltPlay
. I’ve been a gambler my whole life. I like most trad games (poker, dice, BJ) but I also enjoy risk taking/spec in general via stocks, crypto, venture, RE and collectibles (both phys and dig). Also, for as long as I
Hats off to crypto for breathing life into the hugely slow moving online gaming industry. Operators of crypto casinos have set new standards on product innovation, pace and UI/UX
Have a hunch we're going to see a large influx of talent soon as problems become more compelling 👇
Business Intelligence (BI) is one of those areas that seem like it's just an add on layer to your data warehouse. I think this trivializes one important assumption : the design of your data warehouse.
Over the last few months, as our data has grown, we've been researching /
If you place 1 bet or entry: you're in 🎟️
If you place 2 bets or entries: profits will be deducted from
@SokoDev
's salary to the challenge🎟️🎟️
Just think about it. 🧠
A monorepo creates more problems than it solves if each sub-project tries to be independent in the way its built and versioned. We've worked with monorepos enough to appreciate this, however we thought we could get by with small disjunctions until reaching true scale
However, a
To anyone who has dealt with race conditions / undefined behavior at scale : had a pesky little case with our cookies today that caused non-determinism hell!
Kudos to the team for figuring it out in under 30 mins
(7/9) API calls can be optimized in a bunch of interesting ways. One thing we found success with was matching the API re-computation to the data access pattern. How often do the trending games really change? Every 24h? We just spun up server tasks that push this data onto a CDN.
(1/9) Online casinos are "content heavy / content catalogue" apps (think Netflix, Spotify) with thousands of games, sports and lines. Users expect snappy interactivity, in spite of a high volume of data
A 🧵 on what
@MonkeyTiltPlay
is doing to keep FE performance up
@MonkeyTiltPlay
we chose to structure all our code as a monorepo, despite having many diverse projects : multiple front-ends for our product verticals, various different services in languages ranging from Java, Golang to Terraform and more. I'll be writing a long form on this
At
@MonkeyTiltPlay
we're building everything from microsecond scale systems, RAG infrastructure for domain specific problems to smart contracts and on-chain stuff. Don't know too many opportunities for that kind of breadth
I've seen multiple interesting solutions to this over my career. We're going to try some interesting stuff and I'll write back soon (stay tuned)
Only after we're at the limit of what we can do will we scale up resources + replicas
UFC 300 was not only an amazing card (let's go Holloway and Pereira), it was also
@MonkeyTiltPlay
's highest volume day! Slowly but steadily building this thing
🧠: “Let’s but this (text)book! Nice and now… instead of reading it… let’s buy another one!” 💡
All of the dopamine is generated only at the point of resolving to read something. After that there is no juice left 😅
(2/9) Generally, FE performance is measured on three axes:
- Resource delivery : how quickly are bytes shipped from your server to my browser (metrics such as TTFB, FCP and LCP)
- Browser work : how much work does my browser have to do once bytes are shipped (metrics such as INP)
In the last some days, we've been noticing increasing load on the DB (this was expected, it wouldn't last forever). Rather than scale up immediately, however, we decided to extract as much as we could from the same hardware to make for interesting lessons in systems perf
(5/9) What we did to make X as small as possible:
- Preload / prefetching comes for free with Next, but you can provide hints with tags as well. This amortizes X
- Asset optimization : webp is a modern format we use, but we also played with image sizes + resolutions
- Moved all
📢 The
#AIIndex2024
is now live! This year’s report presents new estimates on AI training costs, a thorough analysis of the responsible AI landscape, and a new chapter about AI's impact on medicine and scientific discovery. Read the full report here:
(3/9) Each of these are fairly intricate tasks in and of themselves, but (as expected) follow a Pareto distribution in the effort required to fix
Will talk about production measurement in a separate thread, but this is a must to make sure changes are actually working
We added a cache middleware for our API requests (caching on the Body, Content-Type and Status) and API caching on our CDN. This reduced our database load by ~50%
Issue with caching under high load is a large num of cache keys tend to expire at the same time, generating a
Quite surprised that there hasn't been more work done in large scale recommender systems for online gaming. Not one product I've used does anything more sophisticated then some broad local profiling + category collaborative filtering / popularity ranking
Can't put into words how much I appreciate
@ongardieand
Prof. Osterhout for Raft ()
My first large-ish project in distributed systems was implementing it ground up in C++ for on-disk state management, exactly how was described in the paper (over RPC). My
(8/9) For visual stability (CLS), properly sizing images and adding Suspense boundaries while they loaded made sure things stayed put. We also tried invisible text during font loading so there were no flashes of old font
(4/9) Resource Delivery is concerned with how quickly you can move X bytes from point A to point B. Intuitively, you can improve this by:
- Making X as small as possible : more on this later
- Making the distance from A to B as small as possible : choice of infrastructure
(6/9) Browser work depends heavily on what kind of interactivity you want to offer.
Browsers do a LOT of work from rendering DOMs, executing your JS code and more. Since JS uses a run to completion model, there's multiple thread starvation opps that come from poorly designed
(9/9) Some other misc points:
- We have a LOT of images in game cards, sports logos and more. Lazy loading all images below the fold once the user started scrolling was helpful
- Server side compute : for data intensive calls such as fetching 100s of games, we keep those
Traditionally, leaderboard points campaigns have heavily incentivized mercenary farming. It not only becomes a chore, but adversely selects the kinds of consumers while creating a subpar experience
We started off with a single DB instance on an 8 core machine (we knew we'd outgrow this quick, but cheapest option to start!). The main writers are backend stream processing services (Kafka msg persistence), and the main readers are API gateways
At Monkey Tilt, that just didn't jibe well. We had to rethink it. So Leaderboard V1 is just the start. Over the next few weeks, me and the devs will be tirelessly working at the game that is points accumulation. Be prepared to see lotteries, bonuses, points utility like no other