Hi, I'mZiad Ahmedthat's me 👋Ziad Ahmed.I build systems thatscale.

Open to workSenior Software Engineer · 5+ yrs
Let's talk

Node.js · Go · Java/Spring Boot on PostgreSQL, MongoDB & Redis, running on AWS. And yes, I ship React, Next.js & React Native too.

Who's reading?
live trace
trace_id: 7f3a…10e
GET /v1/engineers/ziad-ahmed200 OK · 19ms
  • ├─ auth.verify role=visitor3ms
  • ├─ cache.get "experience" HIT1ms
  • ├─ postgres.query projects10ms
  • ├─ mongo.aggregate impact8ms
  • ├─ queue.publish "interview.requested"4ms
  • └─ respond { open_to_work: true }1ms
p99 < 50ms · error rate 0.00%

Companies I've built for

Production numbers, not side-project numbers.

Every figure below shipped to real users, on real infrastructure, with a real AWS bill attached.

Nugttah01
0×
faster Order List API

MongoDB index utilization restored — zero schema changes

Nugttah02
0%
less memory on exports

100,000+ record export pipeline, no timeouts

Nuxera03
0×
faster transcript rebuild

42 s → 0.3 s of event-loop time at the 120-chunk cap

Solid Ground04
~$0K/yr
cut from AWS spend

RDS upgrade, idle EC2s, unused Elastic IPs

Solid Ground05
0
REST APIs, solo-built

~85K lines of TypeScript · 629 commits · 9 months

Proven Solution06
804 → 1
project loads per save

~1,600 redundant queries and 10K log lines gone; the platform stopped stalling

Node.jsTypeScriptNestJSGoJavaSpring BootPostgreSQLMongoDBRedisAWSDockerKubernetesTerraformBullMQSQS / SNSKafkaRabbitMQReactNext.jsReact NativeStripeTwiliogRPCGraphQLNode.jsTypeScriptNestJSGoJavaSpring BootPostgreSQLMongoDBRedisAWSDockerKubernetesTerraformBullMQSQS / SNSKafkaRabbitMQReactNext.jsReact NativeStripeTwiliogRPCGraphQL

I collaborate with teams to build systems that stay boring in production.

Boring is the goal: predictable latency, readable code, and an AWS bill nobody panics about.

My experience
  1. Senior Team Lead Software Engineer at Proven Solution
    AWS · DevOps · Performance
  2. Senior Engineer at Nuxera
    Healthcare AI
  3. Senior Backend Engineer at Nugttah
    Jul 2025 – Jul 2026 · Full-time
  4. Senior Backend / Platform Engineer at Solid Ground Solutions LLC
    Jan 2025 – Apr 2026 · Contract · Remote (US)
  5. Teaching Assistant at AASTMT
    Feb 2026 – Jun 2026 · Part-time
  6. Backend Engineer (Mid-level) at Botit
    Sep 2023 – Sep 2025 · Full-time
  7. Freelance Software Engineer at Sonbola (السنبلة)
    Freelance · Customs clearance · Alexandria
Based in
Egypt
local time --:-- · remote-ready
Education
B.Sc. Computer Science
Arab Academy for Science, Technology & Maritime Transport
3.72
GPA / 4.0
#3
in cohort
Excellent with Honor
My daily toolkit
$ claude --mcp --agents
› drafting migration plan…
› writing tests first…
✓ human review: required
✓ ship ▍

Claude Code, MCP and agent harnesses daily, to ship faster. Every change is reviewed by a human.

How I work
01 Prove the test catches the bug

“Verified it fails when reverted” shows up in my PRs again and again. A test that passes either way proves nothing.

On my bookshelf
Designing Data-Intensive Applications
Martin Kleppmann
The big ideas behind reliable, scalable, and maintainable systems

Don't take my word for it. Run it.

Interactive toy versions of systems I've built in production. Break them, crash them, switch the algorithm and watch what happens.

t=0s
Acme Corp
bulk campaign
+6
wait0s
Bloom Dental
small office
queue empty
wait0s
Cedar Realty
small team
queue empty
wait0s
8 call workers

What you're seeing

One customer launches a huge campaign. With a single FIFO queue, the small customers wait behind it: they wait 0s and climbing.

Leader election · Redis + Lua

👑
node-1
leader
◦
node-2
follower
◦
node-3
follower
lock TTL
3000ms
  • node-1 › SET dispatcher:leader node-1 NX PX 3000 → OK

Systems I've shipped, and what they did in production.

Secure, measured, honest with data

Backend core of a medical transcription and clinical-documentation platform used by doctors, plus the web app, analytics dashboard, browser extension and desktop app around it. I made it faster, closed security holes, and stopped the product from showing fake numbers.

  • Audio pipeline: async ffmpeg and one probe per chunk instead of two, giving 3.7× throughput at 4 concurrent chunks and 74–118 ms less event-loop blocking per chunk
  • Chunk join: numerals match only number words of the same value, Egyptian Arabic spellings included, like تلاتة and تمانين. Rebuilding at the 120-chunk cap went from 42 s to 0.3 s of event-loop time, and log lines from ~7,300 to 238
  • Closed privilege escalation: org admins could grant themselves system_admin, revokes were never checked, DELETE /user/:id had no org scoping, suspended users' tokens kept working
  • Found every /api/speaker-verification/* endpoint unauthenticated, then reworked voice enrollment: no audio stored, fingerprint out of the audit log, voiceprint deletion confirmed before rows are removed
  • Hardening: global error handler (~35 catch blocks leaked Postgres/OpenAI errors), login timing oracle closed, a shared “[object Object]” rate-limit bucket fixed, a router-walking test that fails any route without auth, per-commit releases with automatic rollback, an 86-variable env schema
  • No fake data: one metric engine where every value is live | partial | proposed, so the UI says “not instrumented” instead of 0; confidence shows null, not “0.0%”
  • Clients: SDAIA/PDPL compliance screen and a safe “keep me signed in” in the browser extension, Arabic RTL chat, ONNX wake-word detection on desktop, and an Opus encoder fix for the 72 ms lost at every chunk join

Integrations: PostgreSQL · OpenAI · ffmpeg · Opus · ONNX · React Query

browser exttranscribe APIauth · roleswake wordffmpeg chunkschunk joinanalyticsPostgresCDI · coder
300
Commits
7
Repos
3.7×
Throughput
42s → 0.3s
Rebuild
Node.jsTypeScriptPostgreSQLReactffmpegONNX

The 3am stories. Real incidents, handled.

Anyone can build the happy path. Here's what I did when production caught fire, written as blameless postmortems.

All systems operational
13 incidents resolved · 0 open
2023career uptimetoday
    1. 500s everywhere→
    2. CloudTrail: no human change→
    3. Snapshot→
    4. Resized & restored
    What happened
    Production started returning 500s on every API.
    What I did
    Traced it to a memory-starved RDS MySQL instance and used CloudTrail to rule out any human change. Took a snapshot, then resized prod from db.t4g.micro to db.t4g.small.
    Outcome
    Service restored, with CloudTrail evidence that nobody changed anything.

Backend at heart. Full-stack when it matters.

Node.js, Go and Java/Spring Boot on the server. React, Next.js and React Native when the product needs a face.

Languages
GoTypeScriptJavaScriptJavaPythonSQL
Backend
Node.jsNestJSExpressSpring BootSpring CloudRESTGraphQLgRPCWebSocketsWebhooksffmpegOpenAI API
Data
PostgreSQLMongoDBRedisMySQLSQLiteFlywayIndexingQuery optimizationSchema design
Cloud & DevOps
AWS EC2RDSS3SQSSNSSESALBCloudFrontCloudTrailAmplifyDockerKubernetesTerraformGitHub ActionsNGINXCloudflare
Messaging
BullMQSQS / SNSRabbitMQKafkaRedis jobs
Frontend & Mobile
ReactNext.jsReact NativeReact QueryBrowser extensionsTypeScript
Architecture
MicroservicesEvent-drivenClean ArchitectureDDDSOLIDThreat modeling
Testing
JestSupertestMochaCypress

Learning backend? Here's the path I'd take again.

I teach Software Component Design and Software Architecture as a TA at AASTMT, on top of Java, data structures, OOP, APIs and SQL. This is the short version of what I tell my students.

step 01

Go deep on one language

Go, Java or TypeScript. Learn its runtime, concurrency model and standard library before chasing frameworks.

step 02

Learn SQL like it pays rent

Joins, indexes, transactions, isolation levels. Read EXPLAIN output until it reads like English.

step 03

Build a real HTTP API

Auth, validation, pagination, error handling, tests. Document it with OpenAPI, then deploy it.

step 04

Add caching & queues

Redis, BullMQ or SQS. Learn retries, idempotency and what “exactly once” really costs.

step 05

Ship to the cloud

Docker, a VM or container service, a managed DB, logs and metrics. Then read your first AWS bill.

step 06

Build a database from scratch

A tiny KV store with a WAL and a TCP server teaches more internals than any course. (That's KO-DB.)

watch it built

KO-DB: a database from scratch in Go, explained on YouTube.

Certificates & community. Still learning, still showing up.

🥇 AwardNov – Dec 2022

1st place, AI 101 contest

IEEE AAST Alexandria Student Branch

Won with the project “Gython”

🤝 Community

IEEE volunteer, Technical Committee

IEEE AAST Alexandria Student Branch

Technical committee volunteer

📜 CertificateJan 2026

Ultimate Design Patterns

Udemy · Mahmoud Youssef

11 hoursVerify ↗

📜 CertificateAug 2023

The Complete 2023 Web Development Bootcamp

Udemy · Dr. Angela Yu

66 hoursVerify ↗

FAQ

The questions recruiters and hiring managers usually ask in the first call, answered up front.

Senior software engineering roles, backend-heavy or full-stack, where I own services end to end: API design, data modeling, queues, cloud cost and reliability.

🤝

Tell me about your next system.

Hiring for a senior engineering role, need a platform rescued, or just want to talk databases? My inbox is open.