Tuning a reward economy with real player data
Launch numbers are a guess. What matters is being able to change them without a release, and knowing which number to move.
What we learned shipping our own products and clients’ — engineering decisions, testing, and how we work. Plus the archive from our consumer apps.
Launch numbers are a guess. What matters is being able to change them without a release, and knowing which number to move.
After an incident you will wish you had three specific things. All of them take an afternoon to add beforehand and are painful to add during.
A pipeline that reports failures nobody blocks on is theatre. What we make mandatory, and what we deliberately let through.
The invoice is a design document nobody meant to write. Reading ours line by line changed decisions we thought were settled.
The pattern is always the same: expand, migrate, contract. Where teams get hurt is doing all three in one deploy.
A permission prompt is a one-shot resource. What we learned about when to ask, what to send, and how quickly goodwill runs out.
0.1 + 0.2 does not equal 0.3, and your payout ledger will eventually notice. How we represent money and why rounding is a product decision.
Everyone agrees apps should work on a bad connection. Far fewer have decided what happens when two devices disagree about the truth.
Every package is code you did not write, will not read, and now maintain. Five questions we ask before typing install.