Title: Frontend Developer
Location: Erbil
Available Until: 10/13/2026
Key Responsibilities:
Foundation (first
priority): the items below are the immediate build.
- Establish the FastPay frontend standard: project structure, build tooling, TypeScript configuration, linting and formatting, folder conventions, documented, so the next developer does not invent their own.
- Build the shared component library and design system used by every FastPay web application: forms, data tables, filters, dialogs, notifications, layout and navigation.
- Build the API layer once, properly: typed clients generated from or written against OpenAPI contracts, OAuth 2.0 token handling and refresh, consistent error handling, loading and empty states.
- Implement full right-to-left support and internationalization (Arabic, Kurdish, English) at the framework level not retrofitted per screen.
- Build against API contracts and mocks while the Java services are still under development, so frontend work is not blocked waiting on the backend.
- Prototype the admin panel that will replace the current Laravel Nova panel, and agree its scope with the backend team.
Ongoing: the
items below run continuously.
- Build the new React single-page applications for the corporate, distribution and bill-payment portals.
- Build the replacement admin panel: role-based access, complex data tables, filtering, exports, audit views.
- Consume new Java/Spring Boot APIs through the API Gateway; feed back on API design before contracts are frozen you are the first consumer of every endpoint.
- Read the existing PHP portals and React applications to extract the business behaviour that must be reproduced, without inheriting their code.
- Write component and integration tests for what you build.
- Work with the QA Engineer on defect reproduction and fixes; work with DevOps to get your builds into the CI/CD pipeline.
- Keep performance, accessibility and browser compatibility honest these applications are used all day by internal staff and by merchants.
- Document the frontend architecture so knowledge is not locked inside one person’s head.
Requirements Technical (must-have)
- 3–6 years of professional frontend development experience building real, production web applications.
- React 18: hooks, component composition, state management, performance (memoization, re-render control, code splitting).
- TypeScript: typed props, generics, discriminated unions used properly, not "any" everywhere.
- Shadcn, or an equivalent component library used at scale theming, overrides, building a consistent design system on top of it.
- Consuming REST APIs: axios or fetch, React Query or equivalent for server state, caching, retries, race conditions.
- Authentication in the browser: OAuth 2.0 / JWT token handling, refresh flows, protected routes, session expiry.
- Complex forms: validation, dependent fields, file upload, multi-step flows.
- Data-heavy UI: server-side paginated tables, filtering, sorting, export the core of an admin panel.
- Right-to-left layout and internationalization for Arabic and/or Kurdish alongside English.
- Modern build tooling (Vite or equivalent) and a working understanding of bundling, environment configuration and production builds.
- Git: professional workflow branching, pull requests, code review.
- Writing tests: Jest and React Testing Library you write tests without needing to be asked.
Domain (must-have)
- Has built an internal admin or back-office application, not only public marketing pages permissions, large tables, and real operational workflows.
- Has built a frontend against APIs that were still being developed, using contracts or mocks rather than waiting.
- Has made frontend architecture decisions alone and lived with the consequences.
General (must-have)
- Strong communication: can push back on an API design, explain a technical trade-off, and write documentation others can follow.
- Takes ownership through to production, not just to "it renders on my machine".
- Comfortable being the only frontend specialist in the room for a while.