Co-Founder @LifePlanner_co. Engineering @spairally . Engineering Educator @reduzer_tech

Joined March 2021
Include

Only show posts containing:

Exclude

Hide posts containing:

Time range
-
Minimum likes
Replying to @ndiku_
Same here lol ‘dw’ and ‘jk’ just to see ‘dw’ and ‘jk’ printed on the screen
1
I thought AGP would be on 10+ by now. Maybe they did not give in to the sloperators after all.
50
I keep doing Cmd + B on Android Studio Xcode habits die hard
2
1
1
138
Replying to @Iamjeffaustine
😂 they will have to steal it but I'm not giving half a decade of work out for free lol
15
SamProgramiz retweeted
Replying to @SamProgramiz
Do you devs hate intro and explainer video or getting a designer is the problem or you guys think it expensive to have one! I create such videos for Playstore.
1
1
1
18
I missed the memo
85
Bold of you to assume that I will let you see, leave alone touch my codebase.
1
8
286
Replying to @AlgoCFC
Good start Talk to @philipsfuture for mentorship and guidance in this line of work
1
2
12
SamProgramiz retweeted
Start your day organized with just a tap! Quickly add tasks, set due dates, and prioritize—Life Planner helps you stay on top of it all! Download now: App Store: thelifeplanner.co/apple/x | Google Play Store: thelifeplanner.co/play/x #Productivity #TaskManagement
1
1
1
177
SamProgramiz retweeted
When I get a 200 from the request, I create a pending transaction with the checkout request id. I match incoming callbacks against it. This also helps with manual queries if the callbacks fail to arrive. We’ll still acknowledge receipt of the Webhook even if we failed to match it to any transaction. You can take this further by adding auth tokens to the callback urls, whitelist IP addresses but, if you can guess the merchant request ID that is in a pending transaction, you deserve the spoils of the loot.
When you send the Express request, you get the two unique values. MerchantRequesrID and CheckoutRequestID. These are your first line of defence. Validate your webhooks against them. It should match at lease one record with this. Daraja is well designed even though they don’t follow webhooks best practices like signing payloads. But you have to understand, a lot of what Mpesa Express is, is unique to what most of the industry does. Also rate limit failures.
3
20
984
No need to guess, when the numbers can give you absolutes. thelifeplanner.co
Stop guessing where your money goes. Meet Life Planner: the all-in-one hub for your tasks, habits, journaling, and finances. Want to master your budget? Here’s a quick 1-step guide to getting your spending in check. 👇🧵
1
6
199
SamProgramiz retweeted
Stop guessing where your money goes. Meet Life Planner: the all-in-one hub for your tasks, habits, journaling, and finances. Want to master your budget? Here’s a quick 1-step guide to getting your spending in check. 👇🧵
1
1
1
1
222
SamProgramiz retweeted
This year, I’m skipping the trip to Uganda for #DroidconUg, as much as I’m a speaker. It came a little too early, and I need time to rest after #StanChartMarathon 2026. Besides, I can’t afford the fare right now. It’s not yet the end month! 😂 So, I’ll do my session virtually.
3
1
19
1,468
SamProgramiz retweeted
A lot can happen in one week
2
5
181
SamProgramiz retweeted
Developers, this is for you. please take your payment callbacks seriously. 🔐 Yesterday, out of curiosity, I tested an M-Pesa integration on a critical live system. To my shock, I was able to submit a crafted payload that resulted in a payment being marked as successful. Never trust a payment callback blindly. Best practices: - Verify callbacks against the payment provider. - Validate the Merchant Request ID and transaction details. - Verify payment status independently where possible. - Restrict callback access by IP where supported. - Make callbacks idempotent to prevent duplicate processing. - Never mark a payment as successful based on an unverified payload. One weak payment integration can undermine the integrity of an entire system. Security is not just about protecting your APIs. It's about protecting the business logic behind them. 🔒
16
103
14
413
20,985
SamProgramiz retweeted
Understanding is the noblest of pursuits. People who actively strive to understand are pushing against uncertainty. People who give up on understanding are willingly falling into chaos.
45
330
24
2,939
46,208
SamProgramiz retweeted
Men receive flowers on one day in their entire lives, and they're never there to smell them. Thank you, G. It means a lot coming from you 🙏. open.spotify.com/track/6bKnA…
I shot a friendship shot to the guy who hacked my startup in 2014, @its_eknock....🥲 Since then he's been teaching LO1 and I how to code; LO 1's year 11 project is a ticketing app for school attendance! Mimi, I am creating the app I always wanted. Iron sharpens iron🙏
1
10
417
THE POWER OF CODE COMPELS YOU!
1
14
519
SamProgramiz retweeted
when you see it 👀
1
3
84