Learn Software Engineering
Structured learning paths, in-depth articles, visual explanations and practice to help you build real-world skills.
Explore Topics
Ai
Learn Ai as a connected topic across chapters, concepts, simulations, and interview reasoning.
Architecture
Learn Architecture as a connected topic across chapters, concepts, simulations, and interview reasoning.
System Design
Practice requirements, topology, bottlenecks, tradeoffs, failure modes, and operational constraints as a design loop.
Algorithms
Learn Algorithms as a connected topic across chapters, concepts, simulations, and interview reasoning.
Distributed Systems
Move through replication, consensus, quorum, leader election, transactions, and failure recovery as one connected system.
Databases
Learn Databases as a connected topic across chapters, concepts, simulations, and interview reasoning.
Popular Learning Paths

LLM Engineering
49 articlesTLDR: A pretrained LLM is a generalist. Fine-tuning makes it a specialist. Supervised Fine-Tuning (SFT) teaches it your domain's language through labeled examples. LoRA does the same with 99% fewer tr
- ANN Index Types Explained: When to Choose Flat, HNSW, IVF, or IVF-PQ
- RAG vs Fine-Tuning: When to Use Each (and When to Combine Them)
- Fine-Tuning LLMs with LoRA and QLoRA: A Practical Deep-Dive
- Build vs Buy: Deploying Your Own LLM vs Using ChatGPT, Gemini, and Claude APIs
- Fine-Tuning LLMs: The Complete Engineer's Guide to SFT, LoRA, and RLHF

System Design Interview Prep
69 articlesTLDR: Stale reads return superseded data from replicas that haven't yet applied the latest write. Cascading failures turn one overloaded node into a cluster-wide collapse through retry storms and redi
- System Design: Designing an Autonomous AI Coding Agent (Devin at Scale)
- System Design for Agentic AI Systems: From Distributed Systems Principles to Production
- NoSQL Partitioning: How Cassandra, DynamoDB, and MongoDB Split Data
- Clock Skew and Causality Violations: Why Distributed Clocks Lie
- Stale Reads and Cascading Failures in Distributed Systems

Agentic AI: LangChain and LangGraph
16 articlesTLDR: LLMs are stateless β every API call starts fresh. LangChain memory classes (Buffer, Window, Summary, SummaryBuffer) explicitly inject history into each call, and RunnableWithMessageHistory is th
- LangChain Tools and Agents: The Classic Agent Loop
- LangChain RAG: Retrieval-Augmented Generation in Practice
- LangChain Memory: Conversation History and Summarization
- LangChain 101: Chains, Prompts, and LLM Integration
- From LangChain to LangGraph: When Agents Need State Machines
Recently Added
Low-Level Design for an AI Agent Orchestration Engine: Designing a Stateful Execution Framework
TLDR: In this guide, we design a stateful, graph-based AI agent execution engine in Java using clean object-oriented principles. By structuring execution as nodes and edges over a shared state, we pre
23 min read
System Design: Designing an Autonomous AI Coding Agent (Devin at Scale)
TLDR: Designing an autonomous AI coding agent at scale is not a prompt engineering task; it is a complex systems problem. The system requires secure multitenancy via Firecracker microVMs, a low-latenc
14 min read
Algorithms for AI: Trie, Graph Sorting, and K-Way Merge for LLM Systems
TLDR: Generative AI relies heavily on classic computer science algorithms under the hood. In this guide, we explore how to implement Trie prefix filtering for constrained model decoding, Topological S
13 min read
Track your progress
Create an account to save progress, notes, bookmarks, and continue learning across articles.
- Track roadmaps
- Bookmark articles
- Take notes
- Get personalized recommendations