Available for freelance projects Based in Egypt · Working remotely

MOHAMED GOMAA / SOFTWARE DEVELOPER

Useful software.
Thoughtfully
built.

I turn practical problems into clear interfaces and working applications. JavaScript, React, and the APIs that connect them.

FROM THE WORKBENCH01 / 05
Notes, checklists & a calmer workflow.Explore ↗
Interfaces with intent. Code with a reason.
JAVASCRIPTREACTAPIsCSS

01 / SELECTED WORK

Built. Tested.
Explained.

Open the demos. Read the decisions.
See what happens behind the interface.

5 projects

NOTEWELDFULL-STACK APPLICATION
NoteweldNotesProject labelsArchiveTrash
PROJECT / WEBSITELaunch checklist

☑ Responsive layout

☑ Account authentication

☐ Final review

Client work
Ideas worth keeping

Simple notes.
Saved to your account.
Ready when you are.

Interface illustration
01 / WEB APPLICATIONNext.js · React · PostgreSQL

Noteweld — a connected writing workspace

Markdown notes and checklists with Vim editing, stable wiki links, backlinks and a filterable graph, backed by explicit saves and conflict recovery.

The engineering behind it

The problem

Notes need to survive more than a page refresh. They also need to stay private, be easy to find, and be recoverable after deletion.

What I built

  • Markdown writing, preview and split view; optional Vim keys, undo/redo, in-note search and exact Markdown downloads.
  • Editable checklists with color, pinning and labels; an account-free browser-only editor example.
  • Stable ID wiki links, explicit broken/ambiguous targets, saved backlinks and linked-note pages across active/archive notes.
  • A bounded graph with label/title filters, neighbourhood focus, fit/zoom/pan and equivalent keyboard/list navigation.
  • Search across titles, bodies, labels, and checklist items.
  • Real PostgreSQL transactions, account isolation and revision checks that preserve conflicting drafts.
  • Private recovery keys, session revocation, JSON export and account deletion.
  • Restore from trash, confirmed permanent deletion, and retryable save errors that preserve edits.

What I checked

Actual PostgreSQL rollback, duplicate-signup races, cross-account isolation, concurrent revisions, quotas and backup restoration. The browser journey uses real login cookies and saved notes. It checks Vim, retained undo, failed-save recovery, safe Markdown and exact exports, plus stable links across renames/trash/restoration, two-account isolation and graph/keyboard/phone behavior. Editor and graph failures are exercised explicitly.

Current boundaries

Free bounded preview with billing closed. Graphs draw up to 500 nodes / 1,000 edges; current accounts support 250 notes. Durable revision history and source-bundle imports are planned. No email recovery or end-to-end encryption is claimed.

NOTEWELD / LOCALRUNNING APP PREVIEW
02 / BROWSER APPLICATIONJavaScript · CSS · Webpack

Noteweld Local — Vanilla JS Demo

A browser-only notes app built directly with the DOM. Create checklists, organize notes, and take your data with you.

The engineering behind it

The problem

Quick notes should work without an account. Browser storage is useful, but people still need a way to back up and transfer their data.

What I built

  • Feature modules and native DOM events rather than a UI framework.
  • Search, labels, checklists, pinning, archive, and trash.
  • JSON backup/export that includes archived and deleted notes.
  • Validated, additive import with duplicate detection and storage-failure rollback.

What I check

Store operations, checklist editing, backup roundtrips, malformed imports, duplicate IDs, and partial storage failures.

The embedded demo uses this browser's localStorage. Its data stays on this device.

BATCHLARK / QUEUE OBSERVATORYBACKEND + LIVE DASHBOARD
Batch arrives →
01020304···
W1PROCESSING
W2PROCESSING
W3PROCESSING
BOUNDED QUEUE → FIXED WORKER POOL
Architecture illustration · simulated deliveries
03 / SYSTEMS STUDYGo · net/http · SSE

Batchlark — Go concurrency study

A retained Go concurrency study with bounded workers and streaming progress. A practical science-oriented replacement is under review.

The engineering behind it

The problem

A queue does not truly limit concurrency if every queued job creates another waiting goroutine. Slow stream clients can also stall all workers.

What I built

  • A fixed number of workers reading directly from a bounded channel.
  • Batch IDs, progress endpoints, queue metrics, and all-or-nothing admission with retry responses.
  • Buffered SSE clients, heartbeats, request cancellation, and slow-client disconnection.
  • Bounded batch history and graceful shutdown that drains accepted work.

What I check

Exact admission counts, invalid inputs, queue saturation, worker bounds, shutdown, and slow stream handling with Go's race detector.

Retained engineering study; replacement under review. This is an in-memory simulation, not a production webhook delivery service. It does not make outbound requests or persist jobs.

SONAWEFT / SOURCE-LINKED NOTESWEB APP + PYTHON CLI
recording → portable notes
$ sonaweft recording.mp3 --review

# Original ASR, corrections & notes stay separate
transcript.md   transcript.srt
transcript.json   transcript.vtt
summary.md   claims.md
manifest.json

# Stable segments. Source-linked review.
# Complete exports, recoverable work.
CLI workflow illustration · live app linked below
04 / MEDIA PROCESSINGPython · FastAPI · Modal · Whisper

Sonaweft — audio to source-linked notes

Hear and correct timestamped transcripts, derive optional AI notes, and export Markdown and subtitles while preserving the original.

The engineering behind it

The problem

A transcript needs traceability to the recording, clear correction history, portable exports and a reliable way to recover failed processing.

What I built

  • Inspected uploads, confirmed quotes and bounded on-demand Whisper processing.
  • Timestamp player, segment search, separate corrections and source-quoted optional DeepSeek review.
  • Markdown/JSON/SRT/VTT bundles with stable segment IDs, hashes and provenance for future workspace imports.
  • Transactional credit holds, idempotent jobs, private recovery, retention cleanup, owner reports and a pause switch.
  • Compatible local CPU CLI with private ASR checkpoints and atomic complete exports.

What I checked

Actual generated speech through local CPU and cloud GPU recognition, real DeepSeek review, and browser upload/correction/export. SQLite accounting, isolation, failed work, source validation and Paddle lifecycle cases have automated tests; payment APIs are mocked.

Current boundaries

English uploads up to 64 MiB / 60 minutes; the bounded free sample processes the first 30 seconds. Paid packs await merchant/website approval and real payment tests. Hosted URL imports, speaker diarization and Noteweld integration are not implemented. AI notes and scholarly metadata candidates do not verify facts.

PAGEWEFTPDF → MARKDOWN
SOURCE / PDF

Ideas on paper.

PORTABLE / MARKDOWN# Ideas on paper

Readable text.
Structured sections.
Images alongside.

![Figure](images/chart.png)
.md + images → .zip
Workflow illustration · not extracted sample output
05 / DOCUMENT PROCESSINGPython · FastAPI · Modal · MinerU

Pageweft — PDF to Markdown

Convert a PDF into portable Markdown and images, with source-page navigation and a report of detectable extraction issues.

The engineering behind it

The problem

Books and technical PDFs need usable, editable files for a reader's own tools. Successful extraction also needs traceability to the original pages.

What I built

  • A FastAPI book/range inspector with confirmed quotes, bounded MinerU GPU sections and a cheaper text-only route.
  • A persistent SQLite job/credit ledger with serialized writes, reserve/settle/release accounting, duplicate suppression and session-owned downloads.
  • Source-linked review, saved correction history, selective reprocessing and portable Markdown/image exports with manifests and original engine output.
  • Owner-only activity and billing reports, admission budgets, a pause switch and encrypted financial backups; commercial purchases stay disabled pending seller activation.

What I checked

A complete 1,000-page synthetic PDF across 50 cloud text sections, a real MinerU selection, public trial/edit/export and session isolation. Automated tests cover credits, partial failures, recovery, bounds and source-aware exports; payment-provider checks are mocked.

Current boundaries

The public free sample is one selected page. Book processing is implemented up to 64 MiB / 1,000 PDF pages; real credit purchases await seller activation. Source links and issue flags do not certify accuracy; specialized symbols and complex layouts need source review.

THE WORK, EXPLAINED

Useful software.
Readable manuals.

Explore the features, follow the engineering decisions, and see what each release actually verified.

Open Fieldnotes

02 / THE WAY I WORK

Good work starts
with clarity.

I focus on JavaScript and practical web development.
I am building my TypeScript skills through these projects.

01

Understand the job.

Reproduce the issue or define the workflow. Agree on what a successful result looks like.

02

Build the useful part.

Keep changes focused. Make the happy path, empty states, and failure states work together.

03

Check & hand over.

Test the behavior, explain the decisions, and provide clear steps for reviewing and running the work.

HAVE SOMETHING IN MIND?

Let's make
it work.

A web interface, an integration, or a bug that needs a second pair of eyes. Tell me what you are building.

Knowledge Workspace · local demo

Try notes, checklists, search, and backup. Data stays in this browser.

Open live site in a new tab ↗