Hassan Maujud
Available for new work

Hassan Maujud

I build web applications, the APIs behind them and the systems that hold them up — with an ICT engineering degree behind it.

Based in
Erbil, Iraq
Focus
Web apps, APIs & system design
Status
Open to work
Email
info@hassanmaujud.com

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.

Read the longer version

Selected work

Things I’ve designed and built.

Three games from the tea house — algorithm sample
01 Live demo

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.

AlgorithmsSearchJavaScriptGamesKurdish
A hundred thousand rows — performance sample
02 Live demo

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.

PerformanceVirtual scrollingJavaScriptData tables
Form validation timing — interaction sample
03 Live demo

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.

Interaction designFormsAccessibilityValidation
Bilingual RTL interface — design sample
04 Live demo

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.

InternationalisationRTLCSS logical propertiesTypography
Appointment booking — system design sample
05 Live demo

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.

System designConcurrencyPostgresScheduling
Invoice builder — document design sample
06 Live demo

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.

Print designDocument designCSSMoney handling
Offline-first courier app — application design sample
07 Live demo

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.

Application designOffline-firstSync & idempotencyMobile
Six small games — interaction and algorithm sample
08 Live demo

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.

AlgorithmsInteractionJavaScriptGames
Restaurant till and kitchen display — system design sample
09 Live demo

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.

System designPoint of saleMoney handlingOperations
Pharmacy dispensing console — system design sample
10 Live demo

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.

System designClinical safetySchema designInventory
Fuel forecourt console — system design sample
11 Live demo

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.

System designRealtimeReconciliationOperations
Property search — application design sample
12 Live demo

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.

Application designSearch & filteringInteractionJavaScript
Car showroom — web design sample
13 Live demo

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.

Web designSVGMotionInteraction
Twelve launch animations — motion design sample
14 Live demo

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.

Motion designCSS animationSVGPerformance
Marketing site — design sample
15 Live demo

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.

Web designDesign systemResponsiveType
Admin interface — design sample
16 Live demo

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.

UI designData visualisationJavaScriptInteraction
System design — an order system for one bad afternoon
17 Live demo

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.

System designPostgresCachingIdempotency
REST API & console
18 Live demo

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.

PHP 8RESTHTTP cachingRate limiting
Task board
19 Live demo

Task board

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

JavaScriptState managementAccessibilityDrag & drop
Developer toolkit
20 Live demo

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.

JavaScriptWeb CryptoOfflinePrivacy
This site, and the CMS behind it
21

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.

PHP 8Static generationSecurityPerformance

Want the full list?

Every project, with the process behind it.

All projects

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.