The work, in six chapters.
Each chapter keeps my role and the engineering behind it. In the index, projects light up when they ran on the same foundations.
- Projects
- 06
- Years
- 2024–2025
- Public source
- 03
Index
Open a chapter. Hover one to see which others share its stack.
01 / 06Backend servicePersonal project2025
RsvAPI
An event-ticketing backend where the last ticket can only be sold once.
A scalable ticketing backend built with Node.js and TypeScript. It covers the whole reservation lifecycle: events and tickets, reservations, and payment processing.
- Node.js
- TypeScript
- Express.js
- PostgreSQL
- TypeORM
- Redis
- JWT
- Zod
- Swagger
- Integration tests
- Docker
The problem, illustrated
The problem
When many people go for the same limited tickets at once, naive code sells a seat twice. A ticketing backend has to stay correct under concurrent requests, not only on the happy path.
My role
Designed and built the service end to end.
Decisions that mattered
- 01
Reservations run as transactions
Creating a reservation and updating availability succeed or fail together, so the database never ends up half-updated.
- 02
Explicit concurrency control
Competing requests for the same ticket are handled deliberately, so a race condition can't push sales past what is available.
- 03
Redis caching
Frequently read data is cached in Redis to take pressure off PostgreSQL.
- 04
Clean layers, checked edges
Routes, business logic and data access stay separate. Input is validated with Zod, auth uses JWT, the API is documented in Swagger, and integration tests plus Docker keep it reproducible.
The hard part
Making overbooking impossible rather than unlikely. The interesting work was in the concurrent paths, not the CRUD.
02 / 06Full-stack SaaSSaaS project2025
Lawyer AI
An AI assistant for constitutional-law questions.
An AI platform that answers legal questions grounded in constitutional law.
- Next.js
- Nest.js
- TypeORM
- PostgreSQL
- JWT
- React Query
- Tailwind CSS
- i18next
- shadcn/ui
- OpenAI API

- My role
- Full-stack: the Next.js client and the Nest.js API.
- Engineering notes
- Next.js client with React Query, Tailwind CSS and shadcn/ui, localised with i18next.
- Nest.js API on TypeORM and PostgreSQL, with JWT authentication.
- Answers are generated through the OpenAI API.
03 / 06Backend, SaaSTeam project2025
AI Language Learning
Scenario-based language practice, powered by AI.
A language-learning platform built around scenario conversations: ordering food, job interviews, travel.
- TypeScript
- Nest.js
- PostgreSQL
- TypeORM
- JWT
- Passport.js
- OpenAI API
- Cloudinary
How it fits together
01
Learner picks a scenario
Frontend (teammate)
02
API authenticates and routes
Nest.js · JWT · Passport.js
03
Scenario is generated
OpenAI API
04
Progress is stored
PostgreSQL · TypeORM
- My role
- Built the entire backend. A teammate built the frontend separately.
- Engineering notes
- API design in Nest.js, with PostgreSQL and TypeORM.
- JWT and Passport.js authentication.
- OpenAI integration for dynamic scenario generation, plus learner progress tracking.
04 / 06Full-stack platformTeam project2024
Etutor Online
A Udemy-style platform where anyone can teach or learn.
Users can be both students and instructors: students buy and take courses, instructors upload their own.
- Next.js
- MongoDB
- Mongoose
- Server Actions
- React Hook Form
- Zod
- Tailwind CSS
- shadcn/ui
- Cloudinary

- My role
- Full-stack developer on a team.
- Engineering notes
- Next.js with Server Actions on MongoDB and Mongoose.
- Forms built with React Hook Form and validated with Zod.
- Course media handled through Cloudinary.
05 / 06Full-stack web appUniversity project2025
Student Articles
Submission and grading for students and professors.
Students upload articles and follow feedback and grades. Professors review, score and comment from a dashboard.
- TypeScript
- Next.js
- MongoDB
- Mongoose
- Server Actions
- React Hook Form
- Zod
- Redux Toolkit
- GSAP
- Tailwind CSS
- shadcn/ui

- My role
- Full-stack developer.
- Engineering notes
- Role-based access separates the student and professor experiences.
- File uploads and a grading dashboard on Next.js, Server Actions and MongoDB.
- Redux Toolkit for client state, GSAP for motion.
06 / 06Full-stack web appPersonal project2024
WorldWise
A map-first notebook for trips you want to remember.
Keep travel plans and notes on trips, designed as a full-stack desktop app.
- React.js
- Express.js
- React Router
- MongoDB
- Mongoose
- Zod
- Leaflet
- Context API
- CSS Modules

- My role
- Built the front end and the back end.
- Engineering notes
- React and React Router front end with Leaflet maps.
- Express and MongoDB back end, with input validated by Zod.
That’s the work.