Madhav’s Second Brain
This is my knowledge garden, built from everything I’m reading, studying, and thinking through as a software engineer, poker player, and compulsive rabbit-hole follower.
It has two layers. The synthesized layer (concepts, topics, and sources) is maintained by an LLM as I ingest new material, based on Andrej Karpathy’s LLM-wiki pattern. The notes are unfiltered notes from books and courses, the source material the synthesis is built on. Each source page links back to the notes behind it.
The synthesized layer gets richer every time I read something new. The notes stay as they were written.
Notes
- Designing Data-Intensive Applications — Kleppmann reading notes; distributed data systems
- Java Concurrency in Practice — Goetz et al. reading notes; JVM concurrency fundamentals
- Dopamine — Huberman Lab; dopamine mechanics, motivation, and reward design
- System Design Masterclass — Lecture 01 — foundational approach, online/offline indicator case study, core topics survey
- From IDEs to AI Agents with Steve Yegge — Pragmatic Engineer podcast; AI coding spectrum, Dracula Effect, prototype-as-product
Sources
- Designing Data-Intensive Applications — Kleppmann’s comprehensive treatment of distributed data systems: storage, replication, partitioning, transactions, and consistency
- Java Concurrency in Practice — Goetz et al. on JVM concurrency fundamentals: thread safety, atomicity, locking, memory visibility and reordering
- Controlling Your Dopamine For Motivation, Focus and Satisfaction — Huberman on dopamine’s role in motivation, the baseline/peak ratio, and reward design
- System Design Masterclass — Lecture 01 — core-first design, heartbeat pattern, TTL optimization, scaling and delegation principles
- From IDEs to AI Agents with Steve Yegge — AI coding spectrum, Dracula Effect, prototype-as-product, monolith as AI adoption blocker
Concepts
- Reliability, Scalability, and Maintainability — The three foundational properties of data-intensive systems; fault taxonomy
- Data Models — Relational vs. document vs. graph models; schema-on-read vs. schema-on-write
- Storage Engines and Indexes — Hash indexes, SSTables, LSM-trees, B-trees; OLTP vs. OLAP; column-oriented storage
- Replication — Single-leader, multi-leader, leaderless replication; failover; replication log implementations
- Eventual Consistency and Replication Lag — Replication lag anomalies: stale reads, non-monotonic reads, causal violations
- Partitioning — Key-range vs. hash partitioning; secondary indexes; rebalancing strategies
- Transactions and ACID — ACID guarantees; what “C” in ACID actually means
- Isolation Levels — Read committed, snapshot isolation, serializability; 2PL, SSI; lost updates, write skew
- Distributed Systems Faults — Partial failures, unreliable networks, unreliable clocks, Byzantine faults
- Linearizability and CAP Theorem — Recency guarantee; CAP theorem; which replication strategies are linearizable
- Thread Safety — What thread safety means; shared mutable state; three strategies
- Atomicity — Indivisible operations; read-modify-write races; program-level vs. database-level atomicity
- Locking — Intrinsic locks, reentrancy, lock-guarding discipline; database 2PL; deadlock
- Memory Visibility and Reordering — JVM memory model; reordering; volatile variables
- Dopamine — Baseline/peak ratio; the readily-releasable pool; cold water’s unique profile; caffeine vs. stimulants
- Motivation Maintenance — Intermittent reinforcement; reward stacking problem; process rewards; burnout as baseline suppression
- Scaling — Vertical vs. horizontal scaling; stateful bottlenecks; scale bottom-up heuristic
- Delegation — Async by default; delegate and respond; what work belongs off the critical path
- Communication Protocols — Short polling, long polling, WebSocket, SSE; when each applies
- AI Coding Spectrum — Eight-level framework from no AI use to multi-agent orchestration; most engineers at levels 1–2
- Dracula Effect — AI automates easy work, leaving only hard work; faster burnout despite 100x throughput
- Prototype-as-Product — Slot machine programming: generate many implementations in parallel, ship the best one
Topics
- Distributed Systems — Theory and engineering of multi-machine systems; consistency, availability, fault tolerance
- Databases — Storage engines, data models, transactions, and distributed databases
- Concurrent Programming — Thread safety, locking, memory visibility; program-level concurrency on the JVM
- Psychology — Neuroscience of motivation and behavior; dopamine mechanics and reward design
- System Design — Designing large-scale systems; component selection, capacity estimation, architectural trade-offs
- AI Engineering — AI’s impact on the software craft; adoption spectrum, cognitive costs, structural blockers