Software Architecture Mindmap
[!TIP]
The mindmap can be opened and edited using mindmap-maker-clean. You can also use it to convert the JSON source into a high-resolution PNG. Verified on Chrome and Firefox.
Contents
- Section 1: Software Architecture Mindmap
- Section 2: Software Architecture Reference
- Section 3: Computer Science Papers
- Section 4: Data Science (ML/NN)
- Section 5: Terminology and Comparisons
- Section 6: Citation
Software_Architecture_Mindmap.png
Three Main Pillars of Software Architecture:
- Modern Application Development
- Cloud Computing (AWS/Azure/GCP)
- Data Science (ML/NN)
[!TIP]
- This mind map is based on the Fresco Play curriculum (the internal learning platform of Tata Consultancy Services). Β© 2022
- This repository was initially created for the mind map; currently, it is used as a curated collection of software architecture references.
Software Architecture Reference
- System Design 101: πΊοΈByteByteGo. System design basics explained with diagrams
- Awesome Lists: ποΈLists of useful links on many topics /
awesome.re/ github topic - Ecosyste.ms: Awesome: Searchable index of awesome lists
- Awesome Software Architecture (simskij): Architecture patterns, principles, and tools
- Awesome Software Architecture: Articles, videos, patterns, and principles
- Software Architecture Books: Books on architecture styles, principles, and choices
- System Design: Scaling systems to more users; interview study
- Microsoft .NET Application Architecture - Reference Apps: Example online store built with ASP.NET Core
- System Design Fight Club: Example system design discussions
- System Design - Neo Kim: Concept notes and interview prep
- Awesome System Design Resources: Links for system design interview study
- Awesome Low Level Design (LLD) / Object Oriented Design (OOD): Class and object design; interview practice
- Awesome Engineering Articles: Engineering articles from technology companies
Trend Reports
- InfoQ: News and Articles
- InfoQ Trends Reports: π(Downloaded PDFs 2019 and 2021 - 2025)
- Dzone: RefCards and Trend Reports
- Thoughtworks: Technology Radar π(archived PDFs vo.1 - vol.34)
- Microsoft Learn: πͺDocumentation and Code samples
- Trendshift: GitHub Trending repositories
- Design Gurus: Portal For Tech Interviews
Industry Trends
- Software Industry Statistics: Statista market figures
- Gartner Top Strategic Technology Trends 2024: Ten key technology trends for 2024
- MAD (ML/AI/Data) Landscape: Map of companies in AI, machine learning, and data
- Hype Cycle for Emerging Technologies 2024: New technologies and how mature each one is
- Microsoft Digital Defense Report: Cyber threat and protection trends
- Google DORA: DevOps performance research and metrics
- Postman State of the API Report: Survey on API usage and tooling
- Stanford AI Index Annual Report: Yearly data on AI research, spending, and policy
- State of Devs
Newsletter
- Substack Leaderboard: Technology newsletters on Substack
- daily.dev: Personalized developer feed
- Hacker News
Mini-Books
- π Building Evolutionary Architectures: InfoQ mini-book on guiding architecture to change over time with fitness functions
- System Design Blueprint: The Ultimate Guide: Component checklist
- π InfoQ minibooks: Architectures Youβve Always Wondered About π2021 / 2023 / 2024 /2025 / Cell-Based Architecture
- π Building a scalable authorization system: How to design permissions for growing systems
- π Mastering RAG: Retrieval-augmented generation guide
- π Mastering AI Agents: AI agent guide
- π Agentic Architectures for Retrieval-intensive Applications: AI agents for search-based apps
- π Programming Notes for Professionals books: Free reference books for languages and tools
- π Google SRE Handbook: Monitoring and the four golden signals
Building from scratch
- How does a request travel in ~200ms?
- Let's Build a Simple Database: SQLite-like database in C
- Letβs Build A Simple Interpreter: Interpreter in Python, step by step
- Letβs Build A Web Server: Web server in Python, step by step
- Web Browser Engineering: Small web browser, from networking to rendering
- Clone Wars: Open-source copies of well-known websites
- Curated list of project-based tutorials: Projects grouped by programming language
- Master programming by recreating your favorite technologies from scratch: Rebuild databases, shells, and more
- Build frontend applications at scale: Organizing large web applications
- Writing an Operating System in 1,000 Lines: Small OS kernel
- minimal GPT: Small GPT model in code
- PyTorch internals: How PyTorch tensors and operators work inside
- JavaScript Runtime from Scratch: JavaScript runtime in C
Cloud Architecture
- AWS to Azure services comparison: AWS services and the matching Azure services
- Google Cloud to Azure services comparison: Google Cloud services and the matching Azure services
- Compare AWS and Azure services to Google Cloud: Table that maps AWS and Azure services to Google Cloud
- Microsoft Azure Developer's Cheat Sheet: Quick reference of Azure products and features
- Azure Cloud Adoption Framework :CAF: How a company plans and starts using Azure
- Azure Well-architected Framework :WAF: Rules for building and improving cloud applications
- Azure Architecture Center :AAC: Patterns and reference architectures
- Best practices in cloud applications: Caching, retries, scaling, and similar topics
- Cloud Design Patterns: Standard solutions to common cloud problems
- Landing zone: Design guide for a proven and flexible Azure architecture
- Resources for architects and developers of multitenant solutions: Multitenant SaaS design links
- Data partitioning strategies: Splitting data across storage
- Azure FinOps Guide: Cloud cost management
- Modern Web App pattern for .NET / git: Design guide with sample .NET app
- AI agent orchestration patterns: How to make several AI agents work together
Computer Science courses
- AI learning portals: Anthropic Academy, Google AI Training, Meta AI Resources, NVIDIA CUDA, Microsoft Learn, OpenAI Academy, IBM SkillsBuild, AWS Skill Builder, DeepLearning.AI, and Hugging Face Learn
- Kaggle Solutions and Ideas: Examples from Kaggle competitions
- Best-of Machine Learning with Python: Ranked Python machine learning libraries, updated weekly
- freeCodeCamp: Free coding lessons and exercises. youtube
- Ultimate Collection of 60 YouTube Courses for 21 Programming Languages: YouTube courses by language
- Computer Science courses with video lectures: University lectures grouped by topic
- Introduction to CUDA Programming for Python Developers: Using NVIDIA GPUs from Python
- AI by Hand: Work through AI calculations by hand | AI by Hand - Solutions
- Computer Networking Fundamentals: Networking lessons with online labs
Beginner Series by Microsoft
- Generative AI for Beginners: Building apps with generative AI
- ML for Beginners: Classical machine learning
- Web Dev for Beginners: HTML, CSS, and JavaScript
- AI for Beginners: Basic AI lessons
- Data Science for Beginners: Analyzing data and showing results
- IoT for Beginners: Projects with sensors, devices, and cloud
- AI Agents for Beginners: AI agent lessons
- Cybersecurity for Beginners: Basic security lessons
- Model Context Protocol (MCP) For Beginners: Connecting AI apps to tools and data
- Generative AI for Beginners using .NET: Generative AI examples in C# and .NET
- Mastering GitHub Copilot for C#/.NET Developers: Copilot examples for C# and .NET
- Choose Your Own Copilot Adventure: Coding challenges with GitHub Copilot
- XR Development for Beginners: AR, VR, and mixed reality
- Mastering GitHub Copilot for AI Paired Programming: Using Copilot to write, test, and review code
Tools & Research
##### Algorithm & Visualization
- Algorithm Visualizer: Watch algorithms run step by step
- Netron: View layers and connections of a machine learning model
- Hello Algo: Illustrated lessons on algorithms and data structures
- Wikipedia: List of Algorithms: Algorithms listed by type
- System Design Notes
- Paperdraw: System Design Simulator
- OOP Design Patterns: Examples of common object-oriented patterns
- Dev Encyclopedia: Definitions of software terms (GitHub)
- Data Engineering Wiki: Data pipelines, storage, and platforms
- Global Research Space
- Semantic Scholar: Search research papers with AI
- Liner: Highlight and annotate research papers
- Litmaps: Map links between research papers
- Connected Papers: Find related papers in a visual graph
- Ask R Discovery: Find papers by asking a question
- scite_: See how later papers cite a study
- Moonlight: Read research papers in a browser
- Excalidraw: Draw diagrams by hand
- Eraser.io: Make diagrams from text
- PlantUML: UML diagrams from text
- GraphViz: Graph diagrams from DOT files
- Mermaid Diagram: Flowcharts and sequence diagrams in Markdown
- Google Engineering Practices Documentation
- Wise Tech Stack: Platform engineering practices across Kubernetes, delivery, data, AI, and observability
- Robin Wieruch Blog: React and TypeScript tutorials
- Best Kubernetes Tools: Kubernetes tools listed by Bluelight Consulting
- PostgreSQL Wiki: Don't Do This: Common PostgreSQL mistakes
- Power BI DAX Patterns: Ready-made DAX formulas
- How To Secure A Linux Server: Steps to make a Linux server safer
- Crontab Guru: Cron expression editor
- Assembly code visualizer: See how assembly instructions run
- explorar.dev: Browse source code in an interactive view
- Idea Instructions: Ideas explained with IKEA-style pictures
- Linux Kernel Map: Map of Linux kernel parts
- Making Software: Pictures and explanations of how software works
- Understanding the Linux Kernel, Visually: Research paper on showing Linux data structures visually
- Grokpedia: Encyclopedia articles written by AI
- DeepWiki: AI-made guides to code repositories
- Google Code Wiki: AI-made guides to code
Engineering blog
- AWS Architecture Blog
- Azure Architecture Blog
- GCP Cloud Blog
- Netflix TechBlog
- Uber Blog
- The Cloudflare Blog
- Engineering at Meta
- LinkedIn Engineering
- Stripe Blog: Engineering
- Discord Blog: Engineering & Developers
- Slack Engineering
- 79 Engineering Blogs To Level Up Your System Design Skills: Links to engineering blogs from many companies
Other Topics
- Are Ideas Getting Harder to Find?: Across industries, research effort has risen sharply while research productivity has fallen, so sustaining growth needs ever more researchers.
- How to Architect Software for a Greener Future: Design choices that reduce software energy use
- Generative Search: Practical Advice for Retrieval Augmented Generation (RAG): Talk on combining search and language models
- What are the Greenest Programming Languages?: Energy use compared across programming languages
- Frugal Architect Handbook: Designing systems with cost in mind
- .NET Developer Roadmap: Learning path for .NET skills
- AI made me doubt everything about programming - Felienne Hermans, DDD Europe 2026: Code is not neutral. The real work is explaining the theory behind code, which LLMs lack. Build for people, not just programmers.
- Celebrate 50 years of Microsoft with the company's original source code: Altair Basic: Source code of Microsoft's first product, BASIC for the Altair (1975)
- A periodic table for machine learning: π¬Visual map of machine learning methods
- Every GPU β Data Viz: Compare GPU specs and performance across generations
Transformer Architecture (LLM Foundations)
- How Top AI Labs Are Building RL Agents in 2026: RLHF, verifiable rewards, GRPO, and LLM-as-a-judge reward signals for agent training
- LLM Architecture Gallery
- Attention Is All You Need: Paper that introduced the Transformer
- Interactive Reinforcement Learning Explorer: Try how agents learn from rewards
- LLM Visualization: 3D view of how a GPT model works
- The Illustrated Transformer: Drawings that explain attention in Transformers
- Transformer Explainer: Interactive view of how a Transformer predicts text
- Why Momentum Really Works: Interactive explanation of momentum in model training
Computer Science Books
##### General
- The Pragmatic Programmer by David Thomas and Andrew Hunt: Advice on programming and work habits
- Modern Software Engineering by David Farley: Improve software through testing, feedback, and small changes
- Code Complete by Steve McConnell: Guide to writing and organizing code
- π Software Engineering at Google by Titus Winters, Tom Manshreck, and Hyrum Wright: How Google builds and maintains software | Free online edition
- Clean Code by Uncle Bob Martin: Writing clear names and functions
- Head First Design Patterns by Eric Freeman: Design patterns explained with pictures and examples
- Refactoring by Martin Fowler: Change code structure without changing its behavior
- Design Patterns by Eric Gamma and Others: Common solutions to object-oriented design problems
- Grokking Algorithms by Aditya Bhargava: Algorithms explained with pictures
- Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Detailed guide to algorithms and how they work
- Cracking the Coding Interview by Gayle Laakmann McDowell: Coding interview questions and practice
- Designing Data-Intensive Applications by Martin Kleppman: How to store, copy, and process data across systems
- Learning SQL by Alan Beaulieu: Basics of querying relational databases
- Growing Object-Oriented Software, Guided by Tests by Steve Freeman: Use tests to shape an application
- Unit Testing Principles, Practices, and Patterns by Vladimir Khorikov: How to write useful unit tests
- The Art of Unit Testing by Roy Osherove: Write and maintain unit tests
- TDD by Example by Kent Beck: Test-driven development with examples
- Fundamentals Of Software Architecture by Mark Richards and Neil Ford: Architecture styles and their trade-offs
- Clean Architecture by Uncle Bob Martin: Separating business rules from tools and frameworks
- Software Architecture: The Hard Parts by Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani: Difficult choices in distributed systems
- π Domain-Driven Design Quickly by Abel Avram and Floyd Marinescu: Short introduction to domain-driven design | Free ebook
- A Philosophy of Software Design by John Ousterhout: Ways to make software easier to understand
- System Design Interview by Alex Xu: System design interview examples
- Domain-Driven Design by Eric Evans: Design software around business needs
- Understanding Distributed Systems by Roberto Vitillo: How distributed systems work and fail
- Designing Distributed Systems by Brendan Burns: Patterns for container-based systems
- DevOps Handbook by Gene Kim, Patrick Debois, John Willis, and Jez Humble: Practices for teamwork and software delivery
- Continuous Delivery by Jez Humble and David Farley: Automate builds, tests, and releases
- Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim: Research on software team performance
- The Hundred-Page Machine Learning Book by Andriy Burkov: Short introduction to machine learning
- Designing Machine Learning Systems by Chip Huyen: Building and running machine learning systems
- AI Engineering by Chip Huyen / git: Building applications with large language models
- Algorithms + Data Structures = Programs by Niklaus Wirth: Classic showing that program design is inseparable from the choice of data structures and algorithms
- π Computer Networking: A Top-Down Approach: Networking taught from the application layer down to the physical layer
- π Crafting Interpreters: Build two complete interpreters for a scripting language, from scratch
- π Deep Learning: Goodfellow, Bengio, Courville's textbook covering math basics through modern deep networks
- Fundamentals of Software Engineering by Nathaniel Schutta, Dan Vega: Practical overview of the core skills and practices of a software engineer
- π Game Programming Patterns: Design patterns applied to game code, with a focus on performance and decoupling
- π Immersive Linear Algebra: Interactive, visual introduction to linear algebra
- π Operating Systems: Three Easy Pieces: OS concepts organized around virtualization, concurrency, and persistence
- π Physically Based Rendering: Literate-programming guide to building a physically based ray tracer
- π Speech and Language Processing: Jurafsky & Martin's NLP textbook, from basics to LLMs
- Thinking in Systems by Donella Meadows, Diana Wright: Primer on stocks, flows, feedback loops, and finding leverage points in complex systems
Computer Science Papers
Computer Science Papers Every Developer Should Read
- πDownloaded PDFs - 12 files | Study notes
- On the Criteria To Be Used in Decomposing Systems into Modules (1972): D.L. Parnas β keep each module's inner workings hidden
- An Axiomatic Basis for Computer Programming (1969): C.A.R. Hoare β ways to prove a program is correct
- Time, Clocks, and the Ordering of Events in a Distributed System (1978): L. Lamport β track which event happened before another
- Out of the Tar Pit (2006): B. Moseley, P. Marks β how changing state makes software harder to manage
- Dynamo: Amazonβs Highly Available Key-value Store (2007): G. DeCandia et al. β a key-value store that keeps working during failures
- MapReduce: Simplified Data Processing on Large Clusters (2004): J. Dean, S. Ghemawat β process large data in parallel
- A Note On Distributed Computing (1994): J. Waldo et al. β why network calls differ from local calls
- A Metrics Suite for Object-Oriented Design (1994): S.R. Chidamber β measures for object-oriented design
- A Relational Model of Data for Large Shared Data Banks (1969): E.F. Codd β the relational way to organize data
- Why Functional Programming Matters (1990): J. Hughes β build programs from small functions you can reuse
- Transmission Control Protocol (1981): J. Postel | A TCP/IP Tutorial (1991): Introductory guide to TCP/IP
70+ Distributed Systems papers
- πDownloaded PDFS - 72 files | Study notes
- Here's a reading list of 70+ Distributed Systems papers mostly from conferences in just last 2 years! 70+ Distributed Systems papers [Jan 2024]
25 Papers That Completely Transformed the Computer World
- πDownloaded PDFs - 25 files | Study notes
- Dynamo: Key-value store that stays available during failures
- Google File System: Storing large files on many low-cost computers
- Scaling Memcached at Facebook: How Facebook runs a large cache
- BigTable: Google's system for storing large tables
- Borg: How Google schedules work across its computers
- Cassandra: NoSQL database that stores data across many computers
- Attention Is All You Need: The Transformer model for language tasks
- Kafka: Storing and sending streams of events
- FoundationDB: Distributed database that keeps data correct during updates
- Amazon Aurora: Cloud database that keeps storage and compute apart
- Spanner: Google's database that keeps data the same in many regions
- MapReduce: Processing large data sets in parallel
- Shard Manager: Meta's system for assigning and moving data shards
- Dapper: How Google traces requests across services
- Flink: One engine for live and stored data
- A Comprehensive Survey on Vector Databases: Overview of vector database designs and search methods
- Zanzibar: Google's global system for access permissions
- Monarch: Google's in-memory time series database
- Thrift: Generate code for services in different languages
- Bitcoin: Digital money sent directly between users
- WTF - Who to Follow Service at Twitter: How Twitter (now X) recommends people to follow
- MyRocks: MySQL storage engine built on LSM-Tree
- GoTo Considered Harmful: Dijkstra's case for structured code over goto
- Raft Consensus Algorithm: How computers agree on one value; easier than Paxos
- Time Clocks and Ordering of Events: Ordering events across computers without a shared clock
The best NLP papers from 2015 to now
- πDownloaded PDFS - 100 files | Study notes
- The best NLP papers: π¬List of important NLP papers
Data Science (ML/NN)
- Awesome_Math_Books: List of math books
- Free eBooks for ML, Data Science & AI: Newsletter list of 30 free ML books
- ML and LLM system design: Database of 800 case studies from 150+ companies
eBooks for ML, Data Science & AI
π indicates a free full-text online edition, ebook, or author-provided preprint, not necessarily a free print edition. Books offered on a "read-first, buy-later" basis are not marked.
##### Machine Learning & Deep Learning
- π Deep Learning β Ian Goodfellow, Yoshua Bengio, Aaron Courville
- π Dive into Deep Learning β Aston Zhang et al.
- The Hundred-Page Machine Learning Book β Andriy Burkov
- π Machine Learning Yearning β Andrew Ng
- π Understanding Machine Learning β Shai Shalev-Shwartz, Shai Ben-David
- Machine Learning for Humans β Vishal Maini, Samer Sabri
- π Approaching (Almost) Any ML Problem β Abhishek Thakur
- π Machine Learning For Dummies β Judith Hurwitz, Daniel Kirsch
- π Hands-On Machine Learning with R β Boehmke & Greenwell
- Machine Learning Engineering β Andriy Burkov
- π Machine Learning Systems: Introduction to Machine Learning Systems β Vijay Janapa Reddi
- π Mathematics for Machine Learning β Deisenroth, Faisal, Ong
- π The Elements of Statistical Learning β Friedman, Tibshirani, Hastie
- π An Introduction to Statistical Learning β James et al.
- π Pattern Recognition and ML β Christopher Bishop
- π Information Theory, Inference, and Learning Algorithms β David J. C. MacKay
- π Algebra, Topology, Calculus & Optimization for CS/ML β Jean Gallier
- π Mathematical Methods for CV, Robotics, Graphics β Stanford
- π Math Foundations for Computer Science β Stanford CS103
- π @mathtalent Lecture Notes β Math-focused CS notes
- π Algorithms for Artificial Intelligence β Moss
- π Calculus for Mathematicians, Computer Scientists, and Physicists β Andrew D. Hwang
- π Probabilistic ML: An Introduction β Kevin P. Murphy
- π Probabilistic ML: Advanced Topics β Kevin P. Murphy
- π Applied Causal Inference β Uday Kamath et al.
- π Reinforcement Learning: An Introduction β Sutton & Barto
- π Deep Learning on Graphs β Yao Ma & Jiliang Tang
- π Natural Language Processing with Python β Bird, Klein, Loper: NLP with the NLTK library
- π Computer Vision: Models, Learning, and Inference β Simon J.D. Prince: Probabilistic approach to computer vision
- π Interpretable Machine Learning β Christoph Molnar: Explaining model predictions
- ML Interpretability β Patrick Hall & Navdeep Gill: Short primer on explainability
- π Automated Machine Learning β Frank Hutter et al.: Automating model selection and tuning
- π Feature Engineering and Selection β Max Kuhn & Kjell Johnson: Improving model inputs
- π Deep Learning Interviews β Shlomo Kashani, Amir Ivry: Interview questions
- π Boosting: Foundations and Algorithms β Schapire & Freund: Theory of boosting methods
- π A Brief Introduction to ML for Engineers β Osvaldo Simeone: Short ML overview for engineers
Github for ML, Data Science & AI
##### Foundational Learning
- 30u30: Master Ilya's 30 Foundational AI Papers in 30 Days
- Machine Learning for Beginners β Microsoft: 12-week classical ML course
- The Data Engineering Handbook: Data engineering resources and learning path
- Virgilio β Data Science Curriculum: Study plan with linked learning resources
- Open Source Data Science Masters: Self-study plan similar to a master's degree
- π Python Data Science Handbook: Jupyter notebooks for NumPy, Pandas, Matplotlib, and scikit-learn
- Data Science Python Notebooks: Notebooks on deep learning, Spark, and big data tools
- Awesome Data Science: Learning resources and career paths
- Awesome Machine Learning: Machine learning libraries by language
- Interactive Educational Data Science Python Dashboards: Interactive demos of data science concepts
- Deep Learning Book (MIT): PDF of the Goodfellow, Bengio, and Courville textbook
- π fastai Book (fastbook) | Fast.ai courses: Notebook-based deep learning course, code first
- π Mathematics for Machine Learning: Book website and materials
- labml.ai β Deep Learning Paper Implementations: Paper implementations with side-by-side notes
- Deep Learning Models by Rasbt: Model implementations in PyTorch and TensorFlow notebooks
- Machine Learning Tutorials: Tutorials and articles by topic
- Machine Learning ZoomCamp: Code for the ML Bookcamp book and course
- Applied ML β Papers & Blogs: How companies use ML in production
- Awesome Production Machine Learning: Tools for deploying and monitoring ML
- Data Science Project Template (Cookiecutter): Project template with a ready folder structure
- 365 Data Science Flashcards: Flashcards for data science terms
- openpilot β Driver Assistance System: Open-source driver assistance software for cars
- CS 229 ML Cheatsheets: Stanford CS 229 summary sheets
- ML Interview Guide: Interview preparation topics
- Data Science Interview Q\&A: Interview questions and answers
- StatQuest by Josh Starmer: Statistics and ML videos
- Machine Learning Mastery by Jason Brownlee: ML tutorials with code examples
- Papers With Code: π¬Papers linked to code and benchmarks
Terminology and Comparisons
- See Glossary.md: an overview of key terminology, definitions, and comparisons between related concepts.
Citation
^ back to top ^