Learning Resources

Cloud

AWS (Amazon Web Services)

AWS architecture An AWS resource hub that offers best practices, reference architectures, and design patterns for building scalable, secure, and efficient applications on AWS.

AWS whitepapers Find in-depth technical whitepapers, decisions, and technical guides to help you understand the AWS cloud better.

AWS services overview Get an overview of all AWS services.

AWS blog Helps you keep tabs on AWS updates, tutorials, deep dives and real-world case studies.



Data Engineering

SQL

Practice SQL with DuckDB in your browser using the DuckDB shell.



Upskilling Platforms

Database

ScyllaDB University: Free NoSQL courses from ScyllaDB—Essentials to advanced

CockroachDB University: A free online learning platform offered by Cockroach Labs that provides courses on distributed databases, cloud-native applications, and general-purpose SQL databases. The courses are suitable for developers and database professionals interested in mastering CockroachDB and distributed SQL concepts.

Redis University: Become a Redis expert with free courses from Redis University.


Free courses offered by PlanetScale to help developers and data engineers improve their DB skills

Learn Vitess: This course teaches you everything you need to know to get started with Vitess. You'll learn how it works, how to set up your own sharded and unsharded clusters, and how to run with Kubernetes. Furthermore, you'll learn how PlanetScale uses Vitess to provide you with a highly available, durable, and scalable database for any size organization.

Database scaling: This course covers the concepts to help you architect a truly scalable database. You'll learn to create a database architecture that can scale to meet any level of demand— from small projects to huge enterprise-level systems.

MySQL for developers: This course focuses on how to use MySQL effectively as an application developer and teaches you schema basics, indexing, querying, and beyond.



Insightful Systems Engineering Reads

Database

DuckDB

Memory Management in DuckDB

ScyllaDB

Database internals: working with IO

Database internals: working with CPUs

Database internals: optimizing memory management


Load Balancer

Inside NGINX: How we designed for performance & scale

Nginx architecture



Research Papers

Systems Programming


C++ design patterns for low-latency applications including high-frequency trading

The paper addresses the optimization of latency-critical code in high-frequency trading (HFT) systems.


Databases


Sorting in columnar database systems

The paper explores efficient sorting techniques for analytical database systems. It's a valuable resource for anyone looking to understand sorting optimizations in modern analytical databases and how they improve performance in columnar query processing.


Dynamic programming strikes back: Optimizing join ordering in databases

The research paper introduces DPhyp, an advanced algorithm for optimizing join ordering in database queries using dynamic programming.

Traditional methods like DPccp work well for simple inner joins but struggle with complex join predicates and non-inner joins (e.g., outer joins, antijoins). DPhyp improves query optimization by modeling joins as a hypergraph, allowing for more efficient execution planning.


The Adaptive Radix Tree: ARTful indexing for main-memory databases

The Adaptive Radix Tree (ART) is a high-performance in-memory indexing structure designed for modern database systems. It dynamically adjusts node sizes to optimize space and speed, using a mix of small and large nodes to minimize memory overhead.

Key features include adaptive node structures, path compression, and lazy expansion, making it efficient for lookups, insertions, and range queries. ART is particularly useful for main-memory databases where fast indexing and compact storage are crucial.


Fast serializable multi-version concurrency control for main-memory database systems

The research paper introduces an efficient Multi-Version Concurrency Control (MVCC) approach optimized for main-memory databases. The proposed method updates data in place, storing previous versions as undo log deltas to reduce memory overhead while maintaining high performance.

It also features a fine-grained serializability validation mechanism, ensuring strict transaction correctness with minimal performance impact. This makes it a compelling choice for modern high-speed transactional database systems.


More helpful learning resources will be added soon. Stay tuned! Meanwhile, check out these coding projects.