- Sop (std operation procedure)
- Rca (root cause analysis)
- Modular
- Scalable
- Scheme agnostic (No SqL) : No Schema
- Model
- Decouple
- Infrastructure
- Containerised
- Abstract
- Monolith
- Flexible
- Coupling
- Cohersion : Related to each other Eg:Car and Wheels
- Highly available
- Serveless
- Test Driven
- Event Driven
- Domain Driven
- Message Bus
- Adapter
- Strictly Type Code
- Dataclass
- Unique identifier
- Value object pattern
- Type parameter
- Provision
- Disguising the intent and source
- class memebers
- boilerplate
- Time Complexity and Space Complexity
- race condition
- ABstraction : Calling class need not no the inner workings of called class
- polymorphism (Bird b = new Pigeon();)
- Encapsulation : private , protected
- Inheritance :
- API based
- backend
- Endpoint
- Interface
- Loosely coupled : Modifying one does not impact other
- Oltp (fast write, 3nf), olap( fast read, dimension model ie., Star scheme)
- webhook : external services to be notified when certain events happen
- increamental
- Edge conditions
- Min viable prod
- Dependency inversion(dip) high level mod don't depend on low lvl
- Orm
- Dependency
- Infrastructure
- Pipeline
- Build
- Deployment
- Delegate
- Annotations
- Defensive code (inside if / try catch)
- promise
- compliance Issue
- Propose
- System Designs
- mern stack(mongo, express,react,node)
- Npm - node package manager
- Node js is a compiler for processing javascript outside browsers.
- intermittent
- reproducible
-https://github.com/j-thepac/Authorization
- Trunck Based : User creates a development branch and merges to Main/Master
- Git Flow: Has Feature branch, HotFix branch , Version Branches ,
-
Git merge : Creates 1 new commit containing new changes from Feature Branch
-
Git Rebase: New commits from Feature Branch on top of Main branch
-
git squash: Remove unwanted commits before final merge
git rebase -i HEAD~5 #Change pick to squash
-
cherry-pick: To use intermitten commit of 1 branch into another
git log branch --oneline #copy the hash git cheery-pick hash1 hash2
- https://labs.play-with-docker.com/
- https://gist.github.com/j-thepac/da8d309a312382a4eb3949e0aad27c0b
๐ฌ. ๐๐ผ๐ฎ๐ฑ ๐๐ฎ๐น๐ฎ๐ป๐ฐ๐ฒ๐ฟ: A load balancer efficiently distributes incoming network traffic across multiple servers to ensure no single server bears too much load.
๐ญ. ๐๐ฃ๐ ๐๐ฎ๐๐ฒ๐๐ฎ๐: An API Gateway acts as a single entry point for all client requests, providing a unified interface to various microservices.
๐ฎ. ๐๐ฎ๐ฐ๐ต๐ฒ: Caching stores recently accessed data for speedy retrieval, reducing the load on databases and improving response times.
๐ฏ. ๐๐๐ก: A Content Delivery Network (CDN) stores static content closer to users to minimize latency and speed up content delivery.
๐ฐ. ๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐๐ถ๐น๐ฒ ๐ฆ๐๐ผ๐ฟ๐ฎ๐ด๐ฒ: Distributed file storage ensures data is redundantly stored across multiple locations for fault tolerance and easy access.
๐ฑ. ๐ฆ๐ฒ๐ฎ๐ฟ๐ฐ๐ต ๐๐ป๐ฑ๐ฒ๐ : Using a search index like Elasticsearch allows for scalable and fast search capabilities across large datasets.
๐ฒ. ๐ก๐ผ๐๐ถ๐ณ๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป ๐ฆ๐ฒ๐ฟ๐๐ถ๐ฐ๐ฒ: A notification service handles the delivery of messages or alerts to users across different platforms and devices.
๐ณ. ๐๐ฎ๐๐ฎ ๐ฃ๐ฟ๐ผ๐ฐ๐ฒ๐๐๐ถ๐ป๐ด ๐ฆ๐๐๐๐ฒ๐บ๐: Data processing systems like Hadoop and Spark analyze large volumes of data, enabling scalable and complex computational operations.
๐ด. ๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐ฆ๐ฐ๐ต๐ฒ๐ฑ๐๐น๐ฒ๐ฟ: A distributed scheduler orchestrates and manages the execution of distributed tasks across various computing resources.
๐ต. ๐ ๐ฒ๐๐ฎ๐ฑ๐ฎ๐๐ฎ ๐ฆ๐ฒ๐ฟ๐๐ฒ๐ฟ: The metadata server stores information about the structure of data, enabling efficient access and management.
๐ญ๐ฌ. ๐๐น๐ผ๐ฐ๐ธ ๐ฆ๐ฒ๐ฟ๐๐ฒ๐ฟ: Block servers manage the storage blocks in distributed file systems, which helps in data replication and retrieval.
๐ญ๐ญ. ๐๐ถ๐๐๐ฟ๐ถ๐ฏ๐๐๐ฒ๐ฑ ๐๐ผ๐ด๐ด๐ถ๐ป๐ด: Distributed logging collects logs from various services in a centralized manner for monitoring and troubleshooting.
๐ญ๐ฎ. ๐ฅ๐ฒ๐ฝ๐น๐ถ๐ฐ๐ฎ๐๐ถ๐ผ๐ป ๐ฎ๐ป๐ฑ ๐ฃ๐ฎ๐ฟ๐๐ถ๐๐ถ๐ผ๐ป๐ถ๐ป๐ด: Replication ensures data availability and durability, while partitioning helps in scaling databases by distributing data across different nodes.
-
Sharding When data is ingested into dedicated SQL pool, the data is sharded into distributions to optimize the performance . Types:Hash, Round Robin , Replicate
-
**ERD (Entity RelationShip Diagram ) ** - used in Databases / Warehouses
If asked for all permutations/subsets :
- Backtracking
- Subset Pattern
def fn( s: str) -> int: #s=123
r=[""]
for i in s:
for j in r:
r=r+[i+j]
print(r) #['', '1', '2', '21', '3', '31', '32', '321']
If asked to find part of String,Array,LinkedList
- 2 pointers (sliding Window) Eg: 3. Longest Substring Without Repeating Characters ,167: Two Sum, 15: 3SUM
def fn(s: str) -> int:
t1,t2,mx=0,1,0
while t2<len(s)+1:
temp=s[t1:t2]
if(len(set(temp)) == len(temp)): mx=max(len(temp),mx)
else:t1+=1
t2+=1
return mx
If asked to Search in sorted /Linked List
- Binary search
- Eg:Bisect Left, Bisect Right implementation
- Eg: 33.Search in Rotated Sorted Array
If given a tree/Grapth (recursion):
- DFS (use PreOrder,PosOrder):104. Max dept of Binary Tree
- BFS(use Queue): 102. Level order Traversal
If must solve in-place :
- Swap corresponding values
- Store one or more different values in the same pointer
If asked for maximum/minimum subarray/subset/options :
- Dynamic programming (memoization)
- Greedy
If asked for top/least K items :
- Top K(Heap)
If Dependency Exists (input is DAG):
- Topological Pattern: 207 Course Schedule
Greedy Brute Force