Skip to content
<hajrije />

Frontend Developer @ Gjirafa Inc.

Hi, I'm Hajrije.
I build interfaces people actually use.

Frontend developer working with React, Next.js and TypeScript — shipping e-commerce storefronts, CMS dashboards and internal tools that run real operations every day.

src/components/Developer.tsx

live
// click any value to edit the props ↓
<Developer
  name="Hajrije Berisha"
  role=
  accent=" #ff4191"
  stack={[, , , , ]}
  compact={}
/>

Preview

Hajrije Berisha

Hajrije Berisha

Frontend Developer

ReactNext.jsTypeScript

01 // about

Frontend is the part people touch.

So I care about how it feels: fast, accessible, predictable — and built on code the next developer can extend without fear.

I'm Hajrije Berisha, a frontend developer at Gjirafa Inc. in Prishtina. I work across a large e-commerce marketplace, its merchant dashboard, a headless CMS and a set of internal business tools.

The work I'm proudest of is unglamorous: taking a fragile internal Finance tool, moving its data layer to TanStack Query + Axios, restructuring it into feature-based modules, fixing its authentication — and then shipping new features on top without things breaking.

Outside of work I build things like AlgoArena, an interactive algorithm visualiser, because animation and state are more fun to learn when you can see them.

whoami.json
"location":
"Prishtinë, Kosovë"
"currently":
"Frontend Developer @ Gjirafa Inc."
"since":
"2024"
"education":
"BSc Computer Science, UBT"
"focus":
"React · Next.js · TypeScript"

apps.tsx

Web applications

Production React + TypeScript apps — e-commerce storefronts, CMS dashboards and internal business tools used at scale.

tables.tsx

Data-heavy UI

Filterable tables, multi-step forms, detail views and admin dashboards that handle real operational complexity.

architecture.ts

Frontend architecture

Feature-based folder structure and data layers on TanStack Query + Axios — caching, loading and error states done once, properly.

auth.ts

API integration & auth

REST integration with sane token handling, protected routes and role-based access across every view.

02 // work

Selected work

Production products I've built features for at Gjirafa, plus things I build on my own.

03 // experience

Experience

git log --oneline --graph, more or less.

145b9f4HEAD → main

2024 – Present

Frontend Developer @ Gjirafa Inc.

  • +Own the Finance internal tool end to end as its primary maintainer — setting its technical direction, prioritising fixes, and shipping new features while keeping it stable in daily use
  • +Led the migration of its data layer to TanStack Query + Axios, establishing one consistent pattern for caching, loading and error handling across the app
  • +Drove the restructure from a flat codebase to a feature-based architecture, making modules easier for the team to find, extend and maintain
  • +Diagnosed and resolved broken authentication flows, enforcing token handling, protected routes and role-based access consistently across every view
  • +Take features from design handoff through API integration, validation and release across GjirafaMall, the Sellers Platform, Codex CMS and internal systems (WMS, DP, RMS)
  • +Partner with backend, design and product teams to scope work, align on shared components and frontend patterns, and deliver on schedule
b7283d4

2021 – 2024

BSc in Computer Science @ UBT

  • +Bachelor’s degree in Computer Science and Engineering with a focus on software development and modern web technologies.
fcd1591

2023-2024

Fellow @ LIFE from Gjirafa

  • +Completed the Life from Gjirafa program, gaining practical experience in web development, teamwork, and modern software engineering practices.

04 // stack

Stack

The tools I reach for, written the way I'd read them.

package.json
{
  "name": "hajrije",
  "role": "frontend developer",
  // what I ship with every day
  "dependencies": {
    "react": "latest",
    "next": "latest",
    "typescript": "latest",
    "javascript": "latest",
    "tailwindcss": "latest",
    "framer-motion": "latest",
    "@tanstack/react-query": "latest",
    "axios": "latest"
  },
  // comfortable on the other side of the API
  "alsoWorkedWith": {
    "node": "latest",
    "express": "latest",
    "mongodb": "latest",
    "asp.net-mvc": "latest",
    "razor-pages": "latest",
    "rest-apis": "latest"
  },
  // tooling
  "devDependencies": {
    "git": "latest",
    "github": "latest",
    "figma": "latest",
    "postman": "latest",
    "vite": "latest",
    "webstorm": "latest",
    "vercel": "latest",
    "azure": "latest"
  },
  // the part that doesn't compile
  "soft": {
    "communication": "latest",
    "problem-solving": "latest",
    "teamwork": "latest",
    "feature-ownership": "latest"
  }
}

State & data

TanStack Query for server state, so caching, refetching and loading/error states live in one place instead of every component.

Structure

Feature-based folders — components, hooks, services and types grouped by domain — so a feature can be found, changed or deleted in one go.

UI

Tailwind and design-system components for consistency; Framer Motion when movement helps someone understand what just changed.

This site

Next.js App Router, React 19, TypeScript, Tailwind CSS 4 and Framer Motion — no UI kit, no template.

05 // contact

Let's build something.

Hiring for a frontend role, or have a product that needs a careful UI? Send a message — it goes straight to my inbox.

network › requestPOST
await fetch("/api/contact", {
  method: "POST",
  body: JSON.stringify({
    name: "",
    email: "",
    message: "",
  }),
});

// ready