Software Engineer & Problem Solver

I Build Things
That Don't Break.

Not because I'm lucky. Because I've been through enough failed systems, missed deadlines, and 2am production fires to know exactly how to build things that hold up when it counts. Payments. Ticketing. Elections. I've had my hands in all of it.

Years building software 10+
Voter records at national scale 200,000+
Election-day card scans 115,000
Scan throughput 22+/sec · 0% errors
Concurrent users, zero 5xx 5,000
Payment gateways integrated 3D-Secure ready
Countries in production 3
Live API routes (one platform) 81
Database tables under RLS 20+
Years building software 10+
Voter records at national scale 200,000+
Election-day card scans 115,000
Scan throughput 22+/sec · 0% errors
Concurrent users, zero 5xx 5,000
Payment gateways integrated 3D-Secure ready
Countries in production 3
Live API routes (one platform) 81
Database tables under RLS 20+

How?

Enforce correctness at the layer that can't be bypassed. Access control lives in the database query itself — not just the API or UI. A UI bug can't leak another region's data when the database is already scoped.

Encode business rules as data constraints, not just validation functions. Double-booking prevention is a database constraint — it holds even if the app is bypassed.

Design for the failure, not the happy path. Re-check the bank's side of every payment webhook. Queue offline and replay without double-counting. Split heavy queries before they timeout on the day that matters.

Pick the right tool, not the trendy one. Classical image processing solved the document-classification problem completely — faster, cheaper, fully auditable, no training data required.

Prove it.

5,000 Tikkets concurrent users · zero 5xx errors
115K Election Day Platform scans on election day · zero lost records
200K+ National Election voter records · national scale
22+/sec Tikkets scan throughput · sub-500ms p99
0 PayFyre reversals or fraud incidents · regulated fintech
0 Paradise Plates · Bahamas errors · 1,885 scans · 23 devices · 100% server success rate

Six systems. Real stakes. All still running.

The person behind the code

I learned resilience
the hard way. Now I build with it.

I've been in the trenches. Not as a metaphor — I've actually been the person holding the pager at 2am when a payment gateway decided to fail right before a major event. I've seen systems collapse under load because someone skipped the edge cases. I've cleaned up messes that could've been prevented.

That experience is exactly why I build the way I do.

I don't just write code that works in the happy path. I build for the real world — where users do unexpected things, where traffic spikes at the worst moment, where the stakes are high and failure is not an option.

I've shipped fintech platforms handling real money, ticketing systems for 40,000-person events, and civic infrastructure that can't go down on election day. Across three countries. With zero tolerance for "good enough."

If you're building something that actually matters — something that needs to work when it's tested, not just when it's demoed — let's talk.

Frontend Next.js · React · React Native
Backend Laravel · Node.js · Supabase Edge Functions
Database Postgres · Redis · Supabase
Payments Stripe · Oyster · Powertranz · 3D-Secure
Infrastructure AWS · Vercel · Railway · Docker
Civic Tech Elections · Voter Reg. · National Scale
BUILT TO LAST — NOT JUST TO SHIP — BUILT TO LAST — NOT JUST TO SHIP — BUILT TO LAST — NOT JUST TO SHIP — BUILT TO LAST — NOT JUST TO SHIP —

Got something that can't afford to fail?

Tell me what you're building. I'll tell you honestly whether I'm the right person for it. I take on a limited number of projects — and I only work on things I believe in.

hello@rashidashraf.com