System Design Arcade — by Hyperfocused Engineer
Effective date: October 2, 2026
Previous versions: August 18, 2026; August 9, 2026; February 28, 2026
System Design Arcade is a mobile app that teaches system design concepts through interactive, arcade-style games. This policy explains what data we collect, why, and how we handle it.
The short version: We collect your email and game progress if you sign in, and we measure how the app is used so we can improve it. We don't sell your data, we don't run ads, and we don't build advertising profiles.
If you play as a Guest:
If you sign in (Google, GitHub, Apple, or email):
We do not collect your location (beyond the country code above), contacts, photos, microphone input, browsing history, or advertising identifiers.
We use PostHog for product analytics, so we can see which parts of the app work and which don't. This applies to both Guest and signed-in users.
What we measure:
If you are signed in, these events are linked to your account and email. If you are a Guest, they are linked only to a random device identifier.
We do not use session recording, screen recording, or heatmaps — these are switched off. We do not use analytics for advertising, and we do not share or sell this data.
Analytics events are retained for 12 months. There is currently no in-app switch to turn usage analytics off — email us if you would like your analytics data deleted.
When the app hits an error, a diagnostic report is sent to PostHog so we can fix it. A report contains the error type (for example TypeError), the error message, and a stack trace showing where in our code it happened. It also carries the same app version, device and session information as our other analytics events, and — if you are signed in — is associated with your account.
Error messages can occasionally contain incidental data such as an account identifier or a file path. We make a best effort to keep personal data out of these reports and are actively improving how they are filtered before they leave your device.
We do not collect crash reports from the operating system itself.
The app has an optional cloud AI Coach. It is switched off unless you turn it on (Settings → AI Coach (cloud)), needs you to be signed in, and is limited to a set number of uses in any 24 hours. When it is on, it is used in two places:
Each time it is used, the following is sent to our AI coaching service — a Cloudflare Worker we operate, which passes the request to Groq (running Meta's Llama models):
What is kept: our Worker does not log or store what you send. To enforce the daily limits it keeps a request count and the time the current 24-hour period started, filed under a code derived from your account id rather than the id itself (pseudonymous: we could work out which account it belongs to), and deletes it a day after your last request. It also keeps a count of all requests from everyone, which is not linked to you, and uses your IP address briefly (about a minute) to limit bursts of requests. We have turned on Groq's Zero Data Retention setting for the coach's requests, so Groq does not retain what the coach sends it or the answers it gives, including for troubleshooting or abuse monitoring, except where the law requires it to. Groq keeps only usage metadata, such as request counts, which contains no questions, designs or answers. See the Groq data policy.
Our usage analytics record that a question was asked, which kind (one from the list, or your own), the challenge type, which coach answered (on the phone or in the cloud), the outcome or an error code if it failed, and, if you tap "Report this answer", that you reported it and which challenge it was about. They never include the question or the answer.
Nothing is sent to this service unless you have switched the AI Coach on. You can turn it off again at any time in Settings.
After a wrong or partly wrong answer, some phones offer a button that rewords the explanation. The rewording is done by a language model that runs on your phone: Apple's on-device model on iPhone (Apple Intelligence), and Google's Gemini Nano on supported Android phones. The model is given the explanation and, for architecture challenges, the app's own notes on what was wrong with your answer (for example a missing part, or a connection drawn the wrong way). That text is not sent to us, to Apple or to Google (on Android, Google learns only how long it was; see below), and the reworded text is not stored.
"Ask the coach" works the same way on those phones. After you answer a challenge you can ask a follow-up question about it, picked from a list or typed. The on-device model is given your question, the challenge, its correct answer and explanation, and the app's notes on your answer if it was wrong. None of it is sent to us, to Apple or to Google (on Android, Google learns only how long it was; see below), and the answer is not stored. On phones without built-in AI, the coach is only available through the optional cloud AI Coach above.
Our usage analytics record that you tapped the button, which kind of model was used, whether the app had notes on your answer to give it, and whether it produced a rewording (or an error code if it failed). For "Ask the coach" they record the kind of question (one from the list, or your own), the challenge type, which kind of model answered, the outcome or an error code if it failed, and — if you tap "Report this answer" — that you reported it and for which challenge. On Android they also record when you start a model download from Settings and whether it finished or failed. They never include any of the text.
On Android, the model is provided through Google's ML Kit, and ML Kit sends Google its own diagnostics and usage statistics. These include your device's manufacturer, model, OS version and build, and its ML hardware; our app's package name and version; identifiers, including a per-installation identifier that Google says is not meant to identify you or your phone; performance figures such as how long a request took; the size of the input and output (how long the text was, never the text itself); the feature version and settings; event types (such as starting the feature or downloading the model); error codes; and the configured language. Google uses this for diagnostics and usage analytics, sends it over HTTPS, and states that it does not pass it to third parties. See the ML Kit data disclosure.
This happens on Android phones that support Gemini Nano even if you never tap the button: the app asks ML Kit whether the model is ready when you open Settings and after you answer a challenge, and ML Kit can report those checks.
If Gemini Nano is not yet on your Android phone, Settings offers to download it. The download only starts when you tap it and confirm, and it comes from Google through the phone's own system service.
System Design Arcade has public leaderboards. If you are signed in and appear on one, the following is publicly visible — including to people who are not signed in:
Your email address is never shown on a leaderboard.
You can remove yourself from public leaderboards at any time: Settings → Privacy → "Show me on leaderboard". You will still appear on the friends leaderboard of people who have added you as a friend. Guests do not appear on any leaderboard.
If you turn on study reminders, the app schedules notifications locally on your device. We do not use a push notification service and we do not collect a push token.
We do not sell your data, share it with data brokers, use it for advertising, or use it to build profiles for any purpose other than improving this app.
We use the following third-party services:
We do not use any advertising networks, ad SDKs, or advertising identifiers.
Account data is retained as long as your account exists.
If you delete your account, your profile, game progress, statistics and event registrations are permanently deleted from our database, and your login is removed. Two things deliberately survive:
Analytics events are retained for 12 months from when they were recorded. The user profile PostHog builds from them persists until you ask us to remove it.
You can:
The data controller is Hyperfocused Engineer, contactable at the address below.
Where the GDPR or UK GDPR applies, we rely on: performance of a contract for authentication and progress sync; legitimate interests for usage analytics and error diagnostics, so we can keep the app working and improve it, and for the on-device "Explain it differently" and "Ask the coach" features, including the diagnostics Google's ML Kit collects on Android so the features can work and be maintained; and your consent for the optional cloud AI Coach, which you can withdraw at any time by switching it off.
Supabase, PostHog, Groq and our AI coaching service are hosted in the United States. Transfers of the data we hold out of the EEA and UK rely on the European Commission's Standard Contractual Clauses. Google handles ML Kit diagnostics under its own terms and may process them outside your country; see the ML Kit data disclosure linked above.
In addition to the controls listed above, you may request access to the personal data we hold about you, a portable copy of it, correction of anything inaccurate, restriction of processing, or object to processing based on legitimate interests. Email us and we will respond within 30 days. You also have the right to complain to your local data protection authority.
For California residents: we do not sell or share your personal information as those terms are defined by the CCPA, and we have not done so in the preceding twelve months. The categories we collect are identifiers (email, account and device identifiers, IP address), internet activity (how you use the app), and approximate location limited to a country code.
System Design Arcade is not directed at children under 13. We do not knowingly collect personal information from children under 13. If you believe a child has provided us with personal data, please contact us and we will delete it.
We may update this policy from time to time. Changes will be posted on this page with an updated effective date. Continued use of the app after changes constitutes acceptance of the updated policy.
Questions or requests? Reach us at:
hyperfocusedengineer@gmail.com