HI5 Overseas
HI5 Overseas helps students and job seekers move abroad, from choosing a university or workplace in Germany, Canada or Europe to securing a visa and settling in. I built its production web application end to end: architecture, UI design, authentication, APIs and deployment.
- Next.js
- TypeScript
- Node.js
- PostgreSQL
- REST APIs
Particulars
- Client
- HI5 Overseas, study and work abroad consultancy
- Engagement
- Client project, delivered end to end
- Role
- Full stack engineer, architecture to deployment
- Scope
- Public site, authentication and protected application modules
Note: Some implementation details are omitted for confidentiality. This case study covers my role, public product behaviour and general architecture only.
01The mandate
Relocation is a high-trust decision. Prospective students and workers arrive with big questions and little patience for a confusing site, so the product had to explain the services clearly, make it easy to get in touch, and handle personal details securely.
02What I owned
Everything from the first architectural decision to the production deploy. I designed the frontend and backend architecture, built responsive interfaces from reusable components, and developed the REST APIs behind the application's core modules.
I implemented authentication and authorization with protected routes, validation and application-level security controls, then took the app through deployment and production readiness for a real client.
03Architecture for the long run
A client app keeps growing after launch, so maintainability was the constraint that mattered. I structured it as reusable services, components and modules on Next.js and TypeScript, with a Node.js API layer over PostgreSQL, so new features slot into existing patterns instead of becoming one-offs.
Fig. 01
04Working flow
How a signed-in user's request travels through the application, with access decided before any data is touched.
Fig. 02
01 Browses services, then signs in
02 Sends credentials
03 Verifies the user
04 User and role
05 Authenticated session
- 06 Unlocks protected routes for the user's role
07 Calls a protected module API
- 08 Validates input and authorises the request
09 Reads or writes data
10 Response for the UI
05From brief to production
- 01
Architecture
Frontend and backend structure decided up front, around reusable services and modules.
- 02
Interface design
Responsive layouts and a component set that keeps every page consistent.
- 03
Build
Core modules implemented across UI and REST APIs.
- 04
Secure
Authentication, authorization, protected routes and validation built in, not bolted on.
- 05
Stabilise
Workflows debugged and optimised across frontend and backend.
- 06
Deploy
Production readiness and launch for the client.
06Hard parts
- Owning every layer at once, where a schema decision shows up in the UI weeks later.
- Getting authentication and route protection right for an app that handles personal details.
- Balancing maintainability against a real client's timeline.
- Debugging and stabilising production workflows that spanned frontend and backend.
07Outcomes
- A production application live for a real client.
- Secure access through authentication, authorization and validation.
- A modular codebase of reusable services and components, ready for new features.
08How I approached it
- 01
Design the system before the screens
Architecture decisions are the hardest to undo.
- 02
Security belongs in version one
Auth and validation shipped with the first release.
- 03
Reuse is a decision
Shared components and services were planned, not extracted later.
- 04
Production is the finish line
Deployment and readiness were part of the build, not an afterthought.
Related work
More projectsKurlClub
SaaS platform, React, Next.js, TypeScript
HR Platform
Enterprise HR, React, Node.js, JWT
BFC Pay
FinTech, React, Node.js, Rust
Subscriptions
SaaS platform, React, Node.js, Express
