mart.rs

5.9K posts

mart.rs banner
mart.rs

mart.rs

@mart_cpp

Nothing but a ✏️ in the hands of the creator. Software engineer|| technical writer|| building @rust_africa|| pev Fellowship member @rust_foundation

remote Bergabung Temmuz 2022
398 Mengikuti555 Pengikut
Tweet Disematkan
mart.rs
mart.rs@mart_cpp·
It time to start pushing again For a while, I've been empowering young communities in Nigeria, carmeroon, South Africa , Kenya ghana, and others in adoption on rust. Also, push for some classroom rust learning. Now, starting 60-day rust for backend online. Let cook
mart.rs tweet mediamart.rs tweet mediamart.rs tweet mediamart.rs tweet media
English
5
9
42
2.7K
chinedu🦀
chinedu🦀@chinedu_10·
Why do most Nigerian-owned businesses never outlast the founder? Because we'd rather stay small and in control than grow and share. "Emeka and Sons", “Timi enterprises” or “Yakubu manage resources Ltd” opens. Emeka runs everything. Someone comes with a partnership that would 3x the business and they says no because "what does this person really want?" Even when the deal CLEARLY favours them. Even when you're literally trying to put money in their pocket. Skepticism. You cannot build a multimillion-dollar enterprise on the principle of trusting nobody. That math doesn't work.
English
5
1
13
736
mart.rs
mart.rs@mart_cpp·
@chinedu_10 As a Nigerian you shouldn't be shock no be everyday we dey see this one
English
0
0
0
5
mart.rs
mart.rs@mart_cpp·
🔥
chinedu🦀@chinedu_10

I almost leaked customer data between two farms in production. A farmer in Lagos nearly saw egg production data from a 60,000-bird operation in Tanzania. One missed WHERE clause. That's all it would have taken. Here's the architecture that prevents it. SmartFarmAI manages poultry farms from 200 to 100,000 birds. All on one database. Same tables. Same code. The challenge: absolute data isolation between tenants. I solved it with Rust + Actix-web + PostgreSQL Row-Level Security. The trick: every request starts a DB transaction, sets a LOCAL tenant variable, and Postgres RLS policies automatically filter every query. No manual WHERE clauses. The database enforces it. The bug that almost burned me: PostgreSQL session variables persist on pooled connections. If you set tenant context with SESSION scope, the next request on that connection inherits the WRONG tenant. Silent. Intermittent. Only shows up under production load. Another production lesson: I enabled RLS on my outbox table. Background worker fetched zero events. Hundreds queued. No errors. No warnings. RLS was silently filtering everything because the worker had no tenant context. Took me hours to figure out. Full article with complete code examples: - Schema with composite foreign keys - RLS policies - Actix-web middleware - Connection pool safety - Testing patterns therustguy.com/building-produ… If you're building multi-tenant SaaS, this will save you weeks.

ART
0
0
2
72
mart.rs me-retweet
Sigma Prime
Sigma Prime@sigp_io·
We’re hiring a Rust engineer to develop MEV and block-building systems at the core of Ethereum. The ideal fit writes high performance Rust, understands EVM execution mechanics deeply, and is familiar with the transaction supply chain.
Sigma Prime tweet media
English
10
21
233
13.8K
mart.rs
mart.rs@mart_cpp·
@charles_lukes Hmmmm people no go belive you but me personally I understand
English
0
0
0
36
Charley 🦀
Charley 🦀@charles_lukes·
you know when i look at this kind of conversations i just shake my head because even as a mid level eng years ago i earned way more than the tech lead here.
Akintola Steve@Akintola_steve

Tech bros in 🇳🇬: Entry Level: ₦150 Mid Level: ₦350K – ₦500K Senior Level: ₦600K – ₦800K Team Lead: ₦1M – ₦1.5M Techie in 🇬🇧 : Junior Level: £1,500 Honestly, this isn’t the life we should be living in this part of the world.

English
2
1
7
1.2K
AROLÉ
AROLÉ@TijaniOlaWorld·
@Hibana122 Oyinda Tinubu is a model ,so make you talk another one jare .
English
24
0
7
23K
mart.rs
mart.rs@mart_cpp·
Are you aware you sayed this? sir!
D. H Bwala@BwalaDaniel

PRESS STATEMENT In the last 24 hours, social media has exploded over my interview with Mehdi Hassan, albeit with varied opinions. Let me set the record straight. When I signed on to the privileged job granted to me by Mr. President, I was well aware of its implications. Selling ice cream, looking fine, and seeking the praises of men were never part of it. Some of the fiercest critics of my interview can not even stand local TV anchors. But the task of promoting and defending the President and his administration is what I do with ease and joy. I am prepared to appear before any interviewer, anywhere in the world, any day and at any time, to defend this government and its policies. I have never, and will never, subscribe to ducking or dodging interviews on matters that concern promoting and defending the administration I was appointed to serve. It is the least of what is required of me. Head to Head contacted me requesting an interview, stating that they wanted to challenge our government on security, the economy, and corruption. Nowhere in our almost six months of communication did they mention that they were going to challenge my past. If that had been their plan, ethically and professionally, they were supposed to inform me so I could prepare my response. But that’s okay, ethically, that is on them, not on me. I refused to swallow the pill of Mehdi’s “opposition research-style journalism,” and even today, if you carefully compare what he read as quotes from organisations and groups, you will see that many were inaccurate and some were outright fake news. But I will leave that for another day. As for what I said about President Tinubu in the past, I am glad those were things I said when I was in the opposition saddle with such zeal. It is all politics. Half of Donald Trump’s cabinet is made up of people who once spoke against him, and quite a number of people in our own cabinet also spoke against President Tinubu in the past. Those things do not bother him if you care to know. The majority of the naysayers are members of the opposition and their sympathisers. It does not bother me one bit. Their temporary excitement over the interview has not lasted and will not last, because it does not take away their obvious problem of lack of vision, mission in conducting and managing a political party; yet they seek to manage Nigeria. Clearly they have no path to victory and no alternative policies or program for the Nigerian people. And if they say they do, they can as well go to head to head and be interrogated on that; as the saying in Hausa goes “Ga fili Ga doki” I conclude by thanking the many Nigerians and non-Nigerians who sent in their commendations over my brave defence of our government in an interview where the anchor would hardly let you answer a question unless it suited his narrative. I still have admiration and respect for Mehdi Hassan as arguably the best debater on the planet. I look forward to part two of the Head to Head interview, and I am glad that by then questions about my past will no longer be news so that we can focus on our administration’s policies, programs and what we have achieved so far. Stay tuned. – D.H Bwala Special Adviser to President on Media and Policy Communication (State House) Saturday March 7, 2026

English
0
0
0
18
mart.rs
mart.rs@mart_cpp·
@dannyclassi_c Okay imagine 1m url in your db and you do this check? How effective is that ?
English
1
0
0
22
DevDanny👨‍💻
DevDanny👨‍💻@dannyclassi_c·
Coming from the original url perspective: Creation of a short url is linked to a user Now when a user wants to shorten an original url(they can passing an optional slug- if they don’t want a generated code and an optional expiresAt) During the creation, the business logic checks if the user has shortened the said original url prior(and also if the expireAt TTL hasn’t exceeded) Then it returns the exist short url back to the user without creating another one Now from the short url perspective: If you pass in an optional slug, a quick check on db ensure that the slug is not existing before proceeding to creating the short url Now if the user doesn’t pass any slug, nanoid generates a random code (but it has to be unique as a uniqueness constraint is added to the schema for these short codes) So with this, we dont have to worry about collision resolution
English
1
0
0
65
DevDanny👨‍💻
DevDanny👨‍💻@dannyclassi_c·
Deployed my URL shortener API to production today. Live and public. Also added rate limiting and went down the rabbit hole of why express-rate-limit breaks at scale. The short version: it stores counters in server memory. One server? Works fine. Multiple servers behind a load balancer? Each server has its own counter. A user could hit 100 requests on each server and bypass your limit entirely. That’s why production systems use Redis as a shared counter across all instances. Same concept, centralized storage. Live API: url-shortener-x2nr.onrender.com Repo: github.com/Verifieddanny/… Day 21.
DevDanny👨‍💻@dannyclassi_c

UPDATE Built a complete URL shortener API in three days. No tutorial. No template. Auth: signup with bcrypt hashing, login with JWT, middleware protecting routes. Core: shorten URLs with random codes or custom slugs like /danny-linkedin. Set expiration dates — expired links return 410 Gone. Smart duplicate detection: if the URL already exists and hasn't expired, return the existing link instead of creating a new one. Analytics: click tracking on every redirect, stats per link with creator verification, fetch all your links in one call. Security: 401 for unauthenticated requests. 403 if you try to view someone else's stats. Reserved usernames blocked. TypeScript. Express. MongoDB. Every decision was mine. Day 20.

English
12
7
137
10.1K