{"nodes":[{"id":"active-object","title":"Active Object","type":"note","slug":"/notes/active-object","val":2.5},{"id":"active-record","title":"Active Record","type":"note","slug":"/notes/active-record","val":2.5},{"id":"architecture-patterns","title":"Architecture Patterns","type":"note","slug":"/notes/architecture-patterns","val":3.5},{"id":"asynchronous-request-response","title":"Asynchronous Request-Response","type":"note","slug":"/notes/asynchronous-request-response","val":4.5},{"id":"atomicity","title":"Atomicity","type":"note","slug":"/notes/atomicity","val":3.5},{"id":"certificate-chain-of-trust","title":"Certificate Chain of Trust","type":"note","slug":"/notes/certificate-chain-of-trust","val":2.5},{"id":"consistency","title":"Consistency","type":"note","slug":"/notes/consistency","val":2.5},{"id":"correlation-id","title":"Correlation ID","type":"note","slug":"/notes/correlation-id","val":3},{"id":"cyclomatic-complexity","title":"Cyclomatic complexity","type":"note","slug":"/notes/cyclomatic-complexity","val":1.5},{"id":"database-transactions","title":"Database Transactions","type":"note","slug":"/notes/database-transactions","val":6},{"id":"derivatives-and-the-chain-rule","title":"Derivatives and the Chain Rule","type":"note","slug":"/notes/derivatives-and-the-chain-rule","val":2},{"id":"distributed-commit-protocols","title":"Distributed Commit Protocols","type":"note","slug":"/notes/distributed-commit-protocols","val":2.5},{"id":"dns","title":"DNS","type":"note","slug":"/notes/dns","val":3},{"id":"durability","title":"Durability","type":"note","slug":"/notes/durability","val":3},{"id":"epoll","title":"epoll","type":"note","slug":"/notes/epoll","val":2.5},{"id":"file-descriptors","title":"File Descriptors","type":"note","slug":"/notes/file-descriptors","val":2},{"id":"grpc","title":"gRPC","type":"note","slug":"/notes/grpc","val":3.5},{"id":"http","title":"HTTP","type":"note","slug":"/notes/http","val":2.5},{"id":"isolation","title":"Isolation","type":"note","slug":"/notes/isolation","val":2.5},{"id":"java-boxed-equality","title":"Java Boxed Equality","type":"note","slug":"/notes/java-boxed-equality","val":1.5},{"id":"logarithms","title":"Logarithms","type":"note","slug":"/notes/logarithms","val":4},{"id":"mean-and-variance","title":"Mean and Variance","type":"note","slug":"/notes/mean-and-variance","val":4},{"id":"mtls","title":"mTLS","type":"note","slug":"/notes/mtls","val":3},{"id":"mvcc","title":"MVCC","type":"note","slug":"/notes/mvcc","val":2.5},{"id":"nonlinearity","title":"Nonlinearity","type":"note","slug":"/notes/nonlinearity","val":2},{"id":"polling-vs-webhooks","title":"Polling vs Webhooks","type":"note","slug":"/notes/polling-vs-webhooks","val":2.5},{"id":"power-laws","title":"Power Laws","type":"note","slug":"/notes/power-laws","val":3},{"id":"probability-distribution","title":"Probability Distribution","type":"note","slug":"/notes/probability-distribution","val":3.5},{"id":"protobuf","title":"Protocol Buffers","type":"note","slug":"/notes/protobuf","val":2},{"id":"rabbitmq-reply-queues","title":"RabbitMQ Reply Queues","type":"note","slug":"/notes/rabbitmq-reply-queues","val":2.5},{"id":"rpc","title":"rpc","type":"note","slug":"/notes/rpc","val":2.5},{"id":"saga-pattern","title":"Saga Pattern","type":"note","slug":"/notes/saga-pattern","val":3.5},{"id":"tls","title":"TLS","type":"note","slug":"/notes/tls","val":6.5},{"id":"tls-deployment","title":"TLS Deployment","type":"note","slug":"/notes/tls-deployment","val":3},{"id":"tls-handshake","title":"TLS Handshake","type":"note","slug":"/notes/tls-handshake","val":2.5},{"id":"vectors-and-matrix-multiplication","title":"Vectors and Matrix Multiplication","type":"note","slug":"/notes/vectors-and-matrix-multiplication","val":3},{"id":"write-ahead-log","title":"Write-Ahead Log","type":"note","slug":"/notes/write-ahead-log","val":3},{"id":"nobody-memorises-the-pact","title":"Nobody Memorises the Pact","type":"blog","slug":"/blog/nobody-memorises-the-pact","val":3},{"id":"why-i-started-taking-ai-free-days","title":"Why I Started Taking AI-Free Days","type":"blog","slug":"/blog/why-i-started-taking-ai-free-days","val":4},{"id":"re-reading-who-moved-my-cheese","title":"Re-reading Who Moved My Cheese","type":"blog","slug":"/blog/re-reading-who-moved-my-cheese","val":3.5},{"id":"what-actually-works-for-me-in-ai-development","title":"What Actually Works for Me in Agentic Development","type":"blog","slug":"/blog/what-actually-works-for-me-in-ai-development","val":4},{"id":"part-2-the-building-blocks","title":"Redis Deep Dive Part 2: The Building Blocks","type":"blog","slug":"/blog/part-2-the-building-blocks","val":3.5},{"id":"part-1-the-core-of-redis","title":"Redis Deep Dive Part 1: In-Memory Architecture and Event Loop Explained","type":"blog","slug":"/blog/part-1-the-core-of-redis","val":4},{"id":"career-update","title":"Career Update","type":"blog","slug":"/blog/career-update","val":2.5},{"id":"startup-autopsy","title":"A Startup Autopsy: Building the Architecture Before the Product","type":"blog","slug":"/blog/startup-autopsy","val":2.5},{"id":"content-security-policy","title":"Implementing Content Security Policy on a Static Site","type":"blog","slug":"/blog/content-security-policy","val":2.5},{"id":"my-notes-were-gathering-dust","title":"My Notes Were Gathering Dust, So I Built a Home for Them","type":"blog","slug":"/blog/my-notes-were-gathering-dust","val":2.5},{"id":"a-philosophy-of-software-design-book","title":"A Philosophy of Software Design","type":"book","slug":"/books/a-philosophy-of-software-design-book","val":2.5},{"id":"atomic-habits","title":"Atomic Habits","type":"book","slug":"/books/atomic-habits","val":3.5},{"id":"everything-is-fcked-a-book-about-hope","title":"Everything Is F*cked: A Book About Hope","type":"book","slug":"/books/everything-is-fcked-a-book-about-hope","val":4.5},{"id":"mans-search-for-meaning","title":"Man's Search for Meaning","type":"book","slug":"/books/mans-search-for-meaning","val":2.5},{"id":"outliers","title":"Outliers","type":"book","slug":"/books/outliers","val":2.5},{"id":"the-alchemist","title":"The Alchemist","type":"book","slug":"/books/the-alchemist","val":2.5},{"id":"the-midnight-library","title":"The Midnight Library","type":"book","slug":"/books/the-midnight-library","val":2.5},{"id":"the-power-of-habit","title":"The Power of Habit","type":"book","slug":"/books/the-power-of-habit","val":3.5},{"id":"the-subtle-art-of-not-giving-a-fck","title":"The Subtle Art of Not Giving a F*ck","type":"book","slug":"/books/the-subtle-art-of-not-giving-a-fck","val":4.5},{"id":"tidy-first","title":"Tidy First? A Personal Exercise in Empirical Software Design","type":"book","slug":"/books/tidy-first","val":2.5},{"id":"understanding-distributed-systems","title":"Understanding Distributed Systems","type":"book","slug":"/books/understanding-distributed-systems","val":2.5},{"id":"who-moved-my-cheese","title":"Who Moved My Cheese?","type":"book","slug":"/books/who-moved-my-cheese","val":3},{"id":"index","title":"Index","type":"index","slug":"/","val":39.5}],"links":[{"source":"active-record","target":"active-object","value":1},{"source":"architecture-patterns","target":"active-record","value":1},{"source":"architecture-patterns","target":"saga-pattern","value":1},{"source":"architecture-patterns","target":"asynchronous-request-response","value":1},{"source":"architecture-patterns","target":"active-object","value":1},{"source":"asynchronous-request-response","target":"correlation-id","value":1},{"source":"asynchronous-request-response","target":"polling-vs-webhooks","value":1},{"source":"asynchronous-request-response","target":"rabbitmq-reply-queues","value":1},{"source":"atomicity","target":"isolation","value":1},{"source":"certificate-chain-of-trust","target":"tls","value":1},{"source":"consistency","target":"atomicity","value":1},{"source":"correlation-id","target":"asynchronous-request-response","value":1},{"source":"database-transactions","target":"atomicity","value":1},{"source":"database-transactions","target":"consistency","value":1},{"source":"database-transactions","target":"isolation","value":1},{"source":"database-transactions","target":"durability","value":1},{"source":"database-transactions","target":"mvcc","value":1},{"source":"database-transactions","target":"write-ahead-log","value":1},{"source":"database-transactions","target":"distributed-commit-protocols","value":1},{"source":"database-transactions","target":"saga-pattern","value":1},{"source":"derivatives-and-the-chain-rule","target":"mean-and-variance","value":1},{"source":"distributed-commit-protocols","target":"saga-pattern","value":1},{"source":"dns","target":"tls","value":1},{"source":"dns","target":"tls","value":1},{"source":"dns","target":"http","value":1},{"source":"durability","target":"atomicity","value":1},{"source":"epoll","target":"file-descriptors","value":1},{"source":"grpc","target":"rpc","value":1},{"source":"grpc","target":"protobuf","value":1},{"source":"grpc","target":"http","value":1},{"source":"logarithms","target":"power-laws","value":1},{"source":"logarithms","target":"power-laws","value":1},{"source":"mean-and-variance","target":"vectors-and-matrix-multiplication","value":1},{"source":"mean-and-variance","target":"probability-distribution","value":1},{"source":"mtls","target":"tls","value":1},{"source":"nonlinearity","target":"vectors-and-matrix-multiplication","value":1},{"source":"polling-vs-webhooks","target":"asynchronous-request-response","value":1},{"source":"power-laws","target":"logarithms","value":1},{"source":"probability-distribution","target":"logarithms","value":1},{"source":"probability-distribution","target":"mean-and-variance","value":1},{"source":"probability-distribution","target":"logarithms","value":1},{"source":"rabbitmq-reply-queues","target":"correlation-id","value":1},{"source":"rpc","target":"grpc","value":1},{"source":"saga-pattern","target":"database-transactions","value":1},{"source":"tls","target":"mtls","value":1},{"source":"tls","target":"tls-handshake","value":1},{"source":"tls","target":"certificate-chain-of-trust","value":1},{"source":"tls","target":"tls-deployment","value":1},{"source":"tls-deployment","target":"tls","value":1},{"source":"tls-deployment","target":"mtls","value":1},{"source":"tls-handshake","target":"tls","value":1},{"source":"vectors-and-matrix-multiplication","target":"mean-and-variance","value":1},{"source":"write-ahead-log","target":"mvcc","value":1},{"source":"write-ahead-log","target":"durability","value":1},{"source":"nobody-memorises-the-pact","target":"what-actually-works-for-me-in-ai-development","value":1},{"source":"why-i-started-taking-ai-free-days","target":"what-actually-works-for-me-in-ai-development","value":1},{"source":"why-i-started-taking-ai-free-days","target":"re-reading-who-moved-my-cheese","value":1},{"source":"re-reading-who-moved-my-cheese","target":"who-moved-my-cheese","value":1},{"source":"what-actually-works-for-me-in-ai-development","target":"why-i-started-taking-ai-free-days","value":1},{"source":"part-2-the-building-blocks","target":"part-1-the-core-of-redis","value":1},{"source":"part-1-the-core-of-redis","target":"epoll","value":1},{"source":"part-1-the-core-of-redis","target":"part-2-the-building-blocks","value":1},{"source":"everything-is-fcked-a-book-about-hope","target":"the-subtle-art-of-not-giving-a-fck","value":1},{"source":"everything-is-fcked-a-book-about-hope","target":"the-subtle-art-of-not-giving-a-fck","value":1},{"source":"the-power-of-habit","target":"atomic-habits","value":1},{"source":"the-power-of-habit","target":"atomic-habits","value":1},{"source":"the-subtle-art-of-not-giving-a-fck","target":"everything-is-fcked-a-book-about-hope","value":1},{"source":"the-subtle-art-of-not-giving-a-fck","target":"everything-is-fcked-a-book-about-hope","value":1},{"source":"index","target":"active-object","value":1},{"source":"index","target":"active-record","value":1},{"source":"index","target":"architecture-patterns","value":1},{"source":"index","target":"asynchronous-request-response","value":1},{"source":"index","target":"atomicity","value":1},{"source":"index","target":"certificate-chain-of-trust","value":1},{"source":"index","target":"consistency","value":1},{"source":"index","target":"correlation-id","value":1},{"source":"index","target":"cyclomatic-complexity","value":1},{"source":"index","target":"database-transactions","value":1},{"source":"index","target":"derivatives-and-the-chain-rule","value":1},{"source":"index","target":"distributed-commit-protocols","value":1},{"source":"index","target":"dns","value":1},{"source":"index","target":"durability","value":1},{"source":"index","target":"epoll","value":1},{"source":"index","target":"file-descriptors","value":1},{"source":"index","target":"grpc","value":1},{"source":"index","target":"http","value":1},{"source":"index","target":"isolation","value":1},{"source":"index","target":"java-boxed-equality","value":1},{"source":"index","target":"logarithms","value":1},{"source":"index","target":"mean-and-variance","value":1},{"source":"index","target":"mtls","value":1},{"source":"index","target":"mvcc","value":1},{"source":"index","target":"nonlinearity","value":1},{"source":"index","target":"polling-vs-webhooks","value":1},{"source":"index","target":"power-laws","value":1},{"source":"index","target":"probability-distribution","value":1},{"source":"index","target":"protobuf","value":1},{"source":"index","target":"rabbitmq-reply-queues","value":1},{"source":"index","target":"rpc","value":1},{"source":"index","target":"saga-pattern","value":1},{"source":"index","target":"tls","value":1},{"source":"index","target":"tls-deployment","value":1},{"source":"index","target":"tls-handshake","value":1},{"source":"index","target":"vectors-and-matrix-multiplication","value":1},{"source":"index","target":"write-ahead-log","value":1},{"source":"index","target":"nobody-memorises-the-pact","value":1},{"source":"index","target":"why-i-started-taking-ai-free-days","value":1},{"source":"index","target":"re-reading-who-moved-my-cheese","value":1},{"source":"index","target":"what-actually-works-for-me-in-ai-development","value":1},{"source":"index","target":"part-2-the-building-blocks","value":1},{"source":"index","target":"part-1-the-core-of-redis","value":1},{"source":"index","target":"career-update","value":1},{"source":"index","target":"startup-autopsy","value":1},{"source":"index","target":"content-security-policy","value":1},{"source":"index","target":"my-notes-were-gathering-dust","value":1},{"source":"index","target":"a-philosophy-of-software-design-book","value":1},{"source":"index","target":"atomic-habits","value":1},{"source":"index","target":"everything-is-fcked-a-book-about-hope","value":1},{"source":"index","target":"mans-search-for-meaning","value":1},{"source":"index","target":"outliers","value":1},{"source":"index","target":"the-alchemist","value":1},{"source":"index","target":"the-midnight-library","value":1},{"source":"index","target":"the-power-of-habit","value":1},{"source":"index","target":"the-subtle-art-of-not-giving-a-fck","value":1},{"source":"index","target":"tidy-first","value":1},{"source":"index","target":"understanding-distributed-systems","value":1},{"source":"index","target":"who-moved-my-cheese","value":1}]}