Computers

Discussion Topics

Hardware

CPU

L1/L2 caches

Memory

Disk

Bytes

File

Object

Serialize/Deserialize

File formats

Unicode/UTF8

OS

virtualization

persistence - file system

Concurrency/parallelism

syscall

signals/hardware interrupts

process/thread

code-data-stack-heap

bash

Inter-process communication

message passing, go channels, actor frameworks

thread sync, locks, semaphores, mutexes, monitors

Languages

compiler/interpreter

object

value vs reference

garbage collection

Databases

tuples

relations 1-1 1-n n-n

B-tree

LSM tree

normalization

star schema- fact and dimensions

OLTP/OLAP

SQL

indexes

partitioning

replication

write-ahead log

columnar, key-value, graph

message queues, AMQP, Kafka

Distributed systems

Leader election

Time, vector clocks

Networks

sockets

TCP/IP model

Web

HTTP

1.0 simple 1.1 reuse connections 2 binary+multiplex 3 QUIC

verbs

headers

UDP/TCP

Websocket

Security

CSP

XSS

CSRF

Auth

CORS

Public-key cryptography

How to store passwords?

cookies

certificates

Data Engineering

SQL

ETL

Data flow

Data Science

Statistics

Hypothesis testing

ML

regression

classification

Bayes

SWE

Observability

Logging vs telemetry

Monitoring

System Design

OOP

DDD

SOLID

Testing

types

dependency injection

tools

Packaging

dependency management

containers

orchestrators

CI/CD

🎰