Generate viral LinkedIn posts in your style for free.

Generate LinkedIn posts
Mohamed Abukar

Mohamed Abukar

These are the best posts from Mohamed Abukar.

6 viral posts with 17,840 likes, 258 comments, and 2,203 shares.
6 image posts, 0 carousel posts, 0 video posts, 0 text posts.

๐Ÿ‘‰ Go deeper on Mohamed Abukar's LinkedIn with the ContentIn Chrome extension ๐Ÿ‘ˆ

Best Posts by Mohamed Abukar on LinkedIn

๐Ÿฒ ๐—˜๐˜€๐˜€๐—ฒ๐—ป๐˜๐—ถ๐—ฎ๐—น ๐—”๐—ฃ๐—œ ๐—ฆ๐˜๐˜†๐—น๐—ฒ๐˜€ ๐Ÿ”€

An API style is like a secret handshake ๐Ÿค between two computers, helping them share and understand each other's messages. There are various methods of handshakes and each has its own way of sending and receiving information!

Here are the 6 most important API styles you need to know:

1๏ธโƒฃ SOAP ๐Ÿงผ

An XML-based communication protocol with strict contracts. It's mostly used over HTTP(S) ๐ŸŒ and is popular in enterprise environments ๐Ÿข.

What Engineers need to know: As a software or DevOps engineer, understanding SOAP is crucial for working in enterprise environments, especially where legacy systems still exist.

2๏ธโƒฃ REST API ๐Ÿ”„

An easy-to-understand, resource-focused API style. It uses standard HTTP methods ๐ŸŒ and often employs JSON for data.

What Engineers need to know: REST APIs are common, so mastery of their design and use is a key skill for developers and DevOps.

3๏ธโƒฃ gRPC โš™๏ธ

An API style emphasizing remote procedure calls (RPCs). It uses HTTP/2 for transport and Protocol Buffers for data serialization, making it ideal for efficient, low-latency microservices ๐Ÿ”ฌ.

What Engineers need to know: Knowledge of gRPC can help in designing and maintaining high-performing, scalable microservices.

4๏ธโƒฃ GraphQL ๐Ÿ“Š

A flexible query language for APIs allowing clients to request specific data. It was developed by Facebook and can combine data from multiple sources ๐Ÿ”„.

What Engineers need to know: Understanding GraphQL can help in creating efficient APIs that prevent over-fetching and under-fetching of data.

5๏ธโƒฃ Websocket ๐Ÿ”Œ

A protocol for real-time, bidirectional communication ๐Ÿ”„. It maintains a long-lived connection and is great for web apps needing live updates ๐Ÿ“ฒ.

What Engineers need to know: Websockets are essential for applications requiring real-time data exchange, like chat applications or real-time analytics.

6๏ธโƒฃ Webhook ๐ŸŽฃ

A server-side, event-driven mechanism. It sends HTTP callbacks (usually POST requests) when specific events occur, perfect for real-time data updates or third-party service integration ๐Ÿ”—.

What Engineers need to know: Webhooks are crucial for setting up automated workflows and integrations, a common task in DevOps and software development.

To stay ahead of the curve, software and DevOps engineers need to understand these API styles, their benefits, and their use cases. This will allow them to design and implement efficient, scalable, and functional systems. ๐Ÿš€๐Ÿ’ป

Image creds: Brij kishore Pandey

Enjoying my content on Software Engineering, DevOps and Systems Design? Follow me here >> Mohamed Abukar ๐Ÿ™๐Ÿฝ

#softwareengineering #api #architecture
Post image by Mohamed Abukar
๐Ÿ”น API Gateway - a nice example.

An API Gateway is a server that acts as an intermediary for API requests, handling tasks such as authentication, rate limiting, and routing requests to appropriate microservices. It allows decoupling of the client from the backend services and facilitates API management.

------------------------------------------------------------
๐Ÿ“Œย If you like my posts, please follow me here -ย Mohamed Abukar and hit the ๐Ÿ”” on my profile to get notifications for all my new posts.

Blog: https://blog.coderco.io/ (More Software Engineering, Systems Design & DevOps articles & blogs)

#systemdesign #softwareengineering #apigateway
Post image by Mohamed Abukar
๐—ช๐—ต๐—ฎ๐˜ ๐—ต๐—ฎ๐—ฝ๐—ฝ๐—ฒ๐—ป๐˜€ ๐˜„๐—ต๐—ฒ๐—ป ๐˜†๐—ผ๐˜‚ ๐˜๐˜†๐—ฝ๐—ฒ ๐—ฎ ๐—จ๐—ฅ๐—Ÿ ๐—ถ๐—ป๐˜๐—ผ ๐˜†๐—ผ๐˜‚๐—ฟ ๐—ฏ๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ?

The process involves fundamental components like browser, your computerโ€™s operating system, your internet service provider (ISP) , the server where you host the site and the services running on that server.

๐Ÿญ.๐˜๐จ๐ฎ ๐ญ๐ฒ๐ฉ๐ž ๐ก๐ญ๐ญ๐ฉ๐ฌ://๐ฐ๐ฐ๐ฐ.๐ญ๐ก๐ž๐ญ๐ซ๐š๐ข๐ง๐ฅ๐ข๐ง๐ž.๐œ๐จ๐ฆ/๐ฆ๐ฒ-๐ญ๐ข๐œ๐ค๐ž๐ญ๐ฌ ๐ข๐ง๐ญ๐จ ๐ฒ๐จ๐ฎ๐ซ ๐›๐ซ๐จ๐ฐ๐ฌ๐ž๐ซ ๐š๐ง๐ ๐ž๐ง๐ญ๐ž๐ซ

Here, HTTPS is a scheme, which tells the browser to make a connection to the server using TLS. www.thetrainline.com is the domain name of the site and it points to a specific IP address of a server. And /my-tickets is a random path to the resource you need.

๐Ÿฎ.ย ๐“๐ก๐ž ๐›๐ซ๐จ๐ฐ๐ฌ๐ž๐ซ ๐œ๐ก๐ž๐œ๐ค๐ฌ ๐ญ๐ก๐ž ๐œ๐š๐œ๐ก๐ž ๐Ÿ๐จ๐ซ ๐š ๐ƒ๐๐’ ๐ซ๐ž๐œ๐จ๐ซ๐ ๐ญ๐จ ๐Ÿ๐ข๐ง๐ ๐ญ๐ก๐ž ๐œ๐จ๐ซ๐ซ๐ž๐ฌ๐ฉ๐จ๐ง๐๐ข๐ง๐  ๐ˆ๐ ๐š๐๐๐ซ๐ž๐ฌ๐ฌ ๐จ๐Ÿ ๐ญ๐ก๐ž๐ญ๐ซ๐š๐ข๐ง๐ฅ๐ข๐ง๐ž.๐œ๐จ๐ฆ/๐ฆ๐ฒ-๐ญ๐ข๐œ๐ค๐ž๐ญ๐ฌ

After youโ€™ve typed the URL into your browser and pressed enter, the browser needs to figure out which server on the Internet to connect to. It looks for the IP address of the server hosting the website using the domain you typed to accomplish that. DNS lookup is done here. Here, it determines whether we can locate it in the cache. If not, DNS searches domain name servers from the root to the third level.

๐Ÿฏ. ๐—•๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐—ถ๐—ป๐—ถ๐˜๐—ถ๐—ฎ๐˜๐—ฒ๐˜€ ๐—ง๐—–๐—ฃ ๐—ฐ๐—ผ๐—ป๐—ป๐—ฒ๐—ฐ๐˜๐—ถ๐—ผ๐—ป ๐˜„๐—ถ๐˜๐—ต ๐˜๐—ต๐—ฒ ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ

TCP, is used throughout the public Internet routing to route packets from a client browser request through the router, the ISP, through an internet exchange to switch ISPs or networks, and finally to find the server with the IP address to connect to. This is an inefficient route to take to get there. Instead, a lot of websites utilise a CDN (like AWS CloudFront) to cache both static and dynamic material closer to the browser.

๐Ÿฐ. ๐—•๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐˜€๐—ฒ๐—ป๐—ฑ๐˜€ ๐˜๐—ต๐—ฒ ๐—›๐—ง๐—ง๐—ฃ ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ฒ๐˜€๐˜ ๐˜๐—ผ ๐˜๐—ต๐—ฒ ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ

Now that the browser is connected to the server, it complies with the HTTP(s) protocol's requirements for communication. To request the contents of the page, the browser first sends an HTTP request to the server. The body, headers and request line of an HTTP request are all there.

๐Ÿฑ. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€๐—ฒ๐˜€ ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ฒ๐˜€๐˜ ๐—ฎ๐—ป๐—ฑ ๐˜€๐—ฒ๐—ป๐—ฑ๐˜€ ๐—ฏ๐—ฎ๐—ฐ๐—ธ ๐—ฎ ๐—ฟ๐—ฒ๐˜€๐—ฝ๐—ผ๐—ป๐˜€๐—ฒ

The server accepts the request and determines how to handle it depending on the data in the request line, headers, and body. The server receives the material at this URL for the GET /page/ HTTP/1.1 requests, builds the response, and then delivers it back to the client with an HTTP status code.

๐Ÿฒ. ๐—•๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐—ฟ๐—ฒ๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€ ๐˜๐—ต๐—ฒ ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜

The browser checks the response headers for instructions on how to render the resource after receiving the server's response. The Content-Type header lets the browser know that an HTML resource was received in the response body.

image creds: @manekinekko

#softwareengineering #networking #dns
Post image by Mohamed Abukar
You can easily get lost with the millions of GitHub repositories out there.

๐‡๐ž๐ซ๐ž ๐š๐ซ๐ž ๐š ๐œ๐ฎ๐ซ๐š๐ญ๐ž๐ ๐ฅ๐ข๐ฌ๐ญ ๐จ๐Ÿ ๐†๐ข๐ญ๐‡๐ฎ๐› ๐ซ๐ž๐ฉ๐จ๐ฌ๐ข๐ญ๐จ๐ซ๐ข๐ž๐ฌ ๐ญ๐ก๐š๐ญ ๐ฐ๐ข๐ฅ๐ฅ ๐ซ๐ž๐š๐ฅ๐ฅ๐ฒ ๐ก๐ž๐ฅ๐ฉ ๐ฒ๐จ๐ฎ ๐ญ๐จ ๐š๐๐ฏ๐š๐ง๐œ๐ž ๐ฒ๐จ๐ฎ๐ซ ๐œ๐š๐ซ๐ž๐ž๐ซ ๐ข๐ง ๐’๐จ๐Ÿ๐ญ๐ฐ๐š๐ซ๐ž ๐„๐ง๐ ๐ข๐ง๐ž๐ž๐ซ๐ข๐ง๐ , ๐ƒ๐ž๐ฏ๐Ž๐ฉ๐ฌ, ๐’๐‘๐„ ๐š๐ง๐ ๐ฆ๐จ๐ซ๐ž! ๐Ÿ“š

1. A list of programming tutorials in which aspiring software engineers learn how to build an application from scratch.

๐Ÿ“Œย  (https://lnkd.in/enxAaRv4)

2. Contains questions and exercises on various technical topics related to DevOps and SRE

๐Ÿ“Œย ย (https://lnkd.in/eqR-Y5Pn)

3. Useful resources for Site Reliability Engineering and DevOps

๐Ÿ“Œย  (https://lnkd.in/eRJkKPmE)

4. Learn how to design large-scale systems

๐Ÿ“Œย  (https://lnkd.in/e4q_gmGK)

5. A collections of Linux SysAdmin/DevOps questions to help you getter a better understanding of Linux

๐Ÿ“Œย  (https://lnkd.in/ejnAuQtY)

6. A study guide for Software Engineers looking to get better at Data Structures & Algorithms

๐Ÿ“Œย  (https://lnkd.in/eHfVhAHA)

7. A collection of (mostly) technical things every developer should aim to know

๐Ÿ“Œ (https://lnkd.in/eYvUChpG)

8. Community driven roadmaps, articles and resources for Devs, Architects, QA and DevOps and more!

๐Ÿ“Œย  (https://lnkd.in/ew87589P)

9. Curated questions and answers to test your knowledge on Linux

๐Ÿ“Œย  (https://lnkd.in/eTjMHBHq)

10. Curated collection of resources for frontend web developers

๐Ÿ“Œ (https://lnkd.in/ekShjrRQ)

11. Learn Software Architecture, Design patterns, DDD, SOLID principles and good software practices

๐Ÿ“Œย  (https://lnkd.in/eK4vFGf9)

12. A set of guidelines for best practices, styles and methods for various programming languages.

๐Ÿ“Œย  (https://lnkd.in/ewc85mED)

#softwareengineering #coding #systemdesign #devops #sre #github
Post image by Mohamed Abukar
๐—ช๐—ต๐—ฎ๐˜ ๐—ต๐—ฎ๐—ฝ๐—ฝ๐—ฒ๐—ป๐˜€ ๐˜„๐—ต๐—ฒ๐—ป ๐˜†๐—ผ๐˜‚ ๐˜๐˜†๐—ฝ๐—ฒ ๐—ฎ ๐—จ๐—ฅ๐—Ÿ ๐—ถ๐—ป๐˜๐—ผ ๐˜†๐—ผ๐˜‚๐—ฟ ๐—ฏ๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ?

A common interview question I ask to test the depth of knowledge of interviewee.

๐Ÿญ. ๐—ฌ๐—ผ๐˜‚ ๐˜๐˜†๐—ฝ๐—ฒ ๐—ต๐˜๐˜๐—ฝ๐˜€://๐˜„๐˜„๐˜„.๐˜๐—ต๐—ฒ๐˜๐—ฟ๐—ฎ๐—ถ๐—ป๐—น๐—ถ๐—ป๐—ฒ.๐—ฐ๐—ผ๐—บ/๐—บ๐˜†-๐—ฎ๐—ฐ๐—ฐ๐—ผ๐˜‚๐—ป๐˜/๐—ฏ๐—ผ๐—ผ๐—ธ๐—ถ๐—ป๐—ด๐˜€ ๐—ถ๐—ป๐˜๐—ผ ๐˜†๐—ผ๐˜‚๐—ฟ ๐—ฏ๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐—ฎ๐—ป๐—ฑ ๐—ฒ๐—ป๐˜๐—ฒ๐—ฟ
Here, HTTPS is a scheme, which tells the browser to make a connection to the server using TLS.
www.thetrainline.com is the domain name of the site and it points to a specific IP address of a server. And /my-tickets is a random path to the resource you need.

๐Ÿฎ. ๐—ง๐—ต๐—ฒ ๐—ฏ๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐—ฐ๐—ต๐—ฒ๐—ฐ๐—ธ๐˜€ ๐˜๐—ต๐—ฒ ๐—ฐ๐—ฎ๐—ฐ๐—ต๐—ฒ ๐—ณ๐—ผ๐—ฟ ๐—ฎ ๐——๐—ก๐—ฆ ๐—ฟ๐—ฒ๐—ฐ๐—ผ๐—ฟ๐—ฑ ๐˜๐—ผ ๐—ณ๐—ถ๐—ป๐—ฑ ๐˜๐—ต๐—ฒ ๐—ฐ๐—ผ๐—ฟ๐—ฟ๐—ฒ๐˜€๐—ฝ๐—ผ๐—ป๐—ฑ๐—ถ๐—ป๐—ด ๐—œ๐—ฃ ๐—ฎ๐—ฑ๐—ฑ๐—ฟ๐—ฒ๐˜€๐˜€ ๐—ผ๐—ณ ๐˜๐—ต๐—ฒ๐˜๐—ฟ๐—ฎ๐—ถ๐—ป๐—น๐—ถ๐—ป๐—ฒ.๐—ฐ๐—ผ๐—บ/๐—บ๐˜†-๐—ฎ๐—ฐ๐—ฐ๐—ผ๐˜‚๐—ป๐˜/๐—ฏ๐—ผ๐—ผ๐—ธ๐—ถ๐—ป๐—ด๐˜€
After youโ€™ve typed the URL into your browser and pressed enter, the browser needs to figure out which server on the Internet to connect to. It looks for the IP address of the server hosting the website using the domain you typed to accomplish that. DNS lookup is done here. Here, it determines whether we can locate it in the cache. If not, DNS searches domain name servers from the root to the third level.

๐Ÿฏ. ๐—•๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐—ถ๐—ป๐—ถ๐˜๐—ถ๐—ฎ๐˜๐—ฒ๐˜€ ๐—ง๐—–๐—ฃ ๐—ฐ๐—ผ๐—ป๐—ป๐—ฒ๐—ฐ๐˜๐—ถ๐—ผ๐—ป ๐˜„๐—ถ๐˜๐—ต ๐˜๐—ต๐—ฒ ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ
TCP, is used throughout the public Internet routing to route packets from a client browser request through the router, the ISP, through an internet exchange to switch ISPs or networks, and finally to find the server with the IP address to connect to. This is an inefficient route to take to get there. Instead, a lot of websites utilise a CDN (like AWS CloudFront) to cache both static and dynamic material closer to the browser.

๐Ÿฐ. ๐—•๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐˜€๐—ฒ๐—ป๐—ฑ๐˜€ ๐˜๐—ต๐—ฒ ๐—›๐—ง๐—ง๐—ฃ ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ฒ๐˜€๐˜ ๐˜๐—ผ ๐˜๐—ต๐—ฒ ๐˜€๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ
Now that the browser is connected to the server, it complies with the HTTP(s) protocol's requirements for communication. To request the contents of the page, the browser first sends an HTTP request to the server. The body, headers and request line of an HTTP request are all there.

๐Ÿฑ. ๐—ฆ๐—ฒ๐—ฟ๐˜ƒ๐—ฒ๐—ฟ ๐—ฝ๐—ฟ๐—ผ๐—ฐ๐—ฒ๐˜€๐˜€๐—ฒ๐˜€ ๐—ฟ๐—ฒ๐—พ๐˜‚๐—ฒ๐˜€๐˜ ๐—ฎ๐—ป๐—ฑ ๐˜€๐—ฒ๐—ป๐—ฑ๐˜€ ๐—ฏ๐—ฎ๐—ฐ๐—ธ ๐—ฎ ๐—ฟ๐—ฒ๐˜€๐—ฝ๐—ผ๐—ป๐˜€๐—ฒ
The server accepts the request and determines how to handle it depending on the data in the request line, headers, and body. The server receives the material at this URL for the GET /page/ HTTP/1.1 requests, builds the response, and then delivers it back to the client with an HTTP status code.

๐Ÿฒ. ๐—•๐—ฟ๐—ผ๐˜„๐˜€๐—ฒ๐—ฟ ๐—ฟ๐—ฒ๐—ป๐—ฑ๐—ฒ๐—ฟ๐˜€ ๐˜๐—ต๐—ฒ ๐—ฐ๐—ผ๐—ป๐˜๐—ฒ๐—ป๐˜
The browser checks the response headers for instructions on how to render the resource after receiving the server's response. The Content-Type header lets the browser know that an HTML resource was received in the response body.

Image creds: @manekinekko

#softwareengineering #systemsdesign #networking #dns
Post image by Mohamed Abukar
๐ŸŒ HTTP Basics - Foundation of data communication on the web

๐Ÿ”น Foundation of data communication on the web
๐Ÿ”นRequest-response protocol
๐Ÿ”น Important for Software & DevOps Engineers to understand

๐Ÿ“ค HTTP Request Header:

๐Ÿ”น Sent by the client to the server
๐Ÿ”น Contains:Request line (method, URL, protocol version)
๐Ÿ”นHeader fields (e.g., Host, User-Agent, Accept)

๐Ÿ“ฅ HTTP Response Header:

๐Ÿ”นSent by the server to the client
๐Ÿ”นContains:Status line (protocol version, status code, reason phrase)
๐Ÿ”นHeader fields (e.g., Content-Type, Content-Length)
๐Ÿ”นStatus codes help diagnose and troubleshoot issues

๐Ÿ› ๏ธ Best Practices:

๐Ÿ”น Use HTTPS for encrypted communication
๐Ÿ”นHandle caching and compression correctly
๐Ÿ”นConfigure security-related headers
๐Ÿ”นManage cookies and sessions securely

๐Ÿ“š In conclusion, understanding HTTP request and response headers is a fundamental skill for Software and DevOps Engineers. Familiarity with the structure, methods, and common header fields, along with best practices for secure and efficient communication, will enable them to build, maintain, and troubleshoot web applications and services effectively.

#softwareengineering #http #web #architecture #data
Post image by Mohamed Abukar

Related Influencers