Recently, I was tutoring data analysts through Preply when I noticed something weird.
Every single student — regardless of whether they were prepping for an Amazon interview, a Snowflake analyst role, or just trying to level up at work — asked me the same two questions in their first session:
- "Where should I practice SQL?"
- "Do I need to install a database?"
These were not beginners. Many of them were already senior BI analysts making $120-180k. They wrote SQL all day in Snowflake or BigQuery. They had interviews coming up. They just needed a clean, ready-to-go place to rehearse window functions, CTEs, and recursive queries without burning 4 hours on infrastructure.
So I'd walk them through installing Postgres. Or setting up DBeaver. Or loading the Chinook dataset. Every time, the setup alone consumed the entire first tutoring session.
I started thinking: this is absurd. These people earn more per hour than any bootcamp charges. Why is the lowest-friction path to SQL practice still "install a database locally"?
The options that exist today
- LeetCode SQL — limited, feels like 2012
- HackerRank SQL — ditto
- DataLemur — great but paywalled for the meaningful content
- Mode Analytics tutorial — stops after the basics
- Your own local Postgres — free, but the setup tax is real
- Snowflake free trial — 30 days, then you lose your data
None of them felt like "open the browser, click challenge, write SQL, get feedback."
What I built
SQL Quest. Browser-only. 126 SQL challenges spanning Easy → Hard. 5 pre-loaded sample databases (e-commerce, HR, movies, Titanic, customer segments). No setup. No signup to start.
Under the hood:
- SQLite-wasm runs queries client-side — no server round-trip
- Challenges tagged by the companies that ask similar patterns (Amazon, Google, Meta, Stripe, Snowflake, etc.)
- An adaptive coach picks your next challenge based on a 10-skill radar
- Anthropic's Claude powers the in-app AI tutor for hints
Three lessons from the last month
1. Landing pages that over-promise are silent killers
My /amazon-sql-interview/ page had an 82% bounce rate. I opened it in incognito, clicked "Practice Amazon Questions" — and landed in a generic 125-item challenge list with zero Amazon framing. Textbook bait-and-switch, written entirely by accident.
Fixed it by (a) tagging every challenge by which companies ask similar patterns, (b) routing CTAs to pre-filtered views, and (c) adding company-specific scenario copy to the top 15 most-visible challenges across Amazon, Google, and Meta.
If your landing page promises something specific, the app has to deliver it within 5 seconds of the CTA click. No "welcome tour" in between.
2. Mobile is where your trust fixes silently break
54% of traffic is mobile. After shipping the desktop trust fix, I audited the filtered-view flow on an iPhone emulator and found a second bait-and-switch: new mobile users hit a personalization modal that blocked the filtered list, then got dumped into a beginner tutorial on challenge #91 "Your First Query."
So for 54% of traffic, the fix I was so proud of never shipped. I gated the onboarding flow on URL params (?company=X) so landing-page visitors skip it entirely.
The lesson: shipping a mobile-aware fix isn't optional if half your traffic is mobile. Your emulator is not optional either.
3. Scenario copy matters as much as SQL correctness
A question that says "Find customers who placed another order within 7 days" reads generic. The same SQL, framed as "Amazon's Prime retention team defines a repeat buyer as anyone who orders again within 7 days — the strongest early signal they've formed the habit worth nurturing", reads like an actual Amazon interview question.
Same schema. Same SQL. Same difficulty. Massively different trust density.
DataLemur's moat isn't just their question count — it's that every question feels specifically authored for a specific company. That's copy-editing work, not SQL-engineering work. You can replicate it in an afternoon.
What's next
- Expand the warehouse tracks — Snowflake just shipped with 95 compatible challenges; BigQuery and Databricks next
- Add warehouse-specific syntax (QUALIFY, FLATTEN, UNNEST) for senior roles
- Ship a dialect-translation viewer so you can see each challenge's SQLite version side-by-side with the Snowflake/BigQuery equivalent
Live at sqlquest.app. Free to start, Pro is $19/month for unlimited AI tutor and extra challenges.
Would love feedback from Dev.to — especially if you're currently interviewing for a Snowflake, BigQuery, or Databricks role. What's missing? What's broken? What would make you close DBeaver forever?
#buildinpublic #data #beginners #sql
Top comments (0)