📚 Knowledge
an attempt to centralize my studies/links/annotations for reference purposes
At the moment this is not useful for anyone but myself, if at some point I find it usefult I'll make it public.
(click to see the large version)How to use this repo?
The README topics/links are organized following above chart. High-level subjects are usually parent topics, sub-topics are usually specialization of the main subject.
Depending on your level, you can dive deeper into a subject's sub-topics, or just move to the next one.
- Left to write: indicate how generic subjects are
- Top-bottom: Order of importance/relevancy and specialization of each subject or sub-category
e.g.:
Software Engineering
- Databases
- SQL
- Postgres Basics
- Postgres Internal
- How postgres replication works
- Parsing postgres WAL(WriteAheadLog)
- SQL
- Versioning
For instance, take into account the snaptshot above. If you already know how to use SQL Databases, you might want to either:
- Continue to the right, learning more more about Postgres, and to the bottom, its internals, specialized internals like replication and WAL.
- Continue to the bottom/next topic:
Programming Languages.
Tags
Categories to the links
�? - Interesting Link📰 - Article / Paper📕 - Book💻 - Project🎓 - Online Course📼 - Video Presentation / Content🎥 - Slides Presentation- �?�?� - Written/Made by me
�? - My annotations🆓 - Free / No money required💰 - Paid- 💪�?� - Practice
�?� - Person to Follow on Twitter�?�? - Favourite Option (when there are many alternatives)- 👨�?��?🔧- Workshop
References
- Site Reliability Engineering
- Culture
- Introductory
- Deeper Introduction
- Site Reliability Engineering - How Google Runs Production Systems
📕 🆓 - The Site Reliability Workbook - Practical Ways to Implement SRE
📕 🆓 - SRE - Keeping Google up and running 24/7
📼 🆓 - Keys to SRE - Google
📼 🆓 - Who/What? is SRE - Google (Panel)
📼 🆓 - Google Series on SRE - class SRE implements DevOps
- What's the Difference Between DevOps and SRE?
📼 🆓 - SLIs, SLOs, SLAs, oh my!
📼 🆓 - Risk and Error Budgets
📼 🆓 - Toil and Toil Budgets
📼 🆓 - Now SRE Everyone Else with CRE!
📼 🆓 - Managing Risks as a Site Reliability Engineer
📼 🆓 - Actionable Alerting for Site Reliability Engineers
📼 🆓 - Observability of Distributed Systems
📼 🆓 - Incident Management
📼 🆓 - Postmortems and Retrospectives
📼 🆓
- What's the Difference Between DevOps and SRE?
- Site Reliability Engineering - How Google Runs Production Systems
- Use cases
- Site Reliability Engineering - Google - Christof Leng
📼 🆓 - Implementing SLOs for a New Service - Squarespace
📼 🆓 - Shipping Software with an SRE Mindset - Circonous
📼 🆓 - Latency SLOs Done Right - Circonous
📼 🆓 - Site Reliability Engineering at Dropbox - Tammy Buttow
📼 🆓 - 190 Countries and 5 core SREs - Netflix - Jonah Horowitz
📼 🆓
- Site Reliability Engineering - Google - Christof Leng
- People to Follow
- Liz Fong-Jones
�?� - Seth Vargo
�?� - Tammy Buttow
- Liz Fong-Jones
- Monitoring (See later Section)
- Being on Call
- Post-mortem
- Software Engineering
- Version Control
- git
- Programming Languages
- Paradigms
- Functional Programming Languages
- Haskell
- General Overview
- Use cases
- Practice
- The Monad Challenges 💪�?�
🆓
- The Monad Challenges 💪�?�
- Concepts
- Functional Programming
- Lambda Calculus
- Monads
- Haskell
- Systems Programming Languages
- Rust
- The Rust Programming Language
📕 🆓 - Annotations
�? - SubProjects
- Annotations
- General Overview
- Use cases
- Testing Frameworks
- Speculate Adds RSpec like behavior to rust via macros
- Programming Rust
📕 💰
- The Rust Programming Language
- Go
- Concurrency
- Garbage Collector
- Rust
- Programming Topics
- Algorithms and Data Structures
- Udacity - Intro to Data Structures and Algorithms by Google
🆓 🎓 📼 - Coursera - Algorithms - Part 1 - Elementary data structures, sorting, and searching algorithms
🆓 🎓 📼 - Coursera - Algorithms - Part 2 - Graph and string-processing algorithms
🆓 🎓 📼 - Courated List of the 10 best free resources
📰 🆓 - Alternative Data Structures
- “Esoteric Data Structures and Where to Find Them�? - Allan Deutsch
📼 🆓 - 0:36 Slot map
- 10:08 Bloom filters (non-counting)
- 16:46 Navigation meshes
- 20:36 Hash pointer / Block chain / Merkle tree
- Probabilistic Data Structures
- Bloom Filter
- Count-Min-Sketch
- “Esoteric Data Structures and Where to Find Them�? - Allan Deutsch
- Udacity - Intro to Data Structures and Algorithms by Google
- Algorithms and Data Structures
- Databases
- Theory
- Designing Data-Intensive Applications - Martin Kleppmann
📕 💰 - CAP Theorem Revisited
📰 🆓 - The Pathologies of Big Data
📰 🆓 - Scaling
- Replication
- --
- Sharding
- Designing Data-Intensive Applications - Martin Kleppmann
- SQL
- PostgreSQL
- Postgres: Up & Running
📕 💰 �?�? - Learning PostgreSQL 11
📕 💰 - Mastering PostgreSQL 11 - Second Edition
📕 💰 - Understanding Advanced Datatypes in PostgreSQL
📼 🆓 - Updating a 50 terabyte PostgreSQL database
📰 🆓 - How Twitch uses PostgreSQL
📰 🆓 - Handling Growth with Postgres: 5 Tips From Instagram
📰 🆓 - Updating a 50 terabyte PostgreSQL database
📰 🆓 - Sharding & IDs at Instagram
📰 🆓 - Sharding and Scaling PostgreSQL: Principles and Practice Webinar
📼 🆓 - Citus vs. Single-Node Postgres Database | A Side-by-Side Comparison
📼 🆓 - Replication
- Postgres: Up & Running
- MySQL
- Learn to stop using shiny new things and love MySQL
📰 🆓 - Tracking the Money — Scaling Financial Reporting at Airbnb
📰 🆓 - Scaling to 100M: MySQL is a Better NoSQL
📰 🆓 - Unlocking Horizontal Scalability in Our Web Serving Tier
📰 🆓 - Why Uber Engineering Switched from Postgres to MySQL
📰 🆓 - Evaluating MySQL Parallel Replication Part 4, Annex: Under the Hood
📰 🆓 - Mitigating replication lag and reducing read load with freno
📰 🆓 - Black-Box Auditing: Verifying End-to-End Replication Integrity between MySQL and Redshift
📰 🆓 - How We Partitioned Airbnb's Main Database in Two Weeks
📰 🆓 - Sharding Pinterest: How we scaled our MySQL fleet
📰 🆓 - How We Replaced Our Data Pipeline With Zero Downtime
📰 🆓 - Vitess: MySQL Sharding - Square Engineering
📼 🆓
- Learn to stop using shiny new things and love MySQL
- Cassandra
- PostgreSQL
- NoSQL
- KeyValue
- BoJack �?�?�
💻 🆓 - Why you should build your own NoSQL database �?�?�
📰 🆓 - Redis
- Redis Cookbook
📕 💰
- Redis Cookbook
- BoJack �?�?�
- KeyValue
- RDS
- Theory
- Ledger
- Distributed Systems
- Theory
- Event Sourcing / CQRS
- Go Back to the Future with Event Sourcing and CQRS
📼 🆓 - Event Sourcing You are doing it wrong - David Schmitz
📼 🆓 - The Many Meanings of Event-Driven Architecture - Martin Fowler
📼 🆓 - An Introduction to CQRS and Event Sourcing Patterns - Mathew McLoughlin
📼 🆓 - Go Back to the Future with Event Sourcing and CQRS
📼 🆓
- Go Back to the Future with Event Sourcing and CQRS
- Streaming
- Kafka
- NATS
- Kinesis
- Commit Log
- Commit Logs in an Age of Microservices - Tim Berglund
📼 🆓 - Build your Own
- 14-bits/voik
💻 🆓 - Corfu - A distributed shared log
📰 🆓 - Building a Distributed Message Log from Scratch by Tyler Treat - Video
📼 🆓 - Building a Distributed Log from Scratch, Part 1: Storage Mechanics
📰 🆓 - Building a Distributed Log from Scratch, Part 2: Data Replication
📰 🆓 - Building a Distributed Log from Scratch, Part 3: Scaling Message Delivery
📰 🆓 - Building a Distributed Log from Scratch, Part 4: Trade-Offs and Lessons Learned
📰 🆓 - Building a Distributed Log from Scratch, Part 5: Sketching a New System
📰 🆓 - Code
- travisjeffery/Jocko - Distributed commit log service in Go
- zowens/commitlog - Append-only commit log library for Rust
- liftbridge-io/liftbridge - Lightweight, fault-tolerant message streams
- People to Follow
- Tyler Treat
�?�
- Tyler Treat
- 14-bits/voik
- Commit Logs in an Age of Microservices - Tim Berglund
- Load Balancing
- Distributed Processing
- Hadoop
- RPC - Remote Procedure Call
- Version Control
- Operations
- Terminal
- Operating Systems
- Courses
- Base Book (Choose 1):
- Computer Architecture
- TUHS Lectures
🆓 📰 🎓 - Introduction to Systems Architecture
- Instruction Set Architecture Design
- Addressing Modes & CPU Internals
- Execution Flow, Branches, Function Calls
- User- and Kernel Mode, System Calls, I/O, Exceptions
- CPU Memory Management, Context Switching
- Introduction to Operating Systems
- Processes
- Introduction to Memory Management
- Virtual Memory, Disk Devices
- Filesystems & Their Performance
- IPC, Synchronisation and Threads
- TUHS Lectures
- File Descriptor
- Threads
- "An Introduction to Programming with Threads" by Birrell
📰 🆓 - POSIX Threads (PThreads)
- "An Introduction to Programming with Threads" by Birrell
- Beyond Multiprocessing: Multithreading the Sun OS Kernel by Eykholt
📰 🆓 - Implementing Lightweight Threads by Stein and Shah
📰 🆓 - How to create and join threads in C (pthreads)
📼 🆓 - Programming with POSIX ® Threads
📕 💰 - CPU Scheduling
- Timeslice
- MLFQ - Multi Level Feedback Queue
- Linux
- O(n), O(1) and CFS
- Timeslice
- Virtual Memory
- Linux
- Reference Youtube channels
- Network
- Computer Networks, 5th Edition
📕 💰 - Protocols
- DNS
- Socket
- UDP
- TCP
- Build Your Own
- SSH
- HTTP/S
- SSL-TLS
- Edge
- CDN
- "Global Accelerator"
- AWS Global Accelerator Introduction
📼 🆓 - 11:00 - Explanation regarding GA
- AWS Global Accelerator
📼 🆓
- AWS Global Accelerator Introduction
- Computer Networks, 5th Edition
- Monitoring
- Metrics
- Prometheus
- InfluxDB
- Tracing
- Metrics
- Infrastructure as Code
- What is IaC?
📼 🆓 - Getting Started with IaC
📼 🆓 - Containers
- Docker
- Guides
- Testing
- goss/dgoss - Test docker images
�?�? - marceloboeira/kurz - Example setup �?�?�
- goss/dgoss - Test docker images
- Docker
- Orchestration
- ECS
- ECS Workshop 👨�?��?🔧
🆓
- ECS Workshop 👨�?��?🔧
- Kubernetes
- History
- Internals
- Introduction
- Microsoft Azure Videos
- Why you should care about containers
📼 🆓 - How Kubernetes works
📼 🆓 - How Kubernetes deployments work
📼 🆓 - Understand Serverless Kubernetes and Serverless on Kubernetes
📼 🆓 - How the Kubernetes scheduler works
📼 🆓 - Setting up a Kubernetes build pipeline
📼 🆓 - Overview of common Kubernetes scenarios
📼 🆓 - How volumes and storage work in Kubernetes
📼 🆓 - The basics of stateful applications in Kubernetes
📼 🆓
- Why you should care about containers
- Microsoft Azure Videos
- Understanding Distributed Consensus in etcd and Kubernetes - Laura Frank, CloudBees
📼 🆓 - Kubernetes Deconstructed: Understanding Kubernetes by Breaking It Down - Carson Anderson, DOMO
📼 🆓 - Internals Advanced General talks about containers -
🆓 📼 - Kubernetes Up and Running
📕 💰 - Key Kubernetes Concepts
📰 🆓 - Programming Kubernetes
📕 💰 - Networking
- A Guide to the Kubernetes Networking Model
📰 🆓 - How does Traffic Flow inside a Kubernetes Cluster?
📰 🆓 - Exposing Services
- NodePort vs LB vs Ingress
📰 🆓 - Interesting to understand why ingress is a better option than LB when exposing individual services
- LB creates a new IP for every service, it can get expensive and difficult to handle
- Ingress can manage multiple domains and paths for many services without difficulty/effort
- NodePort vs LB vs Ingress
- A Guide to the Kubernetes Networking Model
- Introduction
- Operators
- Provider
- EKS - Elastic Kubernetes Service
- EKS - Deep Dive
📼 📼 - 08:50 - Control Plane
- 10:19 - Control Plane Internals (not shared tenent, endpoints exposed to internet, worker nodes need access to the internet, NLB)
- 19:00 - Version Updates
- 20:00 - Authentication (IAM -> Authentication | RBAC -> Authorization)
- 20:00 - AMI is OpenSource
- EKS Workshop 👨�?��?🔧
🆓 - Custom EKS AMIs
📰 🆓 - Metrics
- Tracing
- Windows
- Managed Node Groups
- EKS - Deep Dive
- EKS - Elastic Kubernetes Service
- Service Mesh
- What is service mesh?
📼 🆓 - Istio
- Istio Explained - IBM Videos
📼 🆓 - What is Istio?
📼 🆓 - Nomad
- Console
- Istio: Up & Running
📕 💰
- Istio Explained - IBM Videos
- AppMesh
- What is service mesh?
- ECS
- Provisioning
- What is IaC?
- Linux
- LFS - Linux from Scratch Book
📼 🆓 - systemd
- LFS - Linux from Scratch Book
- Debug
- Core Dumps
- Performance
- Profiling
- Linux Performance
- Linux Network Performance Parameters - Leandro Moreira
📰 🆓 💻 - Linux Performance Hub - Brendan Gregg
📰 🆓 💻 - Linux Perf
📰 🆓 💻 - Linux Extended BPF (eBPF) Tracing Tools
📰 🆓 💻 - Charts
- Netflix - Linux Systems Performance - Brendan Gregg
📼 🆓 - Netflix - Linux Performance - Brendan Gregg
📼 🆓 - How Netflix Tunes Amazon EC2 Instances for Performance - Brendan Gregg
📼 🆓
- Linux Network Performance Parameters - Leandro Moreira
- Docker Container
- Applications
- dtrace
- Rust
- Flamegraph
- Linux Performance
- Profiling
- Security
- Firewall
- WAF - Web Application Firewall
- Firewall
- Culture
