Hassan Maujud
I build web applications, the APIs behind them and the systems that hold them up — with an ICT engineering degree behind it.
About
I build the thing, and the system underneath it.
I write software: web applications, the APIs that feed them, and the desktop and mobile pieces that sit alongside. Most of the work I care about is the part nobody sees — the schema, the request lifecycle, what happens on the third failure rather than the first.
I care as much about the communication as the technical side. Knowing who you are building for decides whether a thing is any use; the code is the easy part.
Alongside the development work I have solid experience in management and administrative tasks: keeping a project organised, handling the process end to end, and getting to the result that was actually asked for.
Selected work
Things I’ve designed and built.

Three games from the tea house — algorithm sample
Domino, Okey and Konkan — the games actually played over tea in Erbil, with opponents that really play. Built around the search that decides whether fourteen tiles split into sets and runs, which the obvious greedy version gets wrong.

A hundred thousand rows — performance sample
The same 100,000-row table rendered two ways with the DOM node count live on screen: every row in the document, versus only the twenty you can actually see.

Form validation timing — interaction sample
The most common interface there is, ruined most often by one undocumented decision: when the error appears. The same form runs under three timing strategies so the difference is something you feel.

Bilingual RTL interface — design sample
One interface, three languages, one stylesheet. Kurdish, Arabic and English from the same markup — plus the parts that are never automatic: what must not mirror, and what numbers do inside a right-to-left sentence.

Appointment booking — system design sample
A clinic booking screen built around the bug you cannot find by clicking carefully: two patients tapping the same slot in the same instant. Run the race with and without a unique constraint and watch one version put two people in one chair.

Invoice builder — document design sample
The only thing here designed for paper rather than a screen. An invoice editor with a true-A4 preview and a print stylesheet that holds up: repeating table headers, no split line items, and a total that can never be orphaned onto its own page.

Offline-first courier app — application design sample
A delivery app built for no signal. Turn the network off and keep working: every action lands on the device and queues, every queued action carries a key so a resend cannot double-deliver, and the app never claims the server agreed when it has not.

Six small games — interaction and algorithm sample
Six games, each built around one problem that is easy to get subtly wrong: a guess-free minefield, a 2048 that cannot double-merge, duplicate-letter scoring, the Tetris bag, a Sudoku with exactly one solution, and the sliding-puzzle parity trap.

Restaurant till and kitchen display — system design sample
A working till and the kitchen screen it feeds: menu, modifiers that split a line, service and tax, and tickets that age in front of the chef. Every amount is an integer, never a float — and the page proves the difference live.

Pharmacy dispensing console — system design sample
A working dispensing screen: prescription queue, an allergy check that blocks rather than warns, first-expiry-first-out batch picking, a controlled-drugs register that cannot be edited, and live shelf stock.

Fuel forecourt console — system design sample
A live simulation of a station back-counter screen: eight pumps on a real clock, authorise and settle, drive-offs that actually happen, tank levels that fall by exactly what was dispensed, and the shift reconciliation behind it.

Property search — application design sample
An estate agency search that behaves: filters that read back as a sentence, a result count that cannot disagree with the list, a detail drawer that keeps your search, and a mortgage calculator that does the real amortising sum.

Car showroom — web design sample
A showroom page for an invented marque: a configurator that repaints the car, a spec strip that counts up as it comes into view, and a finance calculator running the real amortising sum.

Twelve launch animations — motion design sample
Twelve app and website splash screens, each replayable on demand: mark assembly, liquid fill, stagger, mask reveal, orbit, typewriter, morph, shutter, zoom portal, skeleton, spring settle and a progress ring. Every one under a second.

Marketing site — design sample
A complete landing page design: hero, feature sections, a pricing table with a working billing toggle, an accordion FAQ and a footer. Light, serif, generous — deliberately nothing like this portfolio.

Admin interface — design sample
A working product UI: hoverable area chart, sortable and filterable table, detail drawer, toasts. Dense where the marketing sample is airy, because the two jobs are not the same job.

System design — an order system for one bad afternoon
A full design walkthrough: capacity estimate, topology, data model, the write path and why sending it twice is harmless, cache layers, and what breaks first.

REST API & console
A working JSON API — token auth, pagination, ETag caching, rate limiting — with a console for firing real requests at it and reading what comes back.

Task board
A complete front-end app in a single file: drag and drop, fully keyboard-operable, undo, and state that survives a refresh.

Developer toolkit
The small tools you end up pasting into a stranger’s website at 2am — JSON, JWT, regex, hashing, cron — rebuilt to run entirely in your own browser.

This site, and the CMS behind it
A static site with a full admin behind it. Pressing Publish regenerates every page, so the public site never runs PHP — and a PHP outage can never take it down.
Contact
Let’s build something.
Tell me what you are building and where it is stuck — I am happy to hear about it either way.