Foundations
Apprenticeship under the Principal. Install flows, full-screen, airplane mode, plus the MSI co-brand build. Sprint cadence on the unglamorous middle, on top of a 500M+ install base.
From Cloud Era onward: BSX, Console Mode, Game Browser, Payments SDK, Ads, Weapon-Switch proto, Moments, Mobile, and the design seed that became 6labs.
Principal Designer + 1 designer early — solo from 2022. Then PMs, Eng leads, and SDK team across 10 surfaces over 4 years.
Tenure across two role tiers
2021 → 2025. Promoted to Senior in March 2024.
App Player users, 200+ countries
The install base every shipped surface had to live inside.
Surfaces shipped or shaped
Across desktop, cloud, TV, mobile, web, and SDK — listed below.
Joined as the second designer in 2021. From the Cloud Era onward (2022 →), the surface load shifted to me solo — BSX, Console Mode, the dual-theme Payments SDK, the Moments capture-and-share canvas (which became the foundation of 6labs), and eventually the BlueStacks Mobile app. Promoted to Senior in 2024. The tenure's shape: apprenticeship → cloud systems → revenue surfaces → mobile.
Apprenticeship under the Principal. Install flows, full-screen, airplane mode, plus the MSI co-brand build. Sprint cadence on the unglamorous middle, on top of a 500M+ install base.
Solo from here. BlueStacks X (Windows app store + design system), Console Mode (TV + native controller), plus one unshipped surface — Game Browser — whose pattern landed elsewhere later.
One Payments SDK with a dual-theme system shipped to two products (BlueStacks + now.gg). Six ad placements that monetised without feeling monetised. Plus the Weapon Switch interactive prototype — pure craft.
Moments — a 60-second capture-and-share canvas that quietly became the seed of 6labs. Then the solo-built BlueStacks Mobile app + partner-facing now SDK, post-promotion.
A product shipping to 500M people doesn't let a new designer learn on it. Foundations was the apprenticeship — you earn the right to touch load-bearing surfaces by getting the small ones right first. Year one under the Principal, learning the install funnel and the user base before changing anything that could break them.
The work itself was sprint cadence: PM tickets, data-driven micro-fixes, install-flow optimisation, full-screen mode, airplane mode. None of it portfolio-shaped on its own. All of it the muscle that made the solo Cloud Era run possible.
The era's most visible deliverable was the MSI co-brand build — App Player skinned and bundled for every MSI gaming PC, executing on a partnership that already had MSI as an investor. Lower glamour than “design closed the deal,” higher leverage than any single feature — every new MSI machine shipped with the App Player our team built.

The AppPlayer 5 → 5.5 inflection — a million-DAU jump in 18 months — meant we couldn't keep shipping with screen-by-screen mocks. The system became the bottleneck. Cloud Era was the answer: BSX, its design system, and three surface bets that all had to share primitives.
Mobile gaming was booming, and the cloud tech we'd already built made those games playable on any device — desktop, browser, TV. The App Player already had hundreds of millions of mobile-game users. BSX gave them the single front door to the combined catalogue: every mobile title running on App Player and every cloud title streaming via now.gg, in one Windows store. Browse, discovery, launch — and a design system built from scratch to hold the surface together as it scaled to TV and controller next.
“One store, two ways to play — App Player on desktop, now.gg cloud on any device. BSX was the front and the system holding it together.”



With the cloud tech we'd built, BlueStacks could run on any device — and the next obvious market was the living room. TV-native gamers don't have a PC, but they have a controller and a screen. Console Mode was the BSX catalogue redesigned for 10-foot viewing and a controller-first interaction model. Designed end-to-end in Figma — controller mapping, HUD overlays, focus states, the works.


An in-product discovery surface inside the App Player. Prototyped, never shipped — the user signal was real, but the feed-based discovery pattern that captured it ended up being Moments. The Game Browser surface died; the bet underneath it survived in a different room.
Takeaway: Bet on the pattern, not the surface.

Cloud-bandwidth costs caught up with us, and the era's job shifted from catalogue to revenue. Payments first — flows that had to convert on first attempt across two products with very different brands. Ads second — six placements that had to make money without breaking trust. Plus one craft side-quest that shipped the same day Figma did.
BlueStacks AppPlayer (gamer-utility, deep blue) and now.gg (cloud-streaming, vivid pink) had to share an SDK because finance + compliance ruled out parallel codebases. The risk: if the flow felt borrowed in either product, users would notice the seam and conversion would crater on the first failed transaction. I proposed a dual-theme system — identical IA, identical micro-copy, identical fail/success states; theme tokens swap at the entry point. The SDK ships once; each product feels like its own.
“One payments flow, two product themes — the user doesn't notice. That's the whole job.”




Ad surfaces threaded through the user journey — CPI ads on boot, an Ads Panel on home, video ads, fullscreen pre-rolls on game launch. The brief was monetisation; the constraint was retention. Every placement was an explicit trade between revenue per session and the probability the user closes the app and doesn't come back. The work was less about visuals and more about which six of the twenty possible slots the product could afford to use.



A working interactive prototype of weapon-switching with scroll input — variables, scroll counters, conditional sets, no code. Built and shipped on the same day Figma launched Conditional Prototyping at Config 2023. Pure craft, no business case, in the case study because it's still my favourite Figma file.


Acquiring players through paid channels was getting expensive. NVIDIA Highlights had quietly proven the alternate route — a 60-second clip of your best play, sharing one keystroke away, creators pulling the next cohort in for free. App Player already recorded video; the capability existed, the experiment was whether the behaviour would. Moments was that test — capture mode (CTRL + M), a gallery, an in-browser editor sized for vertical export, and a public share page on now.gg/play. Not a researched user pain — a stakeholder bet on a validated external playbook, run on what we already had.
“60 seconds, one shortcut, one shareable link — borrowed from NVIDIA, run on what App Player already had.”





What it gathered. The clip-capture, gallery, and share-page surfaces produced something more interesting than the engagement numbers — a dataset on what gamers actually wanted to capture, edit, and share, plus the behavioural model behind it. That dataset became the backbone of 6labs — the analytics-grade gameplay-capture product spun up in 2024 for game studios. Moments was the experiment; 6labs is what the data justified building.
Three years of cloud and SDK work had produced a real Android catalogue. The bet for the mobile app: meet players on the device they already had in their pocket, and let them carry their App Player progress with them when they walked away from the desk. Two value props, one app — continue your game on mobile and discover your next game on mobile. Designed solo end-to-end across three iteration cuts, each testing a different premise.
“Cross-device progress, on-the-go play — solo design across three iteration cuts.”

Iteration 1 — Alpha. The bridge. Prove the cross-device promise. A list of your downloaded App Player games, a download button, shared save state with the desktop. No store, no rewards, no discovery — just: does the bridge between desktop and mobile actually work, and do players use it? It did, and they did.
Iteration 2 — First public release. The store. Become a real store. Personalised feed, rewards, deals, new-game discovery, favourites — plus the full Android branding system and every asset the platform demanded (store listings, splash, notifications, system icons, the full kit). The first cut where mobile was a destination, not a companion.


Iteration 3 — PlayPal + App Player linkage. The monetised loop and the live bridge. Two adds in one cut. PlayPal — the gamification program that pays players real cash for completing tasks, with the loop designed to drive in-app purchases — built to lift ROAS for the mobile app. Alongside it, an App Player notification feature: pair a desktop App Player instance to the mobile app and get real-time pings from your games on the phone — time to collect resources in your farming game, or your shield is about to drop in your base-builder. Together they pulled the app from "store" into "live extension of your desktop play, with a payout layer." The full design of PlayPal is its own story — covered in the Gamification case study.

Total installs
Across the three iterations from alpha through PlayPal launch.
Daily installs at steady-state
After PlayPal launched and the monetised loop started lifting ROAS.
Daily IAP spend on Mobile
Steady-state daily IAP volume on the BlueStacks Mobile app.
Four years at BlueStacks looked like ten different jobs stacked together. The first year was install flows and full-screen toggles — the kind of work no one frames on a wall. By year two, I was designing the BSX app, its design system, and three new surface bets simultaneously. By year four, I was designing an Android app end-to-end and watching the data behind a feature I'd shipped (Moments) become the foundation for what would become 6labs.
The lesson nobody told me on day one: tenure isn't a line, it's a layered cake. You ship sprint tickets until you stop noticing them, then one day you've designed for 500 million people across desktop, cloud, TV, mobile, and the web — and the work itself is the only thing that compounds.
The dual-theme requirement on the Payments SDK was the best constraint I ever proposed for myself — if it works in two products at once, it works. One spec, two brands, every decision tested twice before it shipped.
The Weapon Switch proto I built on the day Figma launched Conditional Prototyping is still, embarrassingly, my favourite Figma file. No business case, pure craft — and it taught me more about variables and conditional sets than any sprint ticket would.
Moments shouldn't have been a side project. We knew. The data behind it seeded 6labs — the analytics-grade product that justified spinning up a new company surface in 2024. The clip-and-share experiment was load-bearing the whole time.
A year of sprint tickets compounds into expertise but disappears from your portfolio. Install flows, full-screen toggles, every quiet polish pass — capture it as it happens. The case study is harder to write retroactively than to keep up.
Moments-as-a-product was visible from year three. The data showing what creators actually shared, edited and watched was already telling the story — I should have made the case for spinning it out a year earlier than we did. The cost of delay was a year of slower learning loops.
BSX shipped across three surfaces — desktop, TV, controller — because the design system held. That's leverage, not luck. I treated the DS as infrastructure-for-myself; should have framed and pitched it as company infrastructure earlier so it earned its own roadmap rather than living inside the BSX one.