Simret Abebe (@SimretA12) header
Simret Abebe (@SimretA12) profile picture

AI,Machine Learning & Backend Developer | Django . Python . RAG | Focused on FinTech

Joined November 2025
Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)Photo by Simret Abebe (@SimretA12)
How do you find ONE request in thousands of log lines? Day 31 every SafePay response now carries an X Request Id, and the same ID appears in the logs A caller can send their own, but only if it's simple and safe. Day 31/60 Building SafePay #BuildInPublic
4
5
248
🎉 1 month of building SafePay in public! Day 30 Added a webhook delivery log where merchants can track failed deliveries, check error details, and resend them with one call. 30 days down, 30 to go. Still building, still learning! Day 30/60 #BuildInPublic
4
1
11
256
SafePay has API docs now Day 29 SafePay now sets Idempotent Replayed true on a replay so the client knows it got the original result not a new payment And the API finally has real docs Swagger UI error codes and the webhook contract Day 29/60 Building SafePay #BuildInPublic
3
10
223
Simret Abebe retweeted
We hosted the first OpenAI hackathon in Ethiopia🥳 DevDay Bahir Dar was awesome, hope to do more of this
3
6
111
2,967
Simret Abebe retweeted
Day 4: Until I get into Y Combinator ⚡ Poll closed: msh won with 56%, so that's our official YC submission. My phone died and power went off in Addis today lol 😭 but we finished it... so we’re building straight from the terminal. Exactly 8 days left until the deadline. Day 4 logged. Let’s get into YC. 🇪🇹🔥 #buildinpublic #ycombinator #aiagents #coding #startups #msh
5
8
61
Who said building a project is always about success? YenePay was supposed to be my third provider, but I couldn't access the website or required documentation. I'm putting it aside and looking for another provider while continuing to build SafePay. Day 28 of SafePay.
1
3
96
Let's count Day 27 as DevDay community day. It was the first openai hackathon in Ethiopia. I got so much experience by connecting to real people and learn how real people matter and value in this community day and in team work. #BuildInPublic
1
1
6
162
Day 26/60 Building SafePay Started integrating SafePay’s third provider. SantimPay’s manual onboarding slowed things down, so after researching alternatives, I pivoted to YenePay for its developer sandbox. Next : Integrating the third provider #BuildInPublic
3
1
10
194
What should happen to a payment nobody pays? SafePay now expires it. But first it asks the provider was it paid? If yes, it settles instead. If the provider doesn't answer, it does NOT expire. Unknown is not expired. Day 25/60 Building SafePay #BuildInPublic
8
12
260
Payment bugs can cost businesses money. Building SafePay in 24 Days has taught me a lot about backend systems. Now, I’m taking the next step: opening up for small paid Django backend projects and working toward my first client. DM me. #BuildInPublic
3
3
5
263
Payments that SafePay can't settle on its own now go into a review queue. Each one shows the reason how long it's been waiting and which merchant it belongs to. Telegram alert as a bot if needed. Thanks @GetPingCron for the feedback that shaped it. Day 23/60 Building SafePay.
2
1
4
265
A shop can finally see its own payments in SafePay. Newest first, filter by status, provider, reference or date, in pages that never repeat. Day 22/60 Building SafePay #BuildInPublic
2
9
254
Day 21/60 No code today. Building is the easy part. The real question is do people need SafePay? I’m asking developers and shop owners in Ethiopia how they handle payments and what goes wrong. Time to listen, gather information, and learn before building more. #BuildingInPublic
1
3
112
A test key can't read a live payment A live key can't read a test one. Day 20 SafePay has test keys and live keys with separate data. A live key is refused unless two switches are on and no provider is marked live capable yet so no real money can move. Day 20/60 #BuildInPublic
2
9
183
Building SafePay in public one API for Ethiopian payment providers. 19 days in, it already retries safely, re checks stuck payments and switches providers when one is down. Day 20 drops will be soon⚡ #BuildInPublic
2
6
113
A shop gives you a webhook URL. Your server will call it. What if the URL is 127.0.0.1 or a cloud metadata address ? That's SRRF. Day 19 SafePay refuses private addresses checks again at send time, and never follows redirects. Each shop also gets its own secret. Day 19/60
2
4
104
Every Ethiopian payment provider plays by different rules.Different APIs, test methods and security rules, so SafePay uses adapters and fallback. Day 19 drops in a few hours ⚡ #BuildInPublic
1
3
80
When should a payment API fail over to another provider? Not on every error. Only when it's certain the first provider created nothing. After a timeout, SafePay keeps the payment pending and retries the same provider. Unknown is not failed. Day 18/60 SafePay #BuildInPublic
2
6
256
My first time working with Ethiopian payment providers has been a great learning experience.Each provider has its own APIs, testing methods, and security requirements. That’s why I’m building SafePay with adapters and fallback support. Day 18 work in few hours ! #BuildInPublic
4
5
199
Anyone on the internet can hit your webhook URL and claim an order is paid. Day 17: Brought ArifPay to full parity with Chapa. SafePay never blindly trusts incoming webhook payloads it catches the callback, verifies directly with ArifPay. Day 17/60 Building SafePay #60Days
2
10
136