[{"data":1,"prerenderedAt":121},["ShallowReactive",2],{"terminal-content-v1":3},{"work":4,"logs":120},[5,22,38,51,65,79,89,97,107],{"path":6,"slug":7,"title":8,"summary":9,"client":10,"period":11,"track":12,"secondary":13,"stack":14,"order":21},"/work/remittance-rebuild","remittance-rebuild","Rebuilding a remittance platform, then getting it licensed","Idempotency keys and saga orchestration across mobile money and bank rails, then ISO 27001 and a central bank licence led from inside the engineering team.","Fast Pace Transfer","2020 to 2023","engineering","advisory",[15,16,17,18,19,20],"PHP (Laravel)","Java","Azure","Docker","Redis","MySQL",1,{"path":23,"slug":24,"title":25,"summary":26,"client":27,"period":28,"track":29,"secondary":30,"stack":31,"order":37},"/work/scaling-to-thirty","scaling-to-thirty","What changes between eight engineers and thirty","What stopped working past a single team, what had to be written down, and how quality holds when I cannot review everything.","Turntabl","2023 to present","leadership",null,[32,33,34,35,36],"Org design","Hiring","Promotion frameworks","ADRs","On-call rotation",2,{"path":39,"slug":40,"title":41,"summary":42,"client":43,"period":28,"track":13,"secondary":29,"stack":44,"order":50},"/work/scoping-fixed-price-work","scoping-fixed-price-work","Estimating engineering work you then have to deliver","Work breakdown to per-role hours, requirement compliance matrices, and banded thresholds that stop a bid and re-estimate instead of silently overrunning.","No single engagement",[45,46,47,48,49],"Work breakdown structures","Hour ledgers","Compliance matrices","Statements of work","Milestone gating",3,{"path":52,"slug":53,"title":54,"summary":55,"client":56,"period":57,"track":12,"secondary":29,"stack":58,"order":64},"/work/versioned-data-analytics-replica","versioned-data-analytics-replica","Making a versioned datastore queryable without losing its history","An append-only analytical replica that keeps every version of a record intact on a backend with no cheap UPDATE, from backfill to live replication.","Anonymised, current engagement","Current",[59,60,61,62,63],"Event streaming","Columnar warehouse","Document store","Kubernetes","Data modelling",4,{"path":66,"slug":67,"title":68,"summary":69,"client":56,"period":57,"track":12,"secondary":13,"stack":70,"order":78},"/work/provider-agnostic-wallet-layer","provider-agnostic-wallet-layer","Making three custody providers interchangeable behind one wallet interface","Three MPC custody models with different trust boundaries and key ceremonies, abstracted so product code never learns which one is underneath.",[71,72,73,18,74,75,76,77],"Go","Kotlin","Python","MPC custody","OIDC/PKCE","ASVS 5.0","SBOM",5,{"path":80,"slug":81,"title":82,"summary":83,"client":56,"period":57,"track":12,"secondary":30,"stack":84,"order":88},"/work/identity-and-onboarding","identity-and-onboarding","Onboarding and identity for a regulated crypto platform","A single-use invitation token lifecycle specified as a state machine, an auth gateway with OIDC/PKCE, and KYC verification across core services.",[85,75,86,87],"Auth gateway","Single-use tokens","KYC integration",6,{"path":90,"slug":91,"title":92,"summary":93,"client":27,"period":28,"track":29,"secondary":30,"stack":94,"order":96},"/work/engineering-ladder","engineering-ladder","A promotion framework for a consultancy that does not fit product-company ladders","Five levels, forking into IC and management tracks at L4, adapted from consulting firm models for an engagement-based services context.",[32,95],"Career frameworks",7,{"path":98,"slug":99,"title":100,"summary":101,"client":102,"period":103,"track":12,"secondary":30,"stack":104,"order":106},"/work/reconciliation-automation","reconciliation-automation","Automating end-of-day reconciliation","Financial errors down over 75% after end-of-day reconciliation stopped being a job someone did by hand.","ReachAfrika","2019 to 2020",[15,73,20,19,105],"Linux",8,{"path":108,"slug":109,"title":110,"summary":111,"client":112,"period":113,"track":12,"secondary":13,"stack":114,"order":119},"/work/fatca-regulatory-reporting","fatca-regulatory-reporting","Reporting to a foreign regulator out of a core banking system","FATCA returns assembled out of the bank's core banking system for the US IRS, plus a utility payments integration that lifted collections over 10%.","First Atlantic Bank","2018 to 2019",[16,115,116,117,118],"C#","Oracle FlexCube","SQL Server","REST APIs",9,[],1789350680563]