- 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
Software terminologies and concepts, software architecture overview
Summarized the keywords and solutions have faced in my learning and experience.
- Full Version
Software_Architecture_Mindmap.png
Three main pillars upon software architecture
-
Modern Application Development
-
Cloud Computing (AWS/Azure/GCP)
-
Data Science (ML/NN)
and
Numerous technologies and methodologies.
ⓒ 2022. (https://github.com/kimtth) all rights reserved.
This mindmap created by https://app.mindmapmaker.org/
- System Design 101: ByteByteGo
- Awesome Lists: 😎 Awesome lists about all kinds of interesting topics /
awesome.re
/ github topic - Awesome Software Architecture (simskij)
- Awesome Software Architecture: A curated list of awesome articles, videos, and other resources to learn and practice software architecture, patterns, and principles
- Software Architecture Books: A comprehensive list of books on Software Architecture
- System Design: Learn how to design systems at scale and prepare for system design interviews
- Microsoft .NET Application Architecture - Reference Apps
- Software Architecture Books
- System Design Fight Club
- System Design - Neo Kim
- Awesome System Design Resources
- InfoQ: News and Articles
- Dzone: RefCards and Trend Reports
- Thoughtworks: Technology Radar
- Microsoft Learn: Documentation and Code samples
- Trendshift: GitHub Trending repositories
- Design Gurus: Portal For Tech Interviews
- System Design Blueprint: The Ultimate Guide
-
Expand
🔹
Latency
is the response time of your application, usually expressed in milliseconds🔹
Throughput
is how many transactions per second or minute your application can handle🔹
Errors
is usually measured in a percent of🔹
Saturation
is the ability of your application to use the available CPU and Memory -
InfoQ minibooks: Architectures You’ve Always Wondered About .. 2021 / 2023 / 2024 / Cell-Based Architecture
- Web Browser Engineering: Building a basic but complete web browser from scratch
- Curated list of project-based tutorials
- Master programming by recreating your favorite technologies from scratch
- Build frontend applications at scale
- AWS to Azure services comparison
- Google Cloud to Azure services comparison
- Compare AWS and Azure services to Google Cloud
- Microsoft Azure Developer's Cheat Sheet: Every product, feature and service in the Azure family
- Azure Cloud Adoption Framework :CAF: organization-wide adoption guidance
- Azure Well-architected Framework :WAF: workload-focussed design and continuous improvement guidance
- Azure Architecture Center :AAC: architecture patterns and reference architectures
Expand
🔹 Abstractly speaking, a landing zone helps you plan for and design an Azure deployment, by conceptualizing a designated area for placement and integration of resources.
There are two types of landing zones:
1. `platform landing zone`: provides centralized enterprise-scale foundational services for workloads and applications.
2. `application landing zone`: provides services specific to an application or workload.
- Kaggle Solutions and Ideas: Collection of Kaggle Solutions and Ideas
- Best-of Machine Learning with Python: A ranked list of awesome machine learning Python libraries. Updated weekly.
- freeCodeCamp: Learn to code for free. youtube
- Ultimate Collection of 60 YouTube Courses for 21 Programming Languages
- Computer Science courses with video lectures
- Software Industry Statistics: Statista Industry Insight
- Gartner Top Strategic Technology Trends 2024
- MAD (ML/AI/Data) Landscape
- Hype Cycle for Emerging Technologies 2024
- Microsoft Digital Defense Report
- Substack Leaderboard: Newsletter
- daily.dev: Personalized news feed
- Algorithm Visualizer: Interactive Online Platform that Visualizes Algorithms from Code
- Hello Algo
- Wikipedia: List of algorithms
- OOP Design Patterns
- Dev Encyclopedia: Encyclopedia for developers / git
- Data Engineering Wiki
- Best Kubernetes Tools: Bluelight Consulting
- PostgreSQL Wiki: Don't Do This
- Power BI DAX Patterns
- Semantic Scholar > Semantic Reader
- AI by Hand
- Visualizing relationships between research: Litmaps: / Connected Papers
- Finding Papers: Ask R Discovery / scite_
- Visualizer for neural network: netron
- Excalidraw
- eraser.io: Diagram as Code
- 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
- How to Architect Software for a Greener Future
- Generative Search: Practical Advice for Retrieval Augmented Generation (RAG)
- What are the Greenest Programing Languages?
- Frugal Architect Handbook
-
General
- The Pragmatic Programmer by David Thomas and Andrew Hunt
- Modern Software Engineering by David Farley
- Code Complete by Steve McConnell
- Software Engineering at Google by Titus Winters, Tom Manshreck, and Hyrum Wright
-
Good Practices
- Clean Code by Uncle Bob Martin
- Head First Design Patterns by Eric Freeman
- Refactoring by Martin Fowler
- Design Patterns by Eric Gamma and Others
-
Data Structures and Algorithms
- Grokking Algorithms by Aditya Bhargava
- Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
- Cracking the Coding Interview by Gayle Laakmann McDowell
-
Data
- Designing Data-Intensive Applications by Martin Kleppman
- Learning SQL by Alan Beaulieu
-
Testing
- Growing Object-Oriented Software, Guided by Tests by Steve Freeman
- Unit Testing Principles, Practices, and Patterns by Vladimir Khorikov
- The Art of Unit Testing by Roy Osherove
- TDD by Example by Kent Beck
-
Software Architecture
- Fundamentals Of Software Architecture by Mark Richards and Neil Ford
- Clean Architecture by Uncle Bob Martin
- Software Architecture: The Hard Parts by Neal Ford, Mark Richards, Pramod Sadalage, and Zhamak Dehghani
- Domain-Driven Design Quickly by Abel Avram and Floyd Marinescu
- A Philosophy of Software Design by John Ousterhout
- System Design Interview by Alex Xu
- Domain-Driven Design by Eric Evans
-
Distributed Systems
- Understanding Distributed Systems by Roberto Vitillo
- Designing Distributed Systems by Brendan Burns
-
DevOps
- DevOps Handbook by Gene Kim, Patrick Debois, John Willis, and Jez Humble
- Continuous Delivery by Jez Humble and David Farley
- Accelerate by Nicole Forsgren, Jez Humble, and Gene Kim
-
Machine Learning
- The Hundred-Page Machine Learning Book by Andriy Burkov
- Designing Machine Learning Systems by Chip Huyen
- On the Criteria To Be Used in Decomposing Systems into Modules (1972): D.L. Parnas
- An Axiomatic Basis for Computer Programming (1969): C.A.R. Hoare
- Time, Clocks, and the Ordering of Events in a Distributed System (1978): L. Lamport
- Out of the Tar Pit (2006): B. Moseley, P. Marks
- Dynamo: Amazon’s Highly Available Key-value Store (2007): G. DeCandia et al.
- MapReduce: Simplified Data Processing on Large Clusters (2004): J. Dean, S. Ghemawat
- A Note On Distributed Computing (1994): J. Waldo, G. Wyant, A. Wollrath, S. Kendall
- A Metrics Suite for Object-Oriented Design (1994): S.R. Chidamber
- A Relational Model of Data for Large Shared Data Banks (1969): E.F. Codd
- Why Functional Programming Matters (1990): J. Hughes
- Here's a reading list of 70+ Distributed Systems papers mostly from conferences in just last 2 years! 70+ Distributed Systems papers [Jan 2024]
- ref [May 2024]
- Dynamo: Amazon’s Highly Available Key Value Store
- Google File System: Insights into a highly scalable file system
- Scaling Memcached at Facebook: A look at the complexities of caching
- BigTable: The design principles behind a distributed storage system
- Borg: Large Scale Cluster Management at Google
- Cassandra: A look at the design and architecture of a distributed NoSQL database
- Attention Is All You Need: Into a new deep learning architecture known as the transformer
- Kafka: Internals of the distributed messaging platform
- FoundationDB: A look at how a distributed database works
- Amazon Aurora: How Amazon provides high availability and performance
- Spanner: Design and architecture of Google’s globally distributed database
- MapReduce: A detailed look at how MapReduce enables parallel processing of massive volumes of data
- Shard Manager: Understanding the generic shard management framework
- Dapper: Insights into Google’s distributed systems tracing infrastructure
- Flink: A detailed look at the unified architecture of stream and batch processing
- A Comprehensive Survey on Vector Databases
- Zanzibar: A look at the design, implementation, and deployment of a global system for managing access control lists at Google
- Monarch: Architecture of Google’s in-memory time series database
- Thrift: Explore the design choices behind Facebook’s code-generation tool
- Bitcoin: The ground-breaking introduction to the peer-to-peer electronic cash system
- WTF - Who to Follow Service at Twitter: Twitter’s (now X) user recommendation system
- MyRocks: LSM-Tree Database Storage Engine
- GoTo Considered Harmful
- Raft Consensus Algorithm: Learn about the more understandable consensus algorithm
- Time Clocks and Ordering of Events: The extremely important paper that explains the concept of time and event ordering in a distributed system
- Deep Learning - Ian Goodfellow, Yoshua Bengio, and Aaron Courville
- Mathematics for Machine Learning - Marc Peter Deisenroth, A. Aldo Faisal, Cheng Soon Ong
- An Introduction to Statistical Learning - Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani, Jonathan Taylor
- The Elements of Statistical Learning - Jerome H. Friedman, Robert Tibshirani, and Trevor Hastie
- Probabilistic Machine Learning: An Introduction - Kevin Patrick Murphy
- Probabilistic Machine Learning: Advanced Topics - Kevin Patrick Murphy
- Understanding Machine Learning - Shai Shalev-Shwartz and Shai Ben-David
- Automated Machine Learning - Frank Hutter, Lars Kotthoff, Joaquin Vanschoren
- Applied Causal Inference - Uday Kamath, Kenneth Graham, Mitchell Naylor
- Reinforcement Learning: An Introduction - Richard S. Sutton and Andrew G. Barto
- The Hundred-Page Machine Learning Book - Andriy Burkov
- Machine Learning Engineering - Andriy Burkov
- Natural Language Processing with Python - Steven Bird, Ewan Klein, and Edward Loper
- Dive into Deep Learning - Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola
- Machine Learning Yearning - Andrew NG
- Machine Learning for Humans - Vishal Maini, Samer Sabri
- Pattern Recognition and Machine Learning - Christopher M. Bishop
- Deep Learning on Graphs - Yao Ma and Jiliang Tang
- Approaching (Almost) Any Machine Learning Problem - Abhishek Thakur
- Feature Engineering and Selection - Max Kuhn and Kjell Johnson
- Hands-On Machine Learning with R - Bradley Boehmke & Brandon Greenwell
- Deep Learning Interviews - Shlomo Kashani and Amir Ivry
- Machine Learning Interpretability - Patrick Hall and Navdeep Gill
- Interpretable Machine Learning - Christoph Molnar
- Boosting: Foundations and Algorithms - Robert E. Schapire, Yoav Freund
- A Brief Introduction to Machine Learning for Engineers - Osvaldo Simeone
- Speech and Language Processing - Daniel Jurafsky & James Martin
- Computer Vision: Models, Learning, and Inference - Simon J.D. Prince
- Information Theory, Inference and Learning Algorithms - David J. C. MacKay
- Machine Learning For Dummies - Judith Hurwitz and Daniel Kirsch
- Algebra, Topology, Differential Calculus, and Optimization Theory for Computer Science and Machine Learning
- @mathtalent Lecture Notes
- Mathematical Methods for Computer Vision, Robotics, and Graphics
- The Data Engineering Handbook
- Machine Learning for Beginners
- Machine Learning YouTube Videos
- Mathematics for Machine Learning
- Deep Learning Book
- Machine Learning ZoomCamp
- Machine Learning Tutorials
- Awesome Machine Learning
- CS 229 Machine Learning Cheatsheets
- Machine Learning Interview Guide
- Awesome Production Machine Learning
- 365 Data Science Flashcards
- ref > Virgilio | Python Data Science Handbook | Microsoft: 10 Weeks, 20 Lessons, Data Science | Data science Python notebooks | 📚 Papers & tech blog | Open Source Data Science Masters | Awesome Data Science | Data science interview questions and answers | free self-taught education in Data Science!
- data science project template
- labml.ai Deep Learning Paper Implementations: 60+ Implementations/tutorials of deep learning papers with side-by-side notes
- Deep Learning Models: A collection of various deep learning architectures, models, and tips
- fastai book: The fastai book, published as Jupyter Notebooks
- See Glossary.md: an overview of key terminology, definitions, and comparisons between related concepts.