been sitting on this one for a while. finally put it into words. give it a read if you're into this kind of thing. happy hacking :)
https://t.co/hDz8EDBJcp
Just wrote about an interesting problem I've been researching: CSS collisions in microfrontends are actually an ownership election problem in distributed systems. https://t.co/Ik61qP4HGa
Finally wrote down everything I know about CSS variablesโthe -- prefix, var(), inheritance, and scoping.
Short read if you want to level up your theming game:
https://t.co/rbgcldoThy
What CSS variable techniques do you use that most devs don't know about?
๐ New article just dropped: Build Fast, Change Easy.
Why your React apps should depend on interfacesโnot concrete implementations.
Itโll save you pain later. Promise.
๐
https://t.co/vaau5xRRHT
System Design Cheatsheet
System design is key to building scalable, reliable, and efficient applications. Hereโs a breakdown of essential concepts:
1. Fundamentals of System Design
Scalability, availability, and reliability ensure systems can handle growth and maintain performance. Latency, throughput, and the CAP theorem define system trade-offs.
2. Load Balancing
Techniques like round robin, least connections, and consistent hashing distribute traffic efficiently across servers to optimize performance.
3. Databases
SQL is structured and ACID-compliant, while NoSQL is flexible and scalable. Scaling strategies include vertical scaling, sharding, and replication.
4. Message Queues & Event-Driven Systems
Kafka, RabbitMQ, and Pub/Sub models enable asynchronous communication for high-throughput and real-time processing.
5. Caching Strategies
Write-through and write-back caching improve data access speed, while eviction policies like LRU, LFU, and FIFO manage cache efficiency.
6. API & Communication
REST, GraphQL, gRPC, and WebSockets facilitate data exchange and real-time communication between distributed systems.
Explore more in the image below.
Follow me at @goyalshaliniuk for more such information !
Just shipped my first article! ๐
About that moment when your clean React component becomes an analytics management center... and how to fix it without losing your sanity.
https://t.co/PbKWMi7AYw
7 must-know runtime complexities for coding interviews:
1. ๐(1) - ๐๐จ๐ง๐ฌ๐ญ๐๐ง๐ญ ๐ญ๐ข๐ฆ๐
- The runtime doesn't change regardless of the input size.
- Example: Accessing an element in an array by its index.
2. ๐(๐ฅ๐จ๐ ๐ง) - ๐๐จ๐ ๐๐ซ๐ข๐ญ๐ก๐ฆ๐ข๐ ๐ญ๐ข๐ฆ๐
- The runtime grows slowly as the input size increases. Typically seen in algorithms that divide the problem in half with each step.
- Example: Binary search in a sorted array.
3. ๐(๐ง) - ๐๐ข๐ง๐๐๐ซ ๐ญ๐ข๐ฆ๐
- The runtime grows linearly with the input size.
- Example: Finding an element in an array by iterating through each element.
4. ๐(๐ง ๐ฅ๐จ๐ ๐ง) - ๐๐ข๐ง๐๐๐ซ๐ข๐ญ๐ก๐ฆ๐ข๐ ๐ญ๐ข๐ฆ๐
- The runtime grows slightly faster than linear time. It involves a logarithmic number of operations for each element in the input.
- Example: Sorting an array using quick sort or merge sort.
5. ๐(๐ง^2) - ๐๐ฎ๐๐๐ซ๐๐ญ๐ข๐ ๐ญ๐ข๐ฆ๐
- The runtime grows proportionally to the square of the input size.
- Example: Bubble sort algorithm which compares and potentially swaps every pair of elements.
6. ๐(2^๐ง) - ๐๐ฑ๐ฉ๐จ๐ง๐๐ง๐ญ๐ข๐๐ฅ ๐ญ๐ข๐ฆ๐
- The runtime doubles with each addition to the input. These algorithms become impractical for larger input sizes.
- Example: Generating all subsets of a set.
7. ๐(๐ง!) - ๐ ๐๐๐ญ๐จ๐ซ๐ข๐๐ฅ ๐ญ๐ข๐ฆ๐
- Runtime is proportional to the factorial of the input size.
- Example: Generating all permutations of a set.
โป๏ธ Repost to help others in your network.