3 repos
System & Application Design — Software Engineering & Architecture
We curate 3 GitHub repositories matching software engineering & architecture · System & Application Design. Refine with filters or upvote what's useful.
System & Application Design — Software Engineering & Architecture
- donnemartin/system-design-primer
donnemartin/system-design-primer
335,906This repository is a comprehensive educational resource designed to help software engineers master large-scale system design and prepare for technical interviews. It provides a structured curriculum that covers the fundamental principles of distributed systems, backend engineering, and object-oriented design through a combination of study guides, architectural patterns, and practical problem-solving methodologies. The project distinguishes itself by applying theoretical concepts to real-world scenarios through case-study-based modeling and a constraint-driven analysis framework. It emphasizes trade-off-centric documentation, which highlights the inherent conflicts between architectural patterns to guide informed decision-making. To reinforce learning, the repository includes an active-recall study mechanism featuring curated flashcards and a hierarchical taxonomy that organizes complex concepts into manageable modules. The resource covers a broad capability surface, including strategies for scaling cloud infrastructure, managing data consistency, and optimizing system performance through caching, load balancing, and asynchronous communication. It also provides extensive object-oriented design exercises and structured interview preparation materials, such as back-of-the-envelope calculations and step-by-step design frameworks for common high-throughput services. The documentation is organized as a modular reference guide, allowing users to navigate through foundational topics and advanced architectural discussions at their own pace.
Pythondesigndesign-patternsdesign-system - CyC2018/CS-Notes
CyC2018/CS-Notes
183,686This repository serves as a comprehensive educational resource covering core computer science concepts, software engineering principles, and system architecture. It provides detailed explanations of fundamental data structures and algorithms, alongside in-depth analysis of database management systems, including transaction properties, storage engines, and concurrency control mechanisms. The collection also offers extensive documentation on the Java programming language, ranging from collection internals and memory management to concurrency primitives and object-oriented design patterns. Furthermore, it covers essential networking protocols, operating system fundamentals such as process management and file systems, and architectural patterns for distributed systems. Development tools, including version control and project configuration utilities, are also documented to support standard software engineering workflows.
algorithmcomputer-sciencecpp - mtdvio/every-programmer-should-know
mtdvio/every-programmer-should-know
97,839This project is a comprehensive, community-curated knowledge base designed to support software engineers in mastering both fundamental computer science principles and practical industry methodologies. It serves as a centralized reference library that aggregates technical resources, academic literature, and professional guidance to facilitate systematic skill acquisition across the entire software development lifecycle. What distinguishes this repository is its holistic approach to the engineering profession, which bridges the gap between theoretical knowledge and career-oriented development. Beyond core technical topics like system architecture, distributed systems, and algorithmic design, the project provides extensive guidance on professional growth, including resume optimization, soft skills, and strategies for maintaining mental health and productivity in demanding technical environments. The repository covers a broad capability surface, ranging from low-level system concerns such as memory management and data structures to high-level practices in platform engineering and software craftsmanship. It also incorporates resources for collaborative development, security protocols, and interactive learning, ensuring that developers have access to authoritative information for both daily problem-solving and long-term career advancement. The content is structured as a hierarchical collection of markdown files, maintained through a version-controlled, community-driven workflow that ensures the information remains accurate and relevant as industry standards evolve.
cc-bycollectioncomputer-science