Roadmap · Build products
Choosing the right database
Opens with creditsFor students and developers building apps who keep hearing about SQL, NoSQL, Redis, vector databases and warehouses and want to know which one their project actually needs. By the end you can describe your data, pick a sensible database for each job, try every major type with a small hands-on task and explain your choice in plain words.
By the end, you will be able to
- Describe any app's data by its shape, how it is read and written, and how correct it must be, before naming a product
- Explain why a relational database such as PostgreSQL is the usual default, and use its JSON columns when part of the data is flexible
- Say when a document store, a key-value store or a cache is the better fit, and the trade-off you accept with each
- Add search and vector similarity to an app, starting inside PostgreSQL and knowing when a dedicated engine is worth it
- Tell OLTP from OLAP and know when reports belong in a columnar warehouse, and where graphs, time series and files fit
- Choose between managed and self-hosted options across AWS, Azure and Google Cloud, learn on free tiers and justify the choice with a short checklist
The path
9 stages, in the order to learn them. Open one to start.
1Start from the data, not the productBefore picking a database, describe the data: its shape, how it is read and written, how correct it must be and how much there will be. These answers choose the database for you.6 topics · ~1 week
- 1Structured, semi-structured and unstructured dataData comes in three broad shapes.
- 2Access patterns: the questions your app asksAn access pattern is a question your app asks its data again and again: "get this user by email", "list the last 20 orders for this shop", "search products by…
- 3Reads, writes and how much dataNext, estimate the mix.
- 4How correct must the data be, and how fastSome data must never be wrong, even for a moment: a wallet balance, seats left on a bus, stock in a shop.
- 5The questions to ask before naming a productPut the last few topics together into a short list you answer for every project.
- 6SQL versus NoSQL, without the mythsNoSQL is not one thing.
6 in this stageOpen this stage2Relational databases: the sensible defaultPostgreSQL and MySQL store related records in tables with keys, constraints and transactions. For most apps one of them is the right first choice, and JSON columns cover the parts that do not fit a fixed shape.6 topics · ~2 weeks
- 1What a relational database gives youA relational database stores data in tables of rows and columns and links tables with keys: an order row holds
customer_id42 rather than a copy of the… - 2Why PostgreSQL is usually the right defaultFor a new app with users, records and relationships, PostgreSQL is the safest first choice for most teams in 2026.
- 3MySQL, SQLite and SQL Server: when they fitPostgreSQL is not the only good relational database.
- 4JSON columns for the flexible partsMany apps have mostly fixed data plus a flexible corner: product attributes that differ by category, user settings, raw webhook payloads.
- 5Talking to it from code: drivers, ORMs and migrationsYour app talks to the database through a driver, the library that sends queries, or an ORM (object-relational mapper), such as Prisma, Django ORM, Entity…
- 6Hands-on: a small relational schema with a JSON columnMake it real.
6 in this stageOpen this stage- 1What a relational database gives youA relational database stores data in tables of rows and columns and links tables with keys: an order row holds
- Document databases: MongoDB and FirestoreDocument databases store each record as a JSON-like document, often with related data nested inside. They suit data that varies in shape and is read one whole record at a time.6 topics · ~2 weeksOpens with credits
- Key-value stores and cachingKey-value stores fetch a value by its key, extremely fast. Learn Redis as a cache and for sessions, rate limits and queues, DynamoDB as a primary key-value database, and when a cache is the wrong place for data.6 topics · ~2 weeksOpens with credits
- Search: from Postgres full-text to search enginesA search box needs more than LIKE. Learn how inverted indexes and relevance ranking work, start with PostgreSQL full-text search, and know when Elasticsearch, OpenSearch, Meilisearch or Typesense are worth running.6 topics · ~2 weeksOpens with credits
- Vector databases for AI featuresEmbeddings turn text and images into vectors, and vector search finds the nearest ones. Learn what that means, when pgvector inside PostgreSQL is enough, and when Qdrant, Pinecone, Chroma, Weaviate or Milvus make sense.7 topics · ~2 weeksOpens with credits
- Columnar databases and warehousesReports over millions of rows need a different kind of database. Learn OLTP versus OLAP, why columnar storage is fast for analytics, and where BigQuery, Snowflake, Redshift, ClickHouse and DuckDB fit.6 topics · ~2 weeksOpens with credits
- Graph, time-series and object storageThree specialised homes for data: graph databases for questions about connections, time-series databases for readings over time, and object storage for files. Know when each earns its place and when Postgres already covers it.6 topics · ~2 weeksOpens with credits
- Choosing, combining and running itPut it together: managed versus self-hosted, the matching services on AWS, Azure and Google Cloud, free tiers to learn on, what drives cost, why one Postgres is often enough, a decision checklist, and Firebase versus Supabase.7 topics · ~1 weekOpens with credits
7 more stages, 44 more topics, free with an account.
You have seen the open stages of the Choosing the right database roadmap. Every topic it covers is listed above, and an account opens the rest: what each topic means, a question to check yourself, the courses, the practice and Tauseef's advice for every stage. Early access is open: sign up and your account is active shortly after.
Everything here is free to learn from. A few things, like adding a roadmap, keeping a cheat sheet or asking Tauseef a question, use credits. You get 15 when you join, your first roadmap is free, and if you are learning seriously and run out, you can ask for more. Credits only make sure the platform goes to people who are actually learning.
Build a project
A finished project proves more than a certificate.
- Start with this onebeginner1 semester · 2 studentsOne App, Three Databases: Benchmarking PostgreSQL, MongoDB and SQLite on a Real School Workload
The whole roadmap in one build: the same app on three databases, compared on correctness, speed, schema changes and cost
- TypeScript or Python
- PostgreSQL
- MongoDB
- SQLite
- k6 for load tests
- intermediate1 semester · 2 studentsMulti-Vendor Product Catalogue with Faceted Search on MongoDB
Varied product attributes and faceted search: compare documents, JSON columns and a search engine on one dataset
- MongoDB (Atlas free cluster or local)
- Node.js with the MongoDB driver
- Next.js or React
- mongosh and Compass
- k6 or autocannon for load tests
- intermediate1 semester · 2 to 3 studentsIoT Sensor Readings Store with Bucketed Time Series in MongoDB
Time-series storage with retention and roll-ups; try the same readings on TimescaleDB to compare
- ESP32 with DHT22 or DS18B20 sensors
- MQTT (Mosquitto)
- Node.js or Python ingestion service
- MongoDB time series collections
- React or Next.js dashboard
- intermediate1 semester · 2 studentsUrdu and Bangla Embedding Models and Vector Databases: A Retrieval Benchmark
Tests the vector stage properly: embedding models and vector databases compared on recall, latency and filtered search
- Python
- Sentence Transformers
- pgvector
- Qdrant
- Chroma
Related on Sefism
Picked from the other libraries by shared topics.
Best practices
See all- PostgreSQL Best PracticesDesign, index, query and run PostgreSQL well: data types, constraints, EXPLAIN, zero-downtime migrations, pooling, transactions, backups and roles.
- MongoDB Best PracticesModel, index, query and run MongoDB well: access-pattern schemas, validation, the ESR rule, aggregation limits, write concern, transactions, drivers and security.
- Data Pipeline Best PracticesHow to build data pipelines you can re-run, test and trust: idempotent tasks, orchestrator hygiene, layered transformations, data tests, freshness, ownership and monitoring.
Checklists
See allProject structures
See all- NestJS project structureFor people who want a structured TypeScript backend with clear rules about where code goes. Every feature is a Nest module that owns its controller, service, DTOs, entities and tests, so the app grows by adding folders, not by stretching old ones. The tree follows one orders API from nest new to a codebase a whole team can run for years.
- FastAPI project structureA typed Python API for an orders app, built the way the FastAPI docs and the official full stack template lay it out: one
apppackage, a router per feature, Pydantic schemas at the edges, services in the middle and SQLAlchemy models with Alembic migrations underneath. For students who have finished the FastAPI tutorial and want to know where the second, tenth and fiftieth file go. - Django project structureFor students building their first serious Python web app or API with Django, and for the team that keeps it running years later. The project is a thin "config" package plus one Django app per business area (accounts, catalog, orders, core), each owning its models, services, views, API, migrations and tests. Settings come from validated environment variables, and the tree grows from the tutorial layout to CI, containers, observability and enforced module boundaries.
Career questions
See all- Should I use PostgreSQL or MongoDB for my project?For most student and startup projects, PostgreSQL is the safer default: relational data, joins, constraints and transactions fit most apps, and it handles JSON and vector search too. MongoDB is a good fit when your data is naturally document-shaped and varies a lot, or your team already knows it well. Model your data first, then choose.
- Should I use Firebase or Supabase for my app?Both let you ship an app fast with auth, a database, storage and hosting-style services. Supabase is built on PostgreSQL, so it suits relational data and SQL skills you will reuse anywhere. Firebase is a mature Google platform with a document database and strong mobile tooling. Choose by your data shape, your platform, and how much you want to learn transferable database skills.
- Do I need a vector database for my AI project?Often not. For a student project or a small app, a vector extension on a database you already use (such as pgvector in PostgreSQL), or even an in-memory index, is enough. A dedicated vector database earns its place with very large collections, heavy query traffic, or features like advanced filtering and multi-tenancy at scale.
Cheat sheets
See allStuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
- 1:1 Mentorship
- Fresh Graduate Mentorship
- Career Guidance
Brand deals, promos and partnerships: tauseeffayyaz@gmail.com