Toggle Menu
Home
Portfolio
Blog
Contact
See my recent blogs below
Reading and Sending Data
Receive vs Send buffers
How Connections are Established
SYN/Accept Queues
Process vs Thread
What is the difference?
WebRTC
Web Real-Time Communication
gRPC
Taking HTTP/2 to the next level
HTTP/3 HTTP over QUIC Multiplexed streams
The web is constantly evolving, and with it, the protocols that govern how data is exchanged. HTTP/3 is the latest iteration of the Hypertext Transfer Protocol, promising to address some of the shortcomings of its predecessors and improve web performance
HTTP/2 Improving HTTP/1.1
As software engineers, we constantly seek ways to optimize web performance and efficiency.
Websockets
Embracing Real-Time Communication: The Power of WebSockets
HTTP/1.1
Simple web protocol lasts decades
Transport Layer Security (TLS)
A crucial protocol that ensures secure communication over the internet. It plays a fundamental role in safeguarding data integrity, confidentiality, and authenticity. Let's delve into the key components and concepts surrounding TLS to understand its significance in today's digital landscape
TCP (Transmission Control Protocol) i
A fundamental communication protocol in computer networks, operating at Layer 4 of the OSI model.
Title: Understanding the User Datagram Protocol (UDP) in Networking
User Datagram Protocol (UDP) is a fundamental Layer 4 protocol that plays a crucial role in network communication. Let's explore the key features, use cases, and pros and cons of UDP to gain a comprehensive understanding of this protocol.
Title: Understanding the OSI Model and Its Significance in Networking
In the world of networking, the Open Systems Interconnection (OSI) model serves as a fundamental framework for understanding and implementing communication protocols.
Demystifying Protocols: The Unsung Heroes of Communication
In the intricate ballet of technology, protocols operate as the silent choreographers, dictating the flow of data and guiding interactions between devices and applications. Whether we're streaming videos, sending messages, or browsing the web, these unseen rules govern how information travels seamlessly across networks. But what makes a good protocol? What aspects should be considered when designing these crucial communication systems?
Beyond Thick Clients and Burdensome Backends: Embracing the Sidecar Pattern for Agile Microservices
In the intricate dance of modern software development, bulky applications and bloated backend libraries can easily become anchors, hindering agility and scalability. The sidecar pattern emerges as a compelling solution, gracefully decoupling communication from applications, empowering you to craft lean, language-agnostic, and adaptable microservices.
Demystifying State: Unveiling the Nuances of Stateful vs. Stateless Systems
In the intricate world of software development, the concept of state plays a crucial role, influencing how data is stored, accessed, and managed. When choosing the architecture for your backend, understanding the distinction between stateful and stateless systems is paramount. Let's embark on a journey to dissect these concepts and empower you to make informed decisions for your applications.
Beyond One-to-One: Unlocking the Power of Publish-Subscribe Communication
The digital landscape buzzes with constant data exchange, and choosing the right communication model is crucial. While the well-established request-response paradigm excels in many scenarios, its limitations become apparent when dealing with multiple receiving parties and asynchronous message delivery.
Unleashing the Dynamic Power of Server-Sent Events
The modern web thrives on instantaneous interactions and seamless data delivery. While the venerable request-response paradigm lays the foundation, its limitations emerge when confronted with persistent updates and server-driven notifications.
Long Polling: A Refined Approach for Extended Communication in Web Applications
The web development landscape pulsates with a diverse range of communication requirements. While classic request-response models excel for rapid interactions, scenarios encompassing long-running tasks or server-driven notifications necessitate more nuanced approaches. In this realm, long polling emerges as a sophisticated technique, balancing near-real-time updates with resource efficiency.
Short Polling: A Pragmatic Approach for Long-Running Requests and Asynchronous Notifications
Efficient communication between clients and servers is a cornerstone of modern web applications, particularly when delivering real-time updates to users. Among various communication patterns, short polling emerges as a simple and effective solution for managing real-time updates, particularly for tasks that take a considerable amount of time to process.
Push Model in Backend Execution
A push model is a type of backend execution where the server sends data to the client without the client explicitly requesting it. This is in contrast to the request-response model, where the client sends a request to the server and the server responds with data.
Navigating the Threads of Programming: A Comprehensive Guide to Synchronous and Asynchronous Approaches
In the realm of software development, the choice between synchronous and asynchronous programming often presents a pivotal decision that can significantly impact the efficiency, scalability, and user experience of an application. Understanding the nuances of these two fundamental programming paradigms is crucial for crafting robust and performant solutions.
Beyond the Basics: Demystifying the Request-Response Model
For those building the digital world, understanding communication frameworks is paramount. Among the most fundamental is the request-response model, a cornerstone of countless applications, from the websites you visit to the databases you query. Its simplicity and ubiquity make it a must-know for any tech professional
Load Balancing at Layer 4 vs Layer 7
None
Secure Communication with TLS: A Comprehensive Overview
In the dynamic and increasingly interconnected digital landscape, safeguarding sensitive information and ensuring secure communication have become paramount concerns.
Decoding the Enigmatic Domain Name System (DNS) - Illuminating the Hidden Foundation of the Internet
The internet, an intricate tapestry of interconnected devices, serves as the backbone of modern communication and information exchange. While users effortlessly navigate through this vast digital landscape, the underlying mechanics remain largely unseen – an invisible orchestra conducting the symphony of online interactions.
Demystifying NAT: A Deep Dive into Network Address Translation
In the realm of computer networking, few concepts have as profound an impact as Network Address Translation (NAT). This ubiquitous technology, employed by countless devices, organizations, and internet service providers (ISPs), plays a pivotal role in facilitating seamless connectivity among private networks and the vast expanse of the public internet.
Unveiling the Secrets of Congestion Control: A Journey Through TCP's Wisdom
Delve into the intricacies of congestion control, the cornerstone of reliable data transmission. Join our wise wizard as he guides you through the principles of TCP's slow start and congestion avoidance algorithms, revealing the magic behind efficient and stable network communication.
Unveiling the Mystery of Flow Control: A Journey into TCP's Sliding Window
Delve into the depths of TCP's flow control mechanism and discover how it ensures smooth and efficient data transmission. Join our wizard as he guides you through the intricate workings of sliding windows, window scaling, and the importance of flow control in maintaining network stability.
Unveiling the Anatomy of a TCP Segment: A Deep Dive into the Nuts and Bolts of Reliable Data Transfer
In the realm of networking, TCP (Transmission Control Protocol) stands as a stalwart, ensuring reliable data transmission between devices.
Address Resolution Protocol (ARP)
A communication protocol used to map IP addresses to MAC addresses
ICMP (Internet Control Message Protocol)
A fundamental layer 3 (network) protocol that is used to send error messages and informational messages between devices on a network.
Navigating the Network Landscape: Decoding IP Addresses, Subnets, and the Default Gateway
In this captivating expedition into the world of computer networking, we'll unravel the intricacies of IP addresses, subnets, and the default gateway, laying a solid foundation for understanding how data traverses the digital realm.
Navigating the Digital Highway: Demystifying Host-to-Host Communication
n this exhilarating journey into the heart of network communication, we'll unravel the intricacies of host-to-host communication, the foundation upon which the digital world thrives.
Dive into the Revolutionary Client-Server Architecture
In the realm of software development, the client-server architecture stands as a monument to innovation, a paradigm shift that transformed the way applications were designed and executed.
HTTP Request Processing: A Comprehensive Overview
The life cycle of an HTTP request involves a series of intricate steps that transform raw bytes into meaningful responses.
AsyncIO-Sockets
Using the selectors module to build a socket event loop
AsyncIO-3
Running Blocking APIs
Futures
Introducing futures
Coroutines and Task
Introducing to coroutines
AsyncIO-2
Understanding the global interpreter lock
AsyncIO-1
Understanding processes, threads, multithreading, and multiprocessing
Fastapi On Gunicorn
Run fastapi app on clouds that only provide WSGI
HACK :)
Hack to deploy multiple accounts on the same site
Docker Python enviroment
The fancy way to create Python docker enviroments
Generate a requirements.txt from pipenv
An smart way to generate your requirements.txt from pipenv using the cmd
Parse Only What's Needed
Even with an optimized parser, creating the document model takes time
Saving a Class into JSON file
How to save a Python Class into a JSON file