0:00
/

I Built a Free SQL Practice Platform with 103 Interview Questions from FAANG Companies

Master SQL interview questions from Meta, Google, Amazon & more — no sign-up required, runs entirely in your browser

The Problem I Was Trying to Solve

You know the drill. You have a data science or analytics interview coming up, and you need to brush up on SQL. So you head to StrataScratch or LeetCode, only to hit a paywall after 3 questions. Or worse, you need to create yet another account just to write SELECT * FROM users.

I got tired of it. So I built something different.


Introducing: SQLForge

A completely free, browser-based SQL practice platform with 103 real interview questions from companies like:

🔵 Meta — 8 questions

🔴 Google — 8 questions

🟦 Microsoft — 8 questions

🟠 Amazon — 8 questions

🍎 Apple — 7 questions

☁️ Salesforce — 7 questions

🔴 Netflix — 7 questions

Uber — 7 questions

🟢 Spotify — 7 questions

🏠 Airbnb — 7 questions

🔴 DoorDash — 8 questions

...and more

Here’s the kicker: There’s no backend. The entire SQLite database runs in your browser using WebAssembly. Your queries never leave your machine.


What Makes This Different?

✅ Zero Friction

No sign-up. No credit card. No “upgrade to premium for window functions.” You open the URL and you’re writing SQL in 3 seconds.

✅ Real SQL Execution

This isn’t some pattern-matcher that checks if your query looks vaguely correct. It’s an actual SQLite database with 17 tables of realistic sample data:

  • employees (30 rows with a full org hierarchy)

  • customers (25 customers with subscription tiers)

  • orders & order_items (50+ orders with line items)

  • user_sessions, streams, content (engagement data)

  • rides, deliveries, drivers (for Uber/DoorDash questions)

  • listings, bookings (for Airbnb questions)

  • And 6 more...

Write your query. Hit Run. See real results.

✅ Instant Solution Validation

Click Submit and your results get compared against the expected solution. You’ll know immediately:

  • Correct! — Your query returns the right data

  • Wrong number of columns — Expected 3, got 4

  • Data mismatch — Row 2, Column 3: Expected “Engineering”, got “Sales”

No more staring at two outputs trying to spot the difference.

✅ The Topics That Actually Come Up in Interviews

This isn’t a random grab-bag of SQL trivia. The questions focus on what interviewers actually ask:

TopicWhat You’ll PracticeWindow FunctionsROW_NUMBER, RANK, DENSE_RANK, LAG, LEAD, NTILE, PERCENT_RANKCTEsCommon Table Expressions for breaking down complex logicComplex JOINsSelf-joins, multi-table joins, handling NULLsAggregationsGROUP BY, HAVING, conditional aggregates with CASESubqueriesCorrelated and non-correlatedDate ManipulationExtracting months, calculating differences


The UI Details I’m Proud Of

I spent way too much time on the design. Here’s what you get:

🌙 Dark Theme Throughout

Inspired by GitHub’s dark mode. Easy on the eyes for those 3-hour practice sessions.

🏷️ Company Filter Pills

One click to see only Google questions. Or Amazon. Or DoorDash. Filter by the companies you’re interviewing with.

📊 Split-Panel Practice View

Left panel: Problem description, hints, schema reference

Right panel: CodeMirror-powered SQL editor with syntax highlighting + results table

⌨️ Keyboard Shortcuts

Ctrl/Cmd + Enter runs your query. Because clicking buttons is for people who aren’t in a flow state.

🎯 Visual Feedback

Correct answers get a satisfying green checkmark with a “Next Problem” button. Wrong answers show exactly what went wrong.


Sample Question: From Meta

Here’s a real question from the platform:

> Active Users Percentage

> Calculate the percentage of users who logged in during the last 7 days. Show the percentage rounded to 2 decimal places.

> Tables: user_sessions

If you’re stuck, there’s a Show Hint button:

> Hint: Use COUNT with CASE or subqueries to calculate percentages

Still stuck? Show Solution reveals:

SELECT

ROUND(

COUNT(DISTINCT CASE

WHEN session_date >= ‘2024-02-01’

THEN customer_id

END) * 100.0 / COUNT(DISTINCT customer_id), 2

) as active_percentage

FROM user_sessions;


The Playground Mode

Sometimes you just want to explore the data without a specific question. The Playground gives you:

  • Full schema reference in a collapsible sidebar

  • Quick query buttons (SELECT * FROM employees, etc.)

  • The same SQL editor with syntax highlighting

  • Results displayed in a clean table format

Think of it as your SQL sandbox.


Technical Details (For the Curious)

Stack:

  • React 18 + TypeScript

  • Vite for blazing-fast dev server

  • SQL.js (SQLite compiled to WebAssembly)

  • CodeMirror 6 for the editor

  • Zero runtime backend dependencies

How does SQLite run in the browser?

SQL.js takes the entire SQLite C library and compiles it to WebAssembly. When you load the app, it downloads a ~600KB WASM file, initializes an in-memory database, and loads all the sample data. Every query you write runs against this local database — nothing is sent to any server.

Performance?

Queries return in under 100ms, even for complex window functions across 50+ rows. The WebAssembly execution is shockingly fast.


Get Started

The app is live and free. No sign-up required.

Run locally:

git clone [repo]

cd sql-practice-app

npm install

npm run dev


What’s Next?

I’m considering adding:

  • [ ] Progress tracking (localStorage-based, still no accounts)

  • [ ] More questions (150+ is the target)

  • [ ] Timed challenge mode

  • [ ] Question difficulty calibration based on user submissions

  • [ ] Export your solutions as a PDF study guide

Let me know in the comments what features you’d find most useful.


Final Thoughts

SQL interviews shouldn’t require a subscription. Window functions aren’t premium content. And your queries shouldn’t be sent to some server just so you can practice.

103 questions. 14 companies. Zero friction.

Happy querying! 🎉


P.S. — If you’re preparing for a data interview and found this useful, share it with someone else who’s grinding LeetCode right now. They’ll thank you.


🔗 Links

  • GitHub: https://github.com/swagata15/SQL-Forge

Tags: #SQL #DataScience #TechInterviews #FAANG #CodingPractice

Discussion about this video

User's avatar

Ready for more?