Skip to content

Hashem MdoukhFront-End Engineer — React · Next.js · TypeScript. Fast, scalable, accessible web apps — feature-based architectures & design systems.

hashem@gaza — zsh

Featured projects

useQueries.ts
export function useCharacters(filters: CharacterFilters) {
  return useQuery({
    queryKey: ["characters", filters],
    queryFn: () => api.getCharacters(filters),
    staleTime: 5 * 60_000, // dedupe + cache
    placeholderData: keepPreviousData,
  });
}

Featured project

Rick & Morty Character Explorer

A character browser over the Rick and Morty REST API with real-time search, filtering and pagination.

  • React 19
  • TypeScript
  • TanStack Query 5
  • React Router
  • Vite
useWeather.ts
export const unitAtom = atom<"C" | "F">("C");

export function useWeather(city: string) {
  const [unit] = useAtom(unitAtom);
  const { data } = useQuery({ queryKey: ["weather", city] });
  return toUnit(data, unit); // K → °C/°F
}

Featured project

Weather App

A live weather dashboard on Next.js 15 and React 19, deployed on Vercel.

  • Next.js 15
  • React 19
  • TanStack Query
  • Jotai
  • Tailwind v4
app/api/buses/route.ts
export async function GET() {
  const buses: Bus[] = await getLiveBuses();

  return NextResponse.json({
    buses, // live positions → Leaflet map
    updatedAt: Date.now(),
  });
}

Featured project

Amana Transportation

A public-transport tracker rendering live bus positions and routes on interactive Leaflet maps.

  • Next.js 15
  • TypeScript
  • React Leaflet
  • Tailwind v4
services/api.ts
export async function getCauses(): Promise<Cause[]> {
  const res = await fetch(`${API_URL}/causes`);
  const dto: CauseDto[] = await res.json();

  return dto.map(toCause); // DTO → domain
}

Featured project

Amana Financial

A fundraising platform connecting donors with education, agriculture and small-business causes across the Middle East.

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind v4

More on GitHub

How I engineer

Feature-based monorepos, design systems, and scalable React. Explore the architecture — every annotated node is a pattern I work with.

Explorer

PATTERN INSPECTOR

Feature-based Architecture

Each domain owns its views, hooks, APIs and services.

Features are isolated modules with strict boundaries — nothing reaches into another feature's internals. New domains scale the codebase horizontally instead of deepening the tangle.

features/products/index.ts
// public API — internals stay private
export { ProductsView } from "./components";
export { useProducts } from "./hooks";
  • TypeScript
  • Module boundaries
  • Domain isolation
See it applied in my projects

The stack, and where it’s proven

  • Daily driver
  • Working knowledge
  • Core

    Interfaces built to survive their second year.

    • Daily driver: React 19
    • Daily driver: Next.js 15
    • Daily driver: TypeScript
    • Daily driver: Tailwind CSS v4
    Every project on this page ships on it
  • Architecture

    Structure decided before the first feature lands.

    • Daily driver: Turborepo
    • Daily driver: pnpm workspaces
    • Daily driver: Feature-based modules
    • Daily driver: Design Systems
    Advanced React Program, 2026
  • Data

    Server state that stays in sync, and typed at the edge.

    • Daily driver: TanStack Query
    • Daily driver: REST APIs
    • Daily driver: DTO mapping
    • Working knowledge: TanStack Router
    Server state in 2 shipped apps
  • Backend

    APIs I can own end to end, not just consume.

    • Daily driver: Node.js
    • Daily driver: Express.js
    • Working knowledge: MongoDB
    • Working knowledge: Mongoose
    Full-stack training at Zakey Tech
  • Toolbelt

    Shipped with these, ready to pick any of them back up.

    • Daily driver: Angular
    • Daily driver: Git
    • Daily driver: Vite
    • Working knowledge: MUI
    • Working knowledge: Mantine UI
    • Working knowledge: Jotai
    • Working knowledge: CSS Modules
    Angular in production at Kumrat Al-Saada

Experience & training

  1. Jan — Mar 2026

    Intensive training

    Advanced React Developer Trainee · Advanced React Program

    Engineered scalable React applications on a feature-based modular architecture inside a pnpm + Turborepo monorepo with shared Design System packages. Implemented fully type-safe routing with TanStack Router, server-state management with TanStack Query, and advanced patterns — Compound & Headless components, DIP with DTO mappers, and a Context-based feature-flag system for gradual rollouts.

    • React
    • TypeScript
    • TanStack Query
    • TanStack Router
    • Turborepo
    • pnpm
  2. Sep 2025 — Jan 2026

    Intensive training

    Full-Stack Developer Trainee · Zakey Tech

    Built and shipped responsive full-stack apps with the Next.js App Router, Tailwind CSS v4 and MUI, backed by Node.js/Express REST services and MongoDB models via Mongoose.

    • Next.js
    • Node.js
    • Express
    • MongoDB
    • Tailwind v4
    • MUI
  3. Apr — Jul 2025

    Professional

    Front-End Developer (Angular) · Kumrat Al-Saada

    Architected an end-to-end notification system and redesigned multiple screens to a unified UX spec, defining an app-wide color and design-token system.

    • Angular
    • TypeScript
    • Design Tokens
    • Performance
    • QA

View full résumé

About me

I'm Hashem — a front-end engineer who builds fast, accessible interfaces with React, Next.js and TypeScript. I care about the part of software that outlives the sprint: feature-based architectures, design systems and monorepos that stay maintainable long after the demo.

I work async-first — written updates, PRs with context, and documentation treated as part of the job, not an afterthought. I work from Gaza, Palestine, and build for teams everywhere.

Away from the keyboard I'm usually deep in an engineering write-up or refining this site — currently exploring advanced React patterns and type-safe routing.

hashem.ts
Hashem Mdoukh

Hashem Mdoukh

$ whoami

ok
const hashem = {
  role: "Front-End Engineer",
  location: "Gaza, Palestine", // UTC+2/3
  stack: ["React", "Next.js", "TypeScript"],
  degree: "B.Sc. ICT — 2025",
  languages: ["Arabic (native)", "English (professional)"],
  remote: { ready: true, style: "async-first" },
  openToWork: true,
} satisfies Engineer;
// hiring? say hello ↓

Timezone overlap — my day vs. yours

Gaza — me
Berlin · 9–17 CEST
London · 9–17 BST
New York · 9–17 EDT

Full-day overlap with European teams · 3h+ with US East, every day

05. What's next?

Let's build something.

I'm looking for a remote front-end role with a team that cares about the details. My inbox is open — whether you have a role, a project, or just a question about something I built. Based in Gaza (UTC+3) — full-day overlap with European teams, mornings with US East.

Click to copy

open in mail app

Open to remote rolesGaza, Palestine--:-- localreplies < 24h