30c7dad6e4c7b43d664e59d8ebb6734f443af72c
📚 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 📼 🆓
- IBM Garage - Building SRE from Scratch
- 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 📼 🆓
- People to Follow
- 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 💪🏼 🆓
- Concepts
- Functional Programming
- Lambda Calculus
- Monads
- Haskell
- Systems Programming Languages
- Rust
- The Rust Programming Language 📕 🆓
- Annotations 📝
- SubProjects
- 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 📼 🆓
- Algorithms and Data Structures
- Databases
- Theory
- Designing Data-Intensive Applications - Martin Kleppmann 📕 💰
- CAP Theorem Revisited 📰 🆓
- The Pathologies of Big Data 📰 🆓
- Scaling
- Replication
- --
- Sharding
- 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
- 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 📼 🆓
- PostgreSQL
- RDS
- Aurora
- Security
- RDS Proxy
- Aurora Serverless
- NoSQL
- KeyValue
- BoJack ✍🏼 💻 🆓
- Why you should build your own NoSQL database ✍🏼 📰 🆓
- Redis
- Redis Cookbook 📕 💰
- Cassandra
- DocumentStore
- ElasticSearch
- KeyValue
- Theory
- Ledger
- Distributed Systems
- Theory
- Bulkhead Pattern
- Circuit-Breaker Pattern
- 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 📼 🆓
- 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
- 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)
- 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 📼 🆓
- VPC - Virtual private Cloud
- Practical VPC Design 📰 🆓
- Multi-VPC
- One to Many: Evolving VPC Design 📰 🆓
- Using VPC Sharing for a Cost-Effective Multi-Account Microservice Architecture 📰 🆓
- Sharing
- Peering
- PrivateLink
- TransitGateway
- 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 👨🏻🔧 🆓
- Internals
- Service Discovery 📼 🆓
- Network Deep Dive 📼 🆓
- 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 📼 🆓
- 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 📰 🆓
- CNI Plugins
- 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 📕 💰
- AppMesh
- ECS
- Provisioning
- Terraform
- Packer
- The Packer Book 📕 💰
- CDK - CloudFormation Development Kit
- Linux
- LFS - Linux from Scratch Book 📼 🆓
- systemd
- 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 📼 🆓
- Docker Container
- Applications
- dtrace
- Rust
- Flamegraph
- Linux Performance
- Profiling
- Serverless
- SAM- Serverless Application Model
- What is SAM? 📼 🆓
- Lambda
- Layers
- Extensions
- SAM- Serverless Application Model
- Security
- Authentication
- OpenID/OICD
- Amazon Cognito 📼 🆓
- OpenID/OICD
- Firewall
- WAF - Web Application Firewall
- Encryption
- Theory
- History
- Ceasar
- Symetric
- Asymetric
- History
- Cloud
- Theory
- Certificates
- Service Name Indication
- What is SNI? 📼 🆓
- Service Name Indication
- Monitoring
- Data Leaks
- Amazon Macie 📼 🆓
- Data Leaks
- Multi-tenancy
- Authentication
- Cost
- Cloud
- Culture
Description
Languages
Makefile
100%