Lead Developer @MonkeyTiltPlay Keen interest in large scale distributed systems, data intensive systems and low level programming.

Malta
Huge effort and just getting started
Welcome to Monkey Tilt: An adult playground FOR degens, BY degens. 🎁 We've raised $21m from @Polychain, @PokerGo, @hack_vc, @Accomplices, @Papervc, @FoliusVentures, and others to build a unique experience where every bet is celebrated and every member is rewarded. Here’s how you can join the Tilt Club 👇
2
9
783
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 writing a longer thread on this soon), infrastructure hosting, incremental re-computation and more. The guys who can do this well are studs
3
1
5
3,198
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 for different things)
3
1,748
We're gonna Make Points Fun Again @monkeytilt
The Monkey Tilt leaderboard v1 will be live on our platform on April 29th. And we are tracking ALL bets right now at monkeytilt.com. What is the Monkey Tilt leaderboard? The leaderboard is our way to recognize and reward early users of our platform...
4
1,263
Ryan's been one of our earliest supporters. Super stoked for this
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 MonkeyTilt.com and place one (1) minimum bet. ✅ Follow @monkeytilt and leave a reply below.
4
628
For the largest of my fellow degens, @monkeytilt just pushed our High Limit section to the Casino lobby. Enjoy : monkeytilt.com/en-ca/casino/…
1
4
1,046
Scaling problems 101 : @monkeytilt 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
1
1
4
4,925
We dropped the Leaderboard this week @monkeytilt, 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 🧵
1
3
1,841
@SunWukong_MT claims he's doing QA on our original games, but I think he's just addicted. Peep him "crash"-ing and burning below: monkeytilt.com/casino?bets-s…
1
4
68
No diddy!
Yo to my fans in Mexico, Canada and Brazil. We just launched my new online casino and Sportsbook monkeytilt.com If you like shooting dice, playing blackjack, or betting on me fighting you should check us out! Good try and gamble responsibly. @monkeytilt
1
3
2,692
Big fan of OpenAI building all our childhood fantasies. Now need to build an AI bookie openai.com/index/hello-gpt-4…
1
2
1,074
Hard to get back to coding after that night. What a performance by Ryan, against one of the P4P greats. @monkeytilt sees talent boys!
1
3
1,817
@SunWukong_MT is also bald
the ceo of coinbase is bald the ceo of shopify is bald the (ex) ceo of amazon is bald the ceo of a16z is bald Nfa
2
927
Happy to be along for this ride
I want to start talking about why I founded @monkeytilt . 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 could afford it (and maybe even a little before), I have been a connoisseur of luxury goods and services. More on all of this later.
1
457
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 👇
1
2
354
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 / implementing novel data warehousing techniques. Our metric of success is being able to deploy our in-house ML segmentation models in under 5 minutes and have them feed to our BI team right after. Getting there!
2
285
Pussymonster extending his lead on the @monkeytilt leaderboard, with a surprise entry and meteoric rise from Mattdeuce32
2
2,491
Predictable1 with a MASSIVE run @monkeytilt
1
3
2,507
What salary guys?
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. 🧠
2
2
481
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 small incident on Friday , so we've taken the weekend to revamp our build system, CI pipelines and sem-versioning system. Its boring work, but one that pays massive dividends
1
2,140
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
1
1
735
(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. Client side work = close to 0
1
568
The boys are eating tonight!!!!! nitter.app/STONKS_IU/status/17819… @monkeytilt
Only ryan garcia fans are allowed to like this tweet ..!! #HaneyGarcia
1
337
(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 @monkeytilt is doing to keep FE performance up
1
1
995
Super excited for Runes. Thinking of some cool interplays between them and @monkeytilt
2
255
@monkeytilt 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 soon, but this article from Google summarizes a lot of the reasons : cacm.acm.org/research/why-go…
1
103
At @monkeytilt 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
1
2
1,954
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
1
1
517
UFC 300 was not only an amazing card (let's go Holloway and Pereira), it was also @monkeytilt 's highest volume day! Slowly but steadily building this thing
2
161
So true. Resolving to read = dopamine spike, reading = dopamine trough, finishing = dopamine spike. Been trying to double up this way
1
1
238
(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) - Visual stability : is it easy on the eyes (metrics such as CLS)
1
199
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
1
101
You can actually see exactly where this Cache Stampede occurs below. All new requests, finding invalidated cache entries, blast the DB
1
1
657
(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 fonts to the CDN (we use custom fonts, but this is static data) - Lots and lots of bundle profiling. NextJS 14 really doesn't require many external deps - Heavy use of React Suspense : our infra automatically streams these to the browser
1
279
Happy customers!
144
Phenomenal read
📢 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: stanford.io/49CbsZp
1
191
Replying to @senortilt
Major major major haram. This is what I get for staying home and fixing observability issues for our stack
1
60
(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
1
193
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 Thundering Herd
1
123
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
705
Replying to @senortilt
Crazy
28
Can't put into words how much I appreciate @ongardieand Prof. Osterhout for Raft (raft.github.io/raft.pdf) 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 initial thoughts were: (1) wow this is so much easier on the programmer than Paxos and (2) I'll be surprised if a large number of future systems don't eventually migrate their consensus. However, I didn't foresee its use at the microsecond scale. Replacing the RPCs with a compact VLE messaging schema, shared memory and kernel bypass networking actually allowed us to use RAFT even in maintaining in-memory state on exchange grade systems, operating at millions of TPS!
1
165
(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
1
516
(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 provider matters a LOT here. You want one that has many points of presence for both compute and data. We use Cloudflare for both edge compute and CDN data
1
232
Replying to @senortilt
They won't? Shite
24
Bigger downside having to deal with you everyday
1
21
(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 React Components A hacky thing we did early on was place an upper limit on the amount of stuff each React Component could do. Small components are your friends, because the browser can most likely inject higher prio work React Suspense is a godsend here as well, as Next streams HTML to the browser to amortize work
1
251
(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 components on the server (NextJS has everything on server by default) - Recurrent timers run in the background on web workers - NextJS image optimization comes for free
480
Replying to @senortilt
It's been all over the internet bro. You've been too busy supporting customers
184
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
1
1
467
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
1
115
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 platform, and more! Super excited for it
1
1
411