Software Engineering

System design, distributed systems, clean code, and core CS fundamentals — curated links, grouped topics, and structured reference notes.

18Items3Types

Read-only public collection

Browse public collections
link

Razorpay Engineering Blog

Engineering writing from a major Indian fintech company.

Software EngineeringOpen link ↗
link

Zerodha Tech Blog

India's largest broker's engineering blog — large-scale Postgres, Go, and monitoring infrastructure posts.

Software EngineeringOpen link ↗
note

CAP Theorem

In a distributed data store you can only guarantee two of three properties: Consistency, Availability, and Partition tolerance. - Network partitions happen in real systems, so P is effectively non-negotiable — the real choice is between C and A during a partition - **CP systems** (traditional RDBMS clusters, ZooKeeper) sacrifice availability during a partition - **AP systems** (Cassandra, DynamoDB) sacrifice strong consistency, favoring eventual consistency instead - Coined by Eric Brewer in 2000; formally proven by Gilbert & Lynch in 2002

Software Engineering
note

ACID vs BASE

Two competing philosophies for how a data store handles consistency versus scale. - **ACID** (traditional RDBMS): Atomicity, Consistency, Isolation, Durability — strong guarantees, used in transactional systems - **BASE** (NoSQL/distributed): Basically Available, Soft state, Eventual consistency — favors availability and scale over immediate consistency - ACID trades scalability for correctness guarantees; BASE trades immediate correctness for horizontal scale - Pick by domain: banking and payments → ACID; social feeds, caches, analytics → BASE is often acceptable

Software Engineering
note

Idempotency

An operation is idempotent if performing it multiple times has the same effect as performing it once — critical when network retries are inevitable. - HTTP GET, PUT and DELETE are defined as idempotent by spec; POST is not - Retries after a timeout are common in distributed systems — the caller often can't tell if the first attempt actually succeeded - Common implementation: an idempotency key attached to write operations (e.g. payment APIs) so a retried request is deduplicated server-side

Software Engineering
link

Coding Interview University

337k-star complete CS study plan covering roughly 75% of a university CS curriculum, built for interview prep.

Software EngineeringOpen link ↗
link

The Practical Test Pyramid

Martin Fowler's canonical, practitioner-grade explanation of unit/integration/E2E test balance.

Software EngineeringOpen link ↗
note

Big-O Complexity Classes

Big-O describes the worst-case growth of an algorithm's runtime or space relative to input size n. Used to compare scalability, not raw speed on small inputs. - **Common classes, fastest to slowest:** O(1) constant → O(log n) logarithmic → O(n) linear → O(n log n) linearithmic → O(n²) quadratic → O(2ⁿ) exponential - Binary search runs in O(log n); a good hash table lookup runs in O(1) average case - Nested loops over the same input typically produce O(n²) - Two separate loops (not nested) over the same input is O(n), not O(n²) — a common misjudgment

Software Engineering
note

SOLID Principles

Five object-oriented design principles intended to make software easier to maintain and extend. - **S — Single Responsibility:** a class or module should have exactly one reason to change - **O — Open/Closed:** open for extension, closed for modification - **L — Liskov Substitution:** subtypes must be substitutable for their base types without breaking correctness - **I — Interface Segregation:** prefer several small, specific interfaces over one large general one - **D — Dependency Inversion:** depend on abstractions, not concretions; high-level modules shouldn't depend on low-level details

Software Engineering
topic

Clean Code & Software Craftsmanship

**Curated links on clean code & software craftsmanship:** - [Clean Coder Blog](https://blog.cleancoder.com/) Robert "Uncle Bob" Martin's official blog on craftsmanship, TDD and professionalism. - [What Software Craftsmanship Is About](https://blog.cleancoder.com/uncle-bob/2011/01/17/software-craftsmanship-is-about.html) Uncle Bob's foundational essay defining the craftsmanship movement. - [Clean Code & SOLID: Uncle Bob's Practical Guide](https://cleancodeguy.com/blog/robert-martin-uncle-bob) Practical walkthrough of Clean Code and SOLID principles. - [The Clean Code Handbook](https://www.freecodecamp.org/news/the-clean-code-handbook/) freeCodeCamp's practical guide to writing maintainable code for agile teams. - [Five Takeaways from Clean Code](https://www.karllhughes.com/posts/five-takeaways-from-clean-code-a-handbook-of-agile-software-craftsmanship) Concise, practitioner-focused summary of the book's core lessons.

Software Engineering
topic

Distributed Systems Fundamentals

**Curated links on distributed systems fundamentals:** - [Foundational Distributed Systems Papers](http://muratbuffalo.blogspot.com/2021/02/foundational-distributed-systems-papers.html) Chronological, subject-classified list of the field's must-read papers, with commentary. - [Study These 10 Papers and You'll Understand Distributed Systems Better](https://medium.com/@harishsingh8529/study-these-10-papers-and-youll-understand-distributed-systems-better-than-your-manager-21c82f904eba) Practitioner-curated top-10 papers for grasping distributed systems deeply. - [Distributed Systems Course Reading List](https://backendology.com/2018/09/10/distributed-systems-course-reading-list/) A hand-built syllabus/reading list for a full course on the subject.

Software Engineering
topic

Git & Version Control Mastery

**Curated links on git & version control mastery:** - [Atlassian Git Cheat Sheet](https://www.atlassian.com/git/tutorials/atlassian-git-cheatsheet) Well-maintained reference covering basic through advanced Git workflows. - [GeeksforGeeks Git Cheat Sheet](https://www.geeksforgeeks.org/git/git-cheat-sheet/) Comprehensive command reference including DevOps integration. - [freeCodeCamp Git Cheat Sheet (50 commands)](https://www.freecodecamp.org/news/git-cheat-sheet/) Beginner-to-advanced command reference with explanations. - [GitHub Official Education Git Cheat Sheet (PDF)](https://education.github.com/git-cheat-sheet-education.pdf) GitHub's own official one-page cheat sheet.

Software Engineering
link

roadmap.sh

The most-starred open-source project on GitHub: interactive, community-curated learning roadmaps for every dev role and skill.

Software EngineeringOpen link ↗
topic

System Design Interview Prep

**Curated links on system design interview prep:** - [The System Design Primer](https://github.com/donnemartin/system-design-primer) The most-starred open-source repo for learning system design: diagrams, FAQs, problem breakdowns. - [AlgoMaster System Design Resources](https://github.com/ashishps1/awesome-system-design-resources) Actively maintained curated list by an ex-Amazon engineer, organized by concepts, interview problems, and case studies. - [awesome-distributed-systems](https://github.com/theanalyst/awesome-distributed-systems) Curated list of distributed systems papers, courses and articles feeding directly into system design prep. - [Best System Design Resources](https://github.com/javabuddy/best-system-design-resources) Community-collected resource list for system design, software architecture and interview prep. - [system-design-interview (GitHub Topic)](https://github.com/topics/system-design-interview) Aggregated topic page surfacing dozens of active system-design repos.

Software Engineering