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

Joined March 2021
SamProgramiz retweeted
Small daily actions lead to big life changes. ๐ŸŒฑ
1
2
28
SamProgramiz retweeted
Saving money is easy... until life happens. ๐Ÿคทโ€โ™€๏ธ
1
1
2
28
SamProgramiz retweeted
Just saw this guy promoting his link in bio on Ig reels with a tihada link, congrats @wamweaaa
2
13
1
43
2,749
SamProgramiz retweeted
Set goals, track progress, and stay motivated. Achieve your big dreams, one small step at a time. Download Life Planner now: App Store: thelifeplanner.co/apple/x | Google Play Store: thelifeplanner.co/play/x #GoalSetting #PersonalGrowth
1
1
20
SamProgramiz retweeted
This will be a goldmine
๐Ÿ“ข ๐—ฆ๐—ฃ๐—˜๐—”๐—ž๐—˜๐—ฅ ๐—”๐—ก๐—ก๐—ข๐—จ๐—ก๐—–๐—˜๐— ๐—˜๐—ก๐—ง! ๐Ÿš€ Cross-platform abstractions leak. For long-term codebases, native-only engineering is the ultimate future-proof bet. Welcoming ๐—ฆ๐—ฎ๐—บ๐˜‚๐—ฒ๐—น ๐—ข๐˜„๐—ถ๐—ป๐—ผ (@SamProgramiz), Co-Founder @Life Planner, to #dcke26 & #flutterconke26! ๐ŸŽ™๏ธ "๐—™๐˜‚๐˜๐˜‚๐—ฟ๐—ฒ-๐—ฃ๐—ฟ๐—ผ๐—ผ๐—ณ ๐—ฌ๐—ผ๐˜‚๐—ฟ ๐—”๐—ฝ๐—ฝ๐˜€ ๐—ช๐—ถ๐˜๐—ต ๐—ก๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ-๐—ข๐—ป๐—น๐˜† ๐— ๐—ผ๐—ฏ๐—ถ๐—น๐—ฒ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด" Drawing on 9 years across Life Planner, mUzima, & Vanderbilt, Samuel will unpack: โ€ข ๐—ฆ๐˜‚๐—ฟ๐˜ƒ๐—ถ๐˜ƒ๐—ถ๐—ป๐—ด ๐—ข๐—ฆ ๐—–๐—ต๐˜‚๐—ฟ๐—ป: Structuring codebases that age well through yearly OS updates. โ€ข ๐—ง๐—ต๐—ฒ ๐—ฅ๐—ฒ๐—ฎ๐—น ๐—–๐—ผ๐˜€๐˜ ๐—ผ๐—ณ ๐—Ÿ๐—ฎ๐˜†๐—ฒ๐—ฟ๐˜€: Where "safe" cross-platform bets introduced hidden technical debt. โ€ข ๐— ๐—ผ๐—ฑ๐˜‚๐—น๐—ฎ๐—ฟ ๐—•๐—ผ๐˜‚๐—ป๐—ฑ๐—ฎ๐—ฟ๐—ถ๐—ฒ๐˜€: Dependency strategies that treat the platform as a feature, not a blocker. โ€ข ๐— ๐—ฎ๐—ธ๐—ถ๐—ป๐—ด ๐˜๐—ต๐—ฒ ๐—–๐—ฎ๐˜€๐—ฒ: How to advocate for native architecture within your team. ๐Ÿ“– Session breakdown: bit.ly/samBeyondstacks Step Beyond Stacks with us this November in Nairobi! ๐Ÿ‡ฐ๐Ÿ‡ช ๐Ÿ“ Nairobi | Nov 5โ€“6 ๐ŸŽŸ๏ธ Lock in your ticket: bit.ly/dcKE2026Tickets
3
8
328
SamProgramiz retweeted
Tired of juggling five different apps just to get through your day?
1
1
2
31
SamProgramiz retweeted
Tired of manually logging every transaction? We now support automatic syncing for Mobile Money (M-PESA, MTN, Airtel), major Banks (KCB, Equity, ING), SACCOs, and even CSV imports.
1
1
3
227
SamProgramiz retweeted
This is a good one.
๐Ÿ“ข ๐—ฆ๐—ฃ๐—˜๐—”๐—ž๐—˜๐—ฅ ๐—”๐—ก๐—ก๐—ข๐—จ๐—ก๐—–๐—˜๐— ๐—˜๐—ก๐—ง! ๐Ÿš€ Cross-platform abstractions leak. For long-term codebases, native-only engineering is the ultimate future-proof bet. Welcoming ๐—ฆ๐—ฎ๐—บ๐˜‚๐—ฒ๐—น ๐—ข๐˜„๐—ถ๐—ป๐—ผ (@SamProgramiz), Co-Founder @Life Planner, to #dcke26 & #flutterconke26! ๐ŸŽ™๏ธ "๐—™๐˜‚๐˜๐˜‚๐—ฟ๐—ฒ-๐—ฃ๐—ฟ๐—ผ๐—ผ๐—ณ ๐—ฌ๐—ผ๐˜‚๐—ฟ ๐—”๐—ฝ๐—ฝ๐˜€ ๐—ช๐—ถ๐˜๐—ต ๐—ก๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ-๐—ข๐—ป๐—น๐˜† ๐— ๐—ผ๐—ฏ๐—ถ๐—น๐—ฒ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด" Drawing on 9 years across Life Planner, mUzima, & Vanderbilt, Samuel will unpack: โ€ข ๐—ฆ๐˜‚๐—ฟ๐˜ƒ๐—ถ๐˜ƒ๐—ถ๐—ป๐—ด ๐—ข๐—ฆ ๐—–๐—ต๐˜‚๐—ฟ๐—ป: Structuring codebases that age well through yearly OS updates. โ€ข ๐—ง๐—ต๐—ฒ ๐—ฅ๐—ฒ๐—ฎ๐—น ๐—–๐—ผ๐˜€๐˜ ๐—ผ๐—ณ ๐—Ÿ๐—ฎ๐˜†๐—ฒ๐—ฟ๐˜€: Where "safe" cross-platform bets introduced hidden technical debt. โ€ข ๐— ๐—ผ๐—ฑ๐˜‚๐—น๐—ฎ๐—ฟ ๐—•๐—ผ๐˜‚๐—ป๐—ฑ๐—ฎ๐—ฟ๐—ถ๐—ฒ๐˜€: Dependency strategies that treat the platform as a feature, not a blocker. โ€ข ๐— ๐—ฎ๐—ธ๐—ถ๐—ป๐—ด ๐˜๐—ต๐—ฒ ๐—–๐—ฎ๐˜€๐—ฒ: How to advocate for native architecture within your team. ๐Ÿ“– Session breakdown: bit.ly/samBeyondstacks Step Beyond Stacks with us this November in Nairobi! ๐Ÿ‡ฐ๐Ÿ‡ช ๐Ÿ“ Nairobi | Nov 5โ€“6 ๐ŸŽŸ๏ธ Lock in your ticket: bit.ly/dcKE2026Tickets
1
1
10
465
SamProgramiz retweeted
๐Ÿ“ข SPEAKER ANNOUNCEMENT! ๐Ÿš€ Same app. Same features. Same Supabase backend. Two completely different architectures. Welcoming Siro Devs (@SiroFitsKe), Software Engineer & Tech Writer, to #dcke26 & #flutterconke26! ๐ŸŽ™๏ธ "Rewriting My Flutter App to Native Android: A Side-by-Side Architecture Breakdown" Here is what Siro will break down: โ€ข Real Code Comparison: Flutter vs. Kotlin & Jetpack Compose side by side. โ€ข State & DI: How state management and dependency injection differ in practice. โ€ข Concurrency & Nav: Real-world flows across Dart async vs. Kotlin Coroutines/Flows. โ€ข The Unspoken Costs: What native actually bought, and the build-time trade-offs nobody talks about. ๐Ÿ“– Session breakdown: bit.ly/siroBeyondstacksStep Beyond Stacks with us this November in Nairobi! ๐Ÿ‡ฐ๐Ÿ‡ช ๐Ÿ“ Nairobi | Nov 5โ€“6 ๐ŸŽŸ๏ธ Lock in your ticket: bit.ly/dcKE2026Tickets
1
6
1
11
493
SamProgramiz retweeted
๐Ÿ“ข ๐—ฆ๐—ฃ๐—˜๐—”๐—ž๐—˜๐—ฅ ๐—”๐—ก๐—ก๐—ข๐—จ๐—ก๐—–๐—˜๐— ๐—˜๐—ก๐—ง! ๐Ÿš€ Cross-platform abstractions leak. For long-term codebases, native-only engineering is the ultimate future-proof bet. Welcoming ๐—ฆ๐—ฎ๐—บ๐˜‚๐—ฒ๐—น ๐—ข๐˜„๐—ถ๐—ป๐—ผ (@SamProgramiz), Co-Founder @Life Planner, to #dcke26 & #flutterconke26! ๐ŸŽ™๏ธ "๐—™๐˜‚๐˜๐˜‚๐—ฟ๐—ฒ-๐—ฃ๐—ฟ๐—ผ๐—ผ๐—ณ ๐—ฌ๐—ผ๐˜‚๐—ฟ ๐—”๐—ฝ๐—ฝ๐˜€ ๐—ช๐—ถ๐˜๐—ต ๐—ก๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ-๐—ข๐—ป๐—น๐˜† ๐— ๐—ผ๐—ฏ๐—ถ๐—น๐—ฒ ๐—˜๐—ป๐—ด๐—ถ๐—ป๐—ฒ๐—ฒ๐—ฟ๐—ถ๐—ป๐—ด" Drawing on 9 years across Life Planner, mUzima, & Vanderbilt, Samuel will unpack: โ€ข ๐—ฆ๐˜‚๐—ฟ๐˜ƒ๐—ถ๐˜ƒ๐—ถ๐—ป๐—ด ๐—ข๐—ฆ ๐—–๐—ต๐˜‚๐—ฟ๐—ป: Structuring codebases that age well through yearly OS updates. โ€ข ๐—ง๐—ต๐—ฒ ๐—ฅ๐—ฒ๐—ฎ๐—น ๐—–๐—ผ๐˜€๐˜ ๐—ผ๐—ณ ๐—Ÿ๐—ฎ๐˜†๐—ฒ๐—ฟ๐˜€: Where "safe" cross-platform bets introduced hidden technical debt. โ€ข ๐— ๐—ผ๐—ฑ๐˜‚๐—น๐—ฎ๐—ฟ ๐—•๐—ผ๐˜‚๐—ป๐—ฑ๐—ฎ๐—ฟ๐—ถ๐—ฒ๐˜€: Dependency strategies that treat the platform as a feature, not a blocker. โ€ข ๐— ๐—ฎ๐—ธ๐—ถ๐—ป๐—ด ๐˜๐—ต๐—ฒ ๐—–๐—ฎ๐˜€๐—ฒ: How to advocate for native architecture within your team. ๐Ÿ“– Session breakdown: bit.ly/samBeyondstacks Step Beyond Stacks with us this November in Nairobi! ๐Ÿ‡ฐ๐Ÿ‡ช ๐Ÿ“ Nairobi | Nov 5โ€“6 ๐ŸŽŸ๏ธ Lock in your ticket: bit.ly/dcKE2026Tickets
18
4
29
2,721
SamProgramiz retweeted
Track your time effortlessly. See where your day went with a digital stopwatch and colorful pie charts. Download now: App Store: thelifeplanner.co/apple/x | Google Play Store: thelifeplanner.co/play/x #TimeManagement #Productivity
2
2
29
SamProgramiz retweeted
Mkuje muone nikiongelea some technical things huko Fluttercon
๐Ÿ“ข ๐—ฆ๐—ฃ๐—˜๐—”๐—ž๐—˜๐—ฅ ๐—”๐—ก๐—ก๐—ข๐—จ๐—ก๐—–๐—˜๐— ๐—˜๐—ก๐—ง! ๐Ÿš€ Stop writing boilerplate method channels just to call native code. You don't have to leave Dart. Welcoming ๐— ๐—ฒ๐—น๐—ธ๐˜‡๐—ฒ๐—ฑ๐—ฒ๐—ธ ๐—–๐—ต๐—ผ๐˜๐—ถ (@chotixity), Software Engineer, to #flutterconke26 & #dcke26! ๐ŸŽ™๏ธ "๐—š๐—ผ๐—ถ๐—ป๐—ด ๐—ก๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—ถ๐—ป ๐——๐—ฎ๐—ฟ๐˜: ๐——๐—ถ๐—ฟ๐—ฒ๐—ฐ๐˜ ๐—ก๐—ฎ๐˜๐—ถ๐˜ƒ๐—ฒ ๐—œ๐—ป๐˜๐—ฒ๐—ฟ๐—ผ๐—ฝ ๐˜„๐—ถ๐˜๐—ต ๐—๐—ก๐—œ๐—ด๐—ฒ๐—ป & ๐—™๐—™๐—œ๐—ด๐—ฒ๐—ป" Here is what Melkzedek will unpack: โ€ข ๐——๐—ถ๐˜๐—ฐ๐—ต๐—ถ๐—ป๐—ด ๐— ๐—ฒ๐˜๐—ต๐—ผ๐—ฑ ๐—–๐—ต๐—ฎ๐—ป๐—ป๐—ฒ๐—น๐˜€: When direct native interop is the better choice. โ€ข ๐—จ๐—ป๐—ฑ๐—ฒ๐—ฟ ๐˜๐—ต๐—ฒ ๐—›๐—ผ๐—ผ๐—ฑ: How JNIgen and FFIgen auto-generate type-safe Dart bindings. โ€ข ๐——๐—ฒ๐—ฐ๐—ถ๐˜€๐—ถ๐—ผ๐—ป ๐— ๐—ฎ๐˜๐—ฟ๐—ถ๐˜…: Knowing exactly when to reach for JNIgen vs. FFIgen. โ€ข ๐—˜๐—ป๐—ฑ-๐˜๐—ผ-๐—˜๐—ป๐—ฑ ๐—ช๐—ฎ๐—น๐—ธ๐˜๐—ต๐—ฟ๐—ผ๐˜‚๐—ด๐—ต: Calling native Android and iOS APIs straight from Dart. ๐Ÿ“– Session breakdown: bit.ly/chotiFlutterconke26 Step Beyond Stacks with us this November in Nairobi! ๐Ÿ‡ฐ๐Ÿ‡ช ๐Ÿ“ Nairobi | Nov 5โ€“6 ๐ŸŽŸ๏ธ Lock in your ticket: bit.ly/dcKE2026Tickets
2
5
1
16
1,932
SamProgramiz retweeted
Ever hit the end of the month and wonder, "Wait, where did all my money go?" ๐Ÿค”๐Ÿ’ธ Itโ€™s time to stop guessing. Life Planner makes tracking your spending effortless. Hereโ€™s a quick 3-step guide to setting up your budgets. ๐Ÿ‘‡๐Ÿงต
1
2
1
2
237
SamProgramiz retweeted
Design your day with purpose. Life Planner lets you schedule, prioritize, and set remindersโ€”all in one place. Download now: App Store: thelifeplanner.co/apple/x | Google Play Store: thelifeplanner.co/play/x #Scheduling #TimeManagement
3
1
3
205
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
34
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
2
1
2
286
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.
4
1
24
1,764
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
2
1
3
332
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.
1
4
1
23
3,242
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. ๐Ÿ”’
23
127
15
536
30,015