Security treated as engineering, not as a checkbox — the standard KodiiPay is held to.
Before you read: Written from live engineering practice — the money-moving, million-user work our team runs on our own products, set down so anyone building something can learn from it.
01 · What it is
Security in most products is a list of things someone meant to do. We treat it as engineering: authentication and authorization designed rather than bolted on, encryption at rest and in transit everywhere it matters, secrets managed so keys aren't in the codebase or the config file, and least privilege applied to every database policy, edge function and admin tool. Rate limiting and abuse protection stop the noisy attackers, pen-test discipline and review catch the quiet ones, and monitoring, detection and response mean incidents are found in minutes, not months. For a payments business, this is the difference between surviving and not.
What a cybersecurity build covers:
Security bolted on after the build treats attackers as an afterthought, and attackers never are. We start with a threat model that names the actual adversaries and their incentives, then build authentication, authorization, secrets, encryption and monitoring as structural defenses rather than checklists. On platforms that move money, the payment rails get a harder standard still: callbacks are verified against the gateway before any settlement, every money action is rate-limited, abuse is blocked at the database, and the books reconcile line-by-line — whichever rail carried the cash.
What we do
How we do it
02 · The full discipline
Most products treat security as a list of things someone meant to do: a purchased scan, a conference talk attended, a checkbox ticked the week before launch. Real security is engineering — authentication designed, not bolted on, authorization enforced at every layer, encryption everywhere it matters, secrets managed, the money paths protected to a higher standard than everything else, and incidents found in minutes because the monitoring was built to detect them.
We practice security the way a live platform has to — because KodiiPay is a payments platform we operate ourselves in production, moving real money through M-Pesa on Safaricom's Daraja rails, alongside card, PayPal, Stripe, PayStack and bank-transfer movements held by a payments layer that treats every rail as one defended surface. We have defended it against the reality of Kenya's internet: identity numbers, phone enumeration, self-dealing fraud, fake callbacks, rapid-fire abuse, leaked secrets and the social engineering that never stops. Every serious incident we have absorbed is now a rule, a check, a constraint or a test in the platform.
Below is the full tour — the threat model, OWASP, authentication and authorization, secrets, encryption, the money-path protections we run specifically, defensive monitoring, incident response, and the honest places where 'fully secure' is a fiction. This is how we actually secure money-moving systems, and it is the standard we bring to every client.
03
A checklist assumes the threats are known, static and few, and that compliance is the goal. Engineering assumes the threats are adaptive, distributed and personal, and that the goal is survivability. The difference shows up in every decision: a checklist adds a captcha; engineering rates the endpoint and limits it. A checklist pays for a scan once; engineering wires detection that runs every minute.
A checklist can be completed. Engineering never is — and that is precisely the point. We run security as an engineering discipline because a money platform has no 'finished' that leaves it safe.
04
Security without a threat model is security theatre — defenses built for imagined attackers while the real ones walk the open door. We begin every build by naming the adversaries, their assets, their incentives and their access, and we keep the model updated as the platform grows. On a payments platform, the threat model is refreshingly specific.
The threat model is the map the rest of the security work follows. We update it as the platform does — because the attackers certainly do.
05
OWASP's Top Ten is not a checklist to purchase; it is a syllabus of the classes of failure that show up in web and API software. We run the whole syllabus against every build, and on a platform that moves money the OWASP categories are not academic — each one has a real cash price.
The OWASP categories are where security becomes concrete. We test them, we trip over them in rehearsals, and we fix them before they trip over us in production.
06
The less glamorous OWASP categories are where real attacks graduate from theory: the server that fetches URLs, the browser that silently carries cookies, the callback that arrives from the internet uninvited. These matter profoundly on a platform whose servers talk to a payment gateway.
The server-side blind spots are where attackers who read the CVE list outlast teams that read the dashboard. We close them structurally, not by vigilance.
07
Authentication answers the first question of any transaction: who is this? On a money platform the answer gates actual cash, and the answers Kenya demands — phone, ID, PIN, OTP, biometrics, device — each bring their own attack surface. We engineer the layers so that stealing one factor is never enough.
Authentication is where identity meets cash, and Kenya's reality — shared phones, SIM swaps, downloaded APKs — makes it the most attacked layer of all. We build it to lose to the attacker slowly and win against the user fast.
08
Authentication says who you are; authorization says what you may do, and the two must never be confused. Authorization on a money platform is a tower of walls: roles, policies in the database, row-level security, function-level gates, and the honest rule that no surface may silently widen a boundary.
Authorization is the difference between a user and a wanderer. We build the walls in the database, so the truth survives a buggy app, a confused developer and a malicious client alike.
09
Every layer above the database can have a bug today; the database is the layer the money actually lives on, so it carries the hardest defenses. Row-level security keeps rows owned, SECURITY-DEFINER procedures keep the money-moving logic a single verified path, and constraints make an impossible state unrepresentable. This is where our money platform's security is actually enacted, not described.
If a platform's security only lives in the application, its security lives as long as the application's best day. We put the walls in the database so the money is safe even on the worst day.
10
The gateway credentials that move real money, the signing keys that prove callbacks, the database passwords that unlock the ledger — a leaked secret is not a configuration problem, it is a found door. We treat secrets as the moat around the entire platform, and the discipline is absolute.
Every serious breach narrative starts with a secret that was managed casually. We make secrets the most defended entry-point in the platform, because on a money platform they are.
11
Encryption is the guarantee that stolen data is a bust, not a jackpot: seizing a disk, a backup, a logs export or a network capture yields ciphertext, not customer money or identity. We apply it in both directions, everywhere it matters, with the keys managed and rotation rehearsed.
Encryption does not stop the thief; it stops the theft. We make the seized data worthless so attackers chase easier targets — and on money platforms, there are none easier than a careless neighbor's.
12
Beyond the general defenses, the surfaces that move cash carry protections nobody else gets: rate limits as financial controls, verification against the gateway before trust, escrow and holds against the abuses money attracts, and freeze paths for the account that has turned hostile. Every one of these is structural, running always, not a checkbox anyone has to remember.
These are the protections our own platform actually runs, hourly, against real money. The money paths get the hardest protections because they are the paths where the damage is measured in shillings.
13
The most successful attacks on Kenyan money never touch an API. They are the phone call that pretends to be a bank, the KYB alert that asks the shopkeeper to 'confirm' a code, the 'your M-Pesa has been credited, share the reversal PIN' script, the fake goods on a marketplace. Social engineering defeats every technical control the moment a human completes the scam. We engineer the platform and the user journey so the human has fewer levers to pull against themselves.
On a money platform, the human is in the security perimeter — so the perimeter must be built to help the human rather than trick them. We build the technical walls, and we build the user knowledge that makes the social attacks bounce.
14
Prevention without detection is optimism: the attack you fail to stop is discovered only by whoever finds the money missing. Defensive monitoring is the radar — watching the logs, the money path, the authentication failures, the rate-limit trips and the anomaly shapes, and escalating to humans in minutes, not weeks.
Every platform gets attacked; the difference between a scare and a catastrophe is how soon anyone knew. We make detection the kind of discipline that finds the breach before the customer does.
15
An incident is not the moment the alert fires; it is the moment the organization decides what an alert means. Incident response is a rehearsed machine: roles assigned, runbooks concrete, communication approved, evidence preserved, recovery measured. For a money platform, the first fifteen minutes are the difference between a contained event and a frozen-wallet catastrophe.
An incident is a rehearsal with real consequences. We rehearse with fake consequences until the real one is handled by muscle, not improvisation.
16
Penetration testing is the closest thing security has to a fire inspection: a qualified adversary with a scope, a budget and a deadline tries to break what you built. We run it on a cadence, treat findings as engineering requirements, and pair it with the honest truth that a pen test proves what a test can prove — not that the platform is finished.
A pen test is a snapshot of the wall at one moment, taken by one crowd of climbers. We take snapshots on a cadence, repair what they reveal, and stay honest that the wall must be watched every day regardless.
17
Attackers increasingly skip the target and compromise the road to it: a poisoned dependency, a hijacked build, a compromised container registry, a CI vault with too many keys. Supply-chain security is the discipline of protecting the delivery itself, and on a money platform the deployment pipeline is itself a money surface.
The strongest wall is worthless if the road in front of it was bought with a poisoned brick. We protect the delivery road the way we protect the platform it delivers.
18
Security you cannot prove is security you cannot defend in front of a customer, a partner, an investor or a regulator. The deliverable of a security engagement is not only the fortified platform — it is the evidence: the documentation, the audit trails, the test results, the review notes and the threat model, all of it written to be read by the next engineer and the next auditor.
Security that lives only in memory dies with the memory. We deliver the evidence that lets your security posture outlive every person who built it.
19
We will say plainly what the industry rarely does: there is no such thing as a finished or fully secure system. The gateways change, the attacks change, the staff change, and every release opens a new inch of wall. What we sell is not 'completeness' — it is a permanently-running discipline that treats each change, each scan and each incident as another training step toward a platform that fails safely.
The most dangerous security claim is 'we are secure.' The most honest is 'we are watching, we rehearse the failures, and we keep improving.' That is what we actually deliver — the watching, the rehearsing and the improving, on a platform that moves real money.
The toolchain
The same classes of defense that keep our payment platform — where a leaked key moves real money and a forged callback costs real cash — hardened and watched. Every tool exists because an attacker taught us it was needed.
01
Who is asking, and what may they do
02
The OWASP layer
03
The last wall, where the money lives
04
The moat around the machine
05
The protections the cash rails get
06
The radar that never blinks
07
The road and the evidence
Lifecycle
Security is a standing discipline, not a launch-week sprint. This is the arc every platform we secure passes through — and the one our own money platform is permanently travelling.
01
Name the adversaries, their assets, their incentives and their access, and keep the model updated as the platform grows.
02
Roles, authorization, RLS policies and SECURITY-DEFINER procedures decided before features, so the walls are structural.
03
Private, sealed, least-privilege and encrypted as the starting position for every template and grant.
04
Credentials and keys into the managed store with rotation, audit and per-environment separation.
05
Rate limits, verification, escrow, holds, self-dealing blocks and freeze paths on every cash surface.
06
Authentication, money shape and abuse signals watched and escalated to humans in minutes, not weeks.
07
Roles, runbooks and containment commands drilled until the first real incident is handled by muscle.
08
Dependency scans in CI, security tests in the pipeline, and pen tests on a cadence with retests to close.
09
Signed artifacts, curated images and least-privilege identities so the supply chain cannot become the attack.
10
Threat model, authorization notes, runbooks and audit trails delivered so the posture is provable.
11
Incidents, near-misses and fired controls become root causes, fixes, tests and detection updates.
12
The cadence of review, testing, rehearsal and monitoring continues as long as the platform runs — because that is where 'secure' actually lives.
Closing
Security is not the department that says no; it is the engineering discipline that lets the whole platform say yes — safely, provably and for real money. The work we bring to clients includes:
A platform that moves money is a promise that is attacked every hour, by people who know exactly where the money is. Securing it is not a project; it is the running state of the business.
We have hardened a live M-Pesa platform after real attacks — and we keep hardening it. When your platform needs security that has survived contact with the real world, that is what you get.
Previous capability
Infrastructure as Code
Next capability
UI/UX Design
The discipline above is what we run on our own products every day. If it would help on yours, our door is open.