About This Role
This engineering job is for a Frontend Developer who will design and develop responsive web application interfaces using React and TypeScript, build reusable UI components, and integrate with REST APIs. The role involves close collaboration with backend developers, UI/UX designers, QA engineers, and product stakeholders.
Responsibilities
- Design and develop responsive web application interfaces using React and TypeScript
- Build reusable, maintainable, and well-structured UI components
- Integrate the frontend with REST APIs provided by the ASP.NET Core backend
- Develop interfaces for exam and question management
- Develop marker allocation and workload interfaces
- Develop reviewer and moderation workflows for double-marked responses and marking discrepancies
- Develop dashboards, reports, tables, filters, and progress indicators
- Implement role-based user-interface behavior for administrators, coordinators, markers, and reviewers
- Handle API errors, loading states, network interruptions, and recovery gracefully
- Ensure good performance when working with large datasets and high-resolution examination images
- Implement appropriate client-side state management and data-fetching strategies
- Write automated frontend tests
- Participate in code reviews and technical design discussions
- Work closely with backend developers, UI/UX designers, QA engineers, and product stakeholders
- Work within an architecture approximately consisting of: Web Frontend: React / TypeScript; Backend: ASP.NET Core / C#; API: REST / OpenAPI; Database: PostgreSQL; Scanned Document Storage: Object storage; Source Control & CI/CD: Git / GitLab
- Ensure the frontend does not communicate directly with the database; all business operations and data access will be performed through backend APIs
- Display and manipulate high-resolution scanned examination images efficiently
- Map predefined question coordinates to displayed image regions
- Provide smooth zooming and panning without unnecessary image downloads
- Build extremely efficient repetitive marking workflows
- Prevent accidental loss of marks during navigation or network interruptions
- Manage complex application and server state
- Present large datasets efficiently
- Support keyboard-heavy workflows for professional markers
- Build accessible interfaces without sacrificing marking speed
- Clearly communicate workflow states such as pending, marked, double-marked, disputed, reviewed, and finalized
Requirements
- Strong knowledge of JavaScript and TypeScript