Article of the day
A customer gets charged for an order that never made it into the database. An order service publishes a Kafka event, then updates PostgreSQL. The database write fails after the event is already out, and a phantom order cascades downstream, inventory decremented, fulfilment notified, payment charged, all for an order that does not exist. Root-cause tracing is brutal: the event trail looks correct; the database is the one that disagrees. We debugged variants of this on multiple production Kafka-backed services.
Read full article ๐ [ LINK ]
@devwitheyob
#TechVibe #ArticleOfTheDay #SystemDesign #MicroService
A customer gets charged for an order that never made it into the database. An order service publishes a Kafka event, then updates PostgreSQL. The database write fails after the event is already out, and a phantom order cascades downstream, inventory decremented, fulfilment notified, payment charged, all for an order that does not exist. Root-cause tracing is brutal: the event trail looks correct; the database is the one that disagrees. We debugged variants of this on multiple production Kafka-backed services.
Read full article ๐ [ LINK ]
@devwitheyob
#TechVibe #ArticleOfTheDay #SystemDesign #MicroService
BackendBytes
Event-Driven Microservices in Go: Kafka, Sagas, and the Outbox Pattern
Reliable event-driven Go beyond connecting to Kafka: handling partial failures, duplicates, and distributed transactions safely.
๐ฅ1
Need a toxic motivation to make my bed, anything on your side๐
Be my guest in the comments๐ญ
@devwitheyob
#random
Be my guest in the comments๐ญ
@devwitheyob
#random
TechVibe
Need a toxic motivation to make my bed, anything on your side๐ Be my guest in the comments๐ญ @devwitheyob #random
Motivation of the day๐
I'll tell you how risky life is
You're not gonna get alive
@devwitheyob
#TechVibe #random
I'll tell you how risky life is
You're not gonna get alive
@devwitheyob
#TechVibe #random
๐คฃ1
TechVibe
Looks like someone's about to land a new job ๐ #random #job
Let me tell you how this happened.
This opportunity actually came from Upwork. The CEO found my profile, reached out, and we had a quick chat about my backend and automation experience. After that, we scheduled a technical interview, and then they gave me a take-home project.
I probably overdid it a bit. ๐ I didn't just build the features they asked for, I added tests, cleaned everything up, and even deployed it to production with additional features and even bought Gemini API to test it. After that, they had me walk through the code with their senior developers and answer a bunch of technical questions. The final round was a behavioral interview.
A few days later, they sent me an offer.
The company is US-based with a branch here in Addis. I'll be working as a Full-Stack & Automation Engineer. The schedule is from 5 PM to midnight, which actually works well with my university classes, and it's a hybrid setup. They also offered accommodation in the office so that I can work from there for the summer, so I'll be moving to Addis.
I was just getting started to enjoy my break with fam and friends but I gotta go back and hustle๐ญ
@devwitheyob
#TechVibe #JobUpdate
This opportunity actually came from Upwork. The CEO found my profile, reached out, and we had a quick chat about my backend and automation experience. After that, we scheduled a technical interview, and then they gave me a take-home project.
I probably overdid it a bit. ๐ I didn't just build the features they asked for, I added tests, cleaned everything up, and even deployed it to production with additional features and even bought Gemini API to test it. After that, they had me walk through the code with their senior developers and answer a bunch of technical questions. The final round was a behavioral interview.
A few days later, they sent me an offer.
The company is US-based with a branch here in Addis. I'll be working as a Full-Stack & Automation Engineer. The schedule is from 5 PM to midnight, which actually works well with my university classes, and it's a hybrid setup. They also offered accommodation in the office so that I can work from there for the summer, so I'll be moving to Addis.
I was just getting started to enjoy my break with fam and friends but I gotta go back and hustle๐ญ
@devwitheyob
#TechVibe #JobUpdate
๐ฅ30โค3๐2๐คฏ1
There are actually different ways it can do that.
L4 load balancers work at the transport layer. They don't care about URLs, headers, or request bodies. They simply look at things like the source IP, destination IP, TCP/UDP ports, and protocol, then forward the entire connection to a backend server. Since they don't inspect or process the HTTP request itself, they're extremely fast and can handle millions of connections with very little overhead.
L7 load balancers work at the application layer. They terminate HTTPS, inspect the HTTP request, and make routing decisions based on things like the URL, headers, cookies, or even the request method. This is what allows requests like
That's why many production systems use both. An L4 load balancer sits at the edge and quickly distributes incoming connections, while L7 proxies behind it handle the smarter routing to the right application or microservice. It gives you the performance of L4 with the flexibility of L7.
@devwitheyob
#TechVibe #LoadBalancing #SystemDesignsig
L4 load balancers work at the transport layer. They don't care about URLs, headers, or request bodies. They simply look at things like the source IP, destination IP, TCP/UDP ports, and protocol, then forward the entire connection to a backend server. Since they don't inspect or process the HTTP request itself, they're extremely fast and can handle millions of connections with very little overhead.
L7 load balancers work at the application layer. They terminate HTTPS, inspect the HTTP request, and make routing decisions based on things like the URL, headers, cookies, or even the request method. This is what allows requests like
/api, /admin, and /images to be sent to completely different services even though they're on the same domain.That's why many production systems use both. An L4 load balancer sits at the edge and quickly distributes incoming connections, while L7 proxies behind it handle the smarter routing to the right application or microservice. It gives you the performance of L4 with the flexibility of L7.
@devwitheyob
#TechVibe #LoadBalancing #SystemDesignsig
โค2
Article of the day
One of the biggest reasons companies use gRPC is because it runs on HTTP/2. Unlike traditional HTTP/1.1, HTTP/2 allows multiple requests to travel over a single connection at the same time, reducing latency and connection overhead. It also supports streaming out of the box, so a server can continuously send updates to a client without opening new connections. That's why you'll often find gRPC powering communication between internal services like authentication, payments, AI inference, notifications, analytics, and other microservices. In many production systems, users interact with a REST API, but behind the scenes the services are talking to each other using gRPC for speed, reliability, and strong contracts.
Read full article ๐ [ LINK ]
@devwitheyob
#TechVibe #ArticleOfTheDay #SystemDesign
One of the biggest reasons companies use gRPC is because it runs on HTTP/2. Unlike traditional HTTP/1.1, HTTP/2 allows multiple requests to travel over a single connection at the same time, reducing latency and connection overhead. It also supports streaming out of the box, so a server can continuously send updates to a client without opening new connections. That's why you'll often find gRPC powering communication between internal services like authentication, payments, AI inference, notifications, analytics, and other microservices. In many production systems, users interact with a REST API, but behind the scenes the services are talking to each other using gRPC for speed, reliability, and strong contracts.
Read full article ๐ [ LINK ]
@devwitheyob
#TechVibe #ArticleOfTheDay #SystemDesign
โค3
Think about one problem almost every family in Ethiopia has at some point: finding a home servant.
What's interesting is that even with unemployment going up, people are still struggling to find reliable workers. I don't think it's because people don't want to do the job. The real issue is that there's no proper system that understands both sides.
The worker wants a safe environment, respect, clear job responsibilities, fair treatment, and someone they can talk to if problems come up. The homeowner wants someone they can trust, someone reliable, and someone who actually does what was agreed. Right now, both sides go into it with uncertainty, and that's where most of the problems start.
The funny thing is, money isn't even the biggest issue. I know people who are willing to pay well above the normal rate, but they still can't find the right person. On the other side, there are people looking for work but afraid of ending up in a bad situation.
I genuinely think if someone create a serious business, that solves the trust problem instead of just matching workers with homeowners, it could become one of the biggest businesses in the country.
Just thinking out loud. what do you think guys
@devwitheyob
#TechVibe #BusinessIdea #ideas
What's interesting is that even with unemployment going up, people are still struggling to find reliable workers. I don't think it's because people don't want to do the job. The real issue is that there's no proper system that understands both sides.
The worker wants a safe environment, respect, clear job responsibilities, fair treatment, and someone they can talk to if problems come up. The homeowner wants someone they can trust, someone reliable, and someone who actually does what was agreed. Right now, both sides go into it with uncertainty, and that's where most of the problems start.
The funny thing is, money isn't even the biggest issue. I know people who are willing to pay well above the normal rate, but they still can't find the right person. On the other side, there are people looking for work but afraid of ending up in a bad situation.
I genuinely think if someone create a serious business, that solves the trust problem instead of just matching workers with homeowners, it could become one of the biggest businesses in the country.
Just thinking out loud. what do you think guys
@devwitheyob
#TechVibe #BusinessIdea #ideas
โค5
The diagram is the load-balancing lesson in one picture, gRPC's HTTP/2 multiplexing is a feature in the protocol layer and a bug at the L4 routing layer. Every gRPC-in-K8s production incident eventually traces back to which line of this diagram is wrong.
@devwitheyob
#TechVibe #gRPC #API #SystemDesign
@devwitheyob
#TechVibe #gRPC #API #SystemDesign
Forwarded from Birhan Nega
แ แแณแแต แแ แ แแญแแณแฝแ แแตแฅ แจแ
แแตแ แจแแธแแแ แตแญแแ แ แแ แแแแณแธแ แจแแซแณแฉแ แ แตแฐแแ แฐแแฝแ แฅแแแแแแแข แแฅแ แขแแฒแ แแตแ (Ezedin Fedlu) แจแฅแแแ
แฅแญแ
แฌ แฐแแฝ แ แแฑ แแแข
แจแขแแฒแ แแญ แ แฅแฌ แจแแตแซแต แฅแตแ แจแแ แจแ แ แแแ แตแ แฅแฑ แแซแ แฅแแตแฃ แแญแ แแแต แฅแ แ แตแฐแณแฐแฅ แฅแ แแแต แฅแฝแแแแข แฅแฑ แแแแ แฅแแฐแแแ แ แซแ แแณแฐแ แณแญแแ "แ แแ แแแแต แจแฐแแแ" (Enabled in a different way) แแแข แฅแแ แ แแซ แ แฐแซแแฃแธแ แแแซแตแ แแ แ แแญแแต แแแ แญแ แแ แฅแแแต แ แฐแแฃแญ แ แณแญแถแแแข
แจแ แฒแต แ แ แฃ แฐแแตแถ แซแแ แตแ แฅแแ แแถแฝ แแ แ แแปแแญแฃ แแฌ แ แตแแตแ แแตแฅ แจVolvo Cars แแญ แฅแตแจแแตแซแต แจแฐแจแฐแ แต แแแแต แฅแแแฐแ แจแ แแตแ แจแตแฌแต แแณแซ แแแข
แแแญ แแ แขแแฒแแ แจแ แแ แแฉ แจแแซแฐแญแแ แจแฐแจแฐแ แต แจแแ แฐแจแ แฅแป แ แญแฐแแแค แ แแแแฑ แแญ แซแแ แแแซแ แแก แฅแ แแแแฝ แซแแ แแตแฐแแแต แฅแแแข
แจแแแปแ แแแฎ แฅแตแจแแฌ แตแจแตแฃ แ แแแแฑ แซแแแแ แแแแตแฃ แแแต แฅแ แแแแแแ แ แแฃแ แแแแฝ แแแซแแแ แแ แ แจแฐแกแ แแแแ แแฐ แแ แฅแ แ แซแแ แแข
แฅแแฒแ แ แญแแต แตแแ แฐแแฝ แ แญแฅแฎแณแฝแแ แแแจแต แจแแต แจแแตแจแญ แฝแแแต แ แซแตแแแแธแแแข แ แฅแฎแ แธแ แแฐแซแแ แแแแแแธแ แแ แจแแฐแฉแต แฅแซ แฅแ แจแแซแณแฉแต แจแแญแแต แแ แ แซแฑ แตแแ แแตแญแญ แแแข
Ezedin แ แ แซแ แ แฅแจแ แ แฐแซแแ แต แแ แต แแณแจแธแ แฅแแแฐแ แจแ แแตแ แฅแแซแฌ แแแแฝแแ แฅแฉ แแณแ แตแแแแจแ แฅแ แซแแแธแแ แแ แแแแฝแแ แตแแแณแซแแแ แจแแฅ แฅแแแฐแแแแ!
#EzedinFedlu #Inspiration #Resilience #TechCommunity #Ethiopia #EnabledInADifferentWay #Leadership
แจแขแแฒแ แแญ แ แฅแฌ แจแแตแซแต แฅแตแ แจแแ แจแ แ แแแ แตแ แฅแฑ แแซแ แฅแแตแฃ แแญแ แแแต แฅแ แ แตแฐแณแฐแฅ แฅแ แแแต แฅแฝแแแแข แฅแฑ แแแแ แฅแแฐแแแ แ แซแ แแณแฐแ แณแญแแ "แ แแ แแแแต แจแฐแแแ" (Enabled in a different way) แแแข แฅแแ แ แแซ แ แฐแซแแฃแธแ แแแซแตแ แแ แ แแญแแต แแแ แญแ แแ แฅแแแต แ แฐแแฃแญ แ แณแญแถแแแข
แจแ แฒแต แ แ แฃ แฐแแตแถ แซแแ แตแ แฅแแ แแถแฝ แแ แ แแปแแญแฃ แแฌ แ แตแแตแ แแตแฅ แจVolvo Cars แแญ แฅแตแจแแตแซแต แจแฐแจแฐแ แต แแแแต แฅแแแฐแ แจแ แแตแ แจแตแฌแต แแณแซ แแแข
แแแญ แแ แขแแฒแแ แจแ แแ แแฉ แจแแซแฐแญแแ แจแฐแจแฐแ แต แจแแ แฐแจแ แฅแป แ แญแฐแแแค แ แแแแฑ แแญ แซแแ แแแซแ แแก แฅแ แแแแฝ แซแแ แแตแฐแแแต แฅแแแข
แจแแแปแ แแแฎ แฅแตแจแแฌ แตแจแตแฃ แ แแแแฑ แซแแแแ แแแแตแฃ แแแต แฅแ แแแแแแ แ แแฃแ แแแแฝ แแแซแแแ แแ แ แจแฐแกแ แแแแ แแฐ แแ แฅแ แ แซแแ แแข
แฅแแฒแ แ แญแแต แตแแ แฐแแฝ แ แญแฅแฎแณแฝแแ แแแจแต แจแแต แจแแตแจแญ แฝแแแต แ แซแตแแแแธแแแข แ แฅแฎแ แธแ แแฐแซแแ แแแแแแธแ แแ แจแแฐแฉแต แฅแซ แฅแ แจแแซแณแฉแต แจแแญแแต แแ แ แซแฑ แตแแ แแตแญแญ แแแข
Ezedin แ แ แซแ แ แฅแจแ แ แฐแซแแ แต แแ แต แแณแจแธแ แฅแแแฐแ แจแ แแตแ แฅแแซแฌ แแแแฝแแ แฅแฉ แแณแ แตแแแแจแ แฅแ แซแแแธแแ แแ แแแแฝแแ แตแแแณแซแแแ แจแแฅ แฅแแแฐแแแแ!
#EzedinFedlu #Inspiration #Resilience #TechCommunity #Ethiopia #EnabledInADifferentWay #Leadership
โค5
Article of the day
"Should we rewrite it in Go?"
A payment-style service's p99 jumps from ~40ms to ~400ms during JVM GC pauses, and the backend team splits down the middle: half want Go for the consistent latency floor, half want Java 21 with ZGC to fix the pauses without a rewrite. This article is built to settle that argument honestly: with what each runtime actually documents, a decision framework, and a benchmark harness you can paste into a repo โ so the deciding numbers are yours, not a blog's.
Read full article ๐ [LINK]
@devwitheyob
#TechVibe #ArticleOfTheDay #performance #Java #Go
"Should we rewrite it in Go?"
A payment-style service's p99 jumps from ~40ms to ~400ms during JVM GC pauses, and the backend team splits down the middle: half want Go for the consistent latency floor, half want Java 21 with ZGC to fix the pauses without a rewrite. This article is built to settle that argument honestly: with what each runtime actually documents, a decision framework, and a benchmark harness you can paste into a repo โ so the deciding numbers are yours, not a blog's.
Read full article ๐ [LINK]
@devwitheyob
#TechVibe #ArticleOfTheDay #performance #Java #Go
โค5
I'm totally confused about Ethio Telecom. They just cap your usage even if you have an unlimited package, and then they show you this error when you try to buy one. It's insane ๐ก
@devwitheyob
#TechVibe #random
@devwitheyob
#TechVibe #random
๐คทโโ1
Saw this on LinkedIn today and thought it was such a clever idea. The app transfers files using nothing but light, one phone displays a stream of QR codes while another reads them with its camera, so there's no need for Wi-Fi, Bluetooth, AirDrop, or even an internet connection.
The part I enjoyed learning about was fountain codes. Instead of sending file chunks in order and waiting for any missed ones, it keeps generating encoded chunks. The receiver doesn't need every single frame, it just needs enough different ones to rebuild the original file. That means dropped frames don't slow everything down, which is a really smart application of information theory.
Linkedin post link ๐ [LINK]
@devwitheyob
#TechVibe #LinkedIn
The part I enjoyed learning about was fountain codes. Instead of sending file chunks in order and waiting for any missed ones, it keeps generating encoded chunks. The receiver doesn't need every single frame, it just needs enough different ones to rebuild the original file. That means dropped frames don't slow everything down, which is a really smart application of information theory.
Linkedin post link ๐ [LINK]
@devwitheyob
#TechVibe #LinkedIn
๐4
๐ฏ3โค1
I have a tip for boosting profiles on Upwork.
If you're targeting US clients, the time you boost actually matters. Boosting during the daytime in Ethiopia usually isn't worth it because most of the clients will be from India and they will click on your profile for no reason and it will take your connects๐ญ.
I've noticed it's much better to boost between 1 AM and 4 AM EAT time. That's when more US clients are active, giving your profile a better chance of being seen by the right people. It can definitely make your boost more effective.
@devwitheyob
#TechVibe #upwork #boosting
If you're targeting US clients, the time you boost actually matters. Boosting during the daytime in Ethiopia usually isn't worth it because most of the clients will be from India and they will click on your profile for no reason and it will take your connects๐ญ.
I've noticed it's much better to boost between 1 AM and 4 AM EAT time. That's when more US clients are active, giving your profile a better chance of being seen by the right people. It can definitely make your boost more effective.
@devwitheyob
#TechVibe #upwork #boosting
โค7
Article of the day
One of the essential things you need to know when you debugging in prod are Linux commands .
Read the full article ๐ [ LINK ]
@devwitheyob
#TechVibe #ArticleOfTheDay #Linux #SystemAdiminstration
One of the essential things you need to know when you debugging in prod are Linux commands .
Read the full article ๐ [ LINK ]
@devwitheyob
#TechVibe #ArticleOfTheDay #Linux #SystemAdiminstration
Are these article I share everyday actually useful and help you understand some concepts?
Anonymous Poll
78%
Yes
25%
Nahh
โค4