Open to junior opportunities

Junior frontend developer building dependable web products.

I work mainly with React, Next.js and TypeScript. My strongest project is RentMyCar, a peer-to-peer car rental demo where I have worked across responsive interfaces, API integration, authentication, booking rules, database consistency, security, testing and deployment.

I also have a mechanical engineering background, which shaped the way I approach software: break a complex system into smaller parts, understand how they interact and verify the result instead of relying on assumptions.

Focus
React and Next.js
Location
Serbia
Looking for
Junior frontend role
Current work
RentMyCar

Technologies I have used in real project flows

I do not treat this as a list of keywords. These are tools I have used while building interfaces, connecting APIs, protecting actions, validating data and testing user behaviour.

Frontend

  • JavaScript
  • TypeScript
  • React 18
  • Next.js 14
  • HTML
  • CSS
  • Tailwind CSS
  • Responsive UI

Server and data

  • Node.js
  • Next.js Route Handlers
  • REST APIs
  • MongoDB
  • Mongoose
  • NextAuth.js
  • JWT sessions
  • Nodemailer

Quality and workflow

  • Git and GitHub
  • Vitest
  • React Testing Library
  • Zod
  • React Hook Form
  • Accessibility
  • PWA
  • Vercel

RentMyCar

A peer-to-peer car rental demo for Serbia, designed for both people who need a car and owners who want to publish one.

What the product does

Renters can search by city and dates, filter available cars, inspect public details, book a vehicle, follow reservation status and leave a review. Owners can publish and edit cars, manage incoming bookings and cancel when a vehicle becomes unavailable.

The same account can act as renter and owner. The application includes separate desktop and mobile experiences and can be installed as a PWA.

Renter flow

  • Search available cars by location and rental dates
  • Filter by price, make, type, engine and seats
  • Keep filters while moving between search and details
  • Book, cancel under the policy and keep rental history
  • Receive verification, booking and cancellation emails

Owner flow

  • Publish, update and remove owned vehicle listings
  • Review incoming reservations from the profile dashboard
  • See contact details only for an active reservation
  • Cancel a booking until its start if a car is unavailable
  • Release reserved dates immediately after cancellation

Engineering decisions I can explain

Safe booking under concurrency

Availability is not trusted only in the interface. The server checks the requested period, prevents self-booking and overlapping rentals, and uses an atomic update with a MongoDB transaction to avoid two users reserving the same car.

Authentication and session revocation

The application supports email verification, credentials sign-in and secure password reset. A session version is checked on the server so sessions created before a password reset can be rejected.

Privacy and authorization

Protected routes verify both identity and resource ownership. Public pages expose the city instead of the exact pickup address, and reservation contact details are available only while the booking is active.

Performance and predictable data

Search uses a card-shaped response, selected database fields and server-side pagination. Profile queries use focused projections and indexes, while static homepage content is rendered on the server instead of waiting for client JavaScript.

Responsive and accessible flows

Desktop and mobile layouts were tested separately. Dialogs received keyboard focus management, forms received accessible labels and larger tap targets, and iOS PWA scrolling and mobile navigation overlap were addressed.

Regression-oriented testing

Vitest and React Testing Library cover important components and business flows. I learned to test observable behaviour, not only that a configuration or implementation detail exists.

Technology stack

  • Next.js 14 App Router
  • React 18
  • TypeScript
  • MongoDB
  • Mongoose
  • NextAuth.js
  • React Hook Form
  • Zod
  • Tailwind CSS
  • Radix UI
  • Nodemailer
  • Vitest
  • React Testing Library
  • next-pwa
  • Vercel Analytics

How the projects connect

The Educator projects established my frontend foundations. RentMyCar became the next step: understanding how the interface, server, database and business rules form one system.

Next.js application

Educator v2

A Next.js and TypeScript rebuild of a tutoring platform. My mentor defined the project and provided the backend, database models and API contract; I built the frontend and connected it to that API.

What I worked on

  • Reusable TypeScript components
  • Redux Toolkit state management
  • Typed API requests and authentication flows
  • Protected pages and Formik/Yup validation
  • Next.js 13
  • TypeScript
  • Redux Toolkit
  • Formik
  • Yup

React application

Educator v1

My first larger React application and the point where separate lessons became a connected product. The Spring Boot backend and data models were mentor-provided; I implemented the frontend against the existing API.

What I worked on

  • Responsive screens and reusable UI
  • Typed Axios services
  • JWT authentication and protected routes
  • Search, forms and the main tutoring workflows
  • React 18
  • TypeScript
  • React Router
  • Axios

Engineering discipline with a developer's curiosity

I am a self-taught developer with a mechanical engineering background. I learn best by building complete flows, receiving direct feedback and then improving both the implementation and my understanding of why it works.

My current goal is a junior frontend role where I can contribute with React and TypeScript, continue learning from experienced engineers and gradually take ownership of larger product areas. I care about readable code, predictable user flows, accessibility and verifying behaviour before calling a task finished.

Let's talk about a junior opportunity.