Self-Assessment Quiz: The Modern Data Stack
Twenty questions. Aim for 16 or more. This is the most perishable chapter in the book — the category questions matter more than the product questions.
Question 1
The chapter's main objection to the phrase "modern data stack" is that it:
- A. Is technically inaccurate
- B. Implies a package, implies legacy-versus-modern, and obscures operational cost
- C. Was coined too recently
- D. Excludes streaming architectures
Question 2
The systems-per-engineer heuristic suggests a sustainable ceiling of roughly:
- A. One system per engineer
- B. Two systems per engineer
- C. Five systems per engineer
- D. There is no useful ceiling
Question 3
Which is NOT one of the eight tool categories?
- A. Orchestration
- B. Reverse ETL
- C. Version control
- D. Catalog and governance
Question 4
The pattern most teams converge on for ingestion is:
- A. Buy everything — connectors are never worth building
- B. Build everything — managed tools always cost more
- C. Buy connectors for third-party SaaS sources, build for your own systems
- D. Use a single tool for all sources
Question 5
Managed ingestion tools are typically priced:
- A. Per connector, flat
- B. Per row or monthly active row
- C. Per seat
- D. Per compute-hour
Question 6
Why is Kestrel's clickstream unsuitable for a row-priced ingestion tool?
- A. The events are semi-structured
- B. At 420M rows a month, per-row pricing is out of the question by orders of magnitude
- C. The tool cannot connect to Kafka
- D. The schema changes too often
Question 7
Which category does the chapter identify as most expensive to lack?
- A. Catalog
- B. Reverse ETL
- C. Data quality
- D. BI
Question 8
Which category's absence compounds fastest?
- A. Orchestration
- B. Transformation framework
- C. Ingestion tool
- D. Warehouse
Question 9
The main reason to use a transformation framework rather than plain scripts is:
- A. SQL compilation performance
- B. It forces business logic into version-controlled files with a dependency graph
- C. It reduces warehouse compute cost
- D. It is required for incremental models
Question 10
Where should a small team start with data quality?
- A. A commercial data observability product
- B. Great Expectations
- C. dbt's built-in tests
- D. Custom Python assertions
Question 11
The biggest substitution this book makes is:
- A. MinIO for S3
- B. DuckDB for a cloud warehouse
- C. Local Spark for EMR
- D. Airflow LocalExecutor for CeleryExecutor
Question 12
Which is NOT one of the three ways DuckDB differs from a cloud warehouse?
- A. Single-process with one writer
- B. Storage and compute are not separated
- C. No cost meter
- D. It does not support window functions
Question 13
What is the only line of boto3 code that differs between MinIO and S3?
- A.
aws_access_key_id - B.
region_name - C.
endpoint_url - D.
service_name
Question 14
Why does the compose file set wal_level=logical in Chapter 5?
- A. It improves write performance
- B. It is required for MinIO integration
- C. CDC needs it later, and changing it requires a database restart
- D. It enables point-in-time recovery
Question 15
minio-init waits on condition: service_healthy rather than the default because:
- A. The default waits too long
- B.
depends_onalone waits only for the container to start, not for the service to accept connections - C. MinIO does not support
depends_on - D. It reduces startup time
Question 16
Which is NOT on the chapter's list of things a small team can safely leave out?
- A. A feature store, before models share features
- B. A data mesh, before the central team is a bottleneck
- C. A transformation framework
- D. Kubernetes, unless you already run it
Question 17
Below roughly what conditions does the chapter say you may need no data platform at all?
- A. Under 1 TB and 50 people
- B. Under a few hundred GB and about ten people
- C. Under 10 GB and five people
- D. Any company without streaming requirements
Question 18
In the 🏭 callout, nine months of work by two engineers produced:
- A. A 10× query speedup
- B. A query two seconds slower than a PostgreSQL replica with two indexes added
- C. A platform that failed to launch
- D. A 40% cost reduction
Question 19
Which evaluation criterion does the chapter say is invisible at purchase and decisive later?
- A. Price scaling
- B. Exit cost
- C. 3am debuggability
- D. Maintenance burden
Question 20
"Who else uses it?" should be sharpened to:
- A. Who has the most users
- B. Who uses it at your scale
- C. Which Fortune 500 companies use it
- D. How many GitHub stars it has
Answer Key
1. B — §5.1. The categories are stable; the products are not, and the framing hides the pager rotation.
2. B — §5.1. Roughly two systems per engineer, with genuine coverage on each. It costs you tools that would genuinely help — Kestrel forgoes a catalog on exactly this basis.
3. C — §5.2. Version control is assumed throughout rather than being a data platform category. The eight are ingestion, storage, transformation, orchestration, quality, catalog/governance, BI, and reverse ETL.
4. C — §5.2. A Salesforce connector is worth paying for; an extract from your own PostgreSQL is a hundred lines you fully understand.
5. B — §5.2, §5.3. Which means the bill scales with data volume rather than with value received.
6. B — §5.3, 💸 callout. Per-row pricing has a volume ceiling above which it is simply the wrong product, which is why real platforms have both a bought and a built path.
7. C — §5.3. Without it you find out from a stakeholder.
8. B — §5.3. Business logic scatters into scripts and the scattering accelerates.
9. B — §5.2. Compiling templated SQL is not the hard part; making transformations reviewable, testable git artifacts is.
10. C — §5.2. Uniqueness, not-null, referential integrity, and accepted values cover the large majority of what catches real problems, for nine lines of YAML.
11. B — §5.4, 🧭 Version Note.
12. D — §5.4. DuckDB's SQL is excellent, window functions included; that is why it is the right teaching choice. The three real gaps are concurrency, storage/compute coupling, and cost.
13. C — §5.6. Remove endpoint_url, supply real credentials, and the same code runs against S3.
14. C — §5.6. Better to have the setting in place before there is data you care about.
15. B — §5.6. This is the source of the "works on the second run" class of problem, which is dangerous precisely because it looks like it works.
16. C — §5.5. A transformation framework is one of the two things to have before anything else.
17. B — §5.7. And the three conditions to move are all observable, which is what a good reversal condition looks like.
18. B — §5.7. The mechanism is worth remembering: an architecture reproduced from a previous job without re-deriving whether its premises transferred.
19. B — §5.8. Ask it at purchase, when nobody wants to think about it.
20. B — §5.8. Fortune 500 logos tell you nothing about whether a tool works for four engineers.
Topic map
| Missed | Reread |
|---|---|
| 1, 2 | §5.1 — the term and the operational ceiling |
| 3, 4, 9, 10 | §5.2 — the eight categories |
| 5, 6, 7, 8 | §5.3 — buy, build, or do without |
| 11, 12, 13 | §5.4 — what this book uses and how it leaks |
| 16 | §5.5 — what to leave out |
| 14, 15 | §5.6 — the local stack |
| 17, 18 | §5.7 — when you need none of it |
| 19, 20 | §5.8 — evaluating a tool |