Fresha

Senior Full Stack Engineer (Typescript)

Fresha Pristina, Kosovo

Software Development · 201-500 employees

Jun 24
typescript Senior (5-10 yrs) Full-time Kosovo
Create a free account to apply — email only, no card. You can also save this posting or score it against your profile with AI.

About the role

Design and develop APIs to support Marketplace Native Apps and implement new functionality and UIs within the web frontend. The role involves owning the uptime and monitoring of services while contributing to a healthy engineering culture.

What they look for

React NextJS GraphQL gRPC TypeScript CSS Webpack Esbuild API Design Single Page Applications

Requirements

Requires commercial experience in building SPAs with React and implementing UIs with CSS. Candidates should be proficient in GraphQL, TypeScript, and JavaScript build tooling.

Full description

Senior Full Stack Engineer (Prishtina)

About Fresha

Fresha is the leading AI-powered operating system for the global beauty and wellness industry, giving businesses everything they need to run smarter, grow faster and build stronger client relationships.

In May 2026, Fresha secured an $80M growth investment from KKR at a valuation of $1B, officially reaching unicorn status and bringing total funding raised to $285M. Already profitable, Fresha is using this investment to accelerate global expansion and drive the next generation of AI and product innovation.

Today, Fresha operates at global scale, with offices across Europe, North America, the Middle East and Asia Pacific. Our platform is trusted by 130,000+ beauty and wellness businesses across 120 countries, with more than 1.5 billion appointments booked to date.

Our mission is simple: help beauty and wellness businesses grow by giving them the technology they need to attract clients, manage their operations and run their business in one place.

We’re continuing to scale rapidly across markets, teams and products, making this an exciting time to join us.

Role Overview

Senior Full Stack Engineer | Ramiz Sadiku Complex, Prishtina, Floor 5| Four days in office, Wednesdays remote

You'll join a cross-functional product team and report to its Team Lead.

Full stack here means you own a feature the whole way down: the React and TypeScript screens people use, the GraphQL layer in between, and the services behind it. Most engineers arrive stronger on one side than the other. That's expected, and we hire for it openly.

We work on a short feedback loop. Your change usually reaches production the same day you write it, behind a feature flag. The team that builds a service looks after it, including a shared on-call rota. We're also changing how engineering gets done here. Every engineer gets Claude, Codex or Cursor from day one, and people build their own agent workflows rather than being handed one. It isn't finished, and you'd be helping to shape it rather than inheriting it. We look for engineers who know how to break work up, how to review what comes back, and how to stand behind the result.

What You'll Do

  • Own features end to end: Design it, build it, test it, ship it, and look after it once it's live.
  • Build the UI: Implement new functionality and interfaces in our web frontend, against a custom design system, and in the native apps when a piece of work reaches them.
  • Design and document APIs: GraphQL and gRPC APIs that your own team and other teams will build on, built to be used by people who won't ask you first.
  • Ship most days: Your change goes out behind a feature flag, usually the same day you write it. CI/CD handles the rollout. You watch the dashboards and roll back if it looks wrong.
  • Work across services: Most features touch more than one repo. You'll plan and ship changes across several services at once.
  • Work with the rest of the team: Product, Design, Frontend, Infrastructure and Mobile, from the first conversation through to release.
  • Keep things healthy: Find the bottlenecks, fix the bugs, and keep an eye on performance and quality.
  • Have a say in how we build: Our architecture and our engineering practices aren't fixed. We expect senior engineers to push on both.

Our stack: the web frontend is React and TypeScript on a custom design system, talking to the backend through a federated GraphQL layer. Services are written in Ruby, Elixir and TypeScript, with Kafka for events, gRPC or JSON for synchronous calls, Postgres, and everything running in Kubernetes. Domain-driven design is at the heart of how we work: we build fast, but we think about the bounded context first. We're partway through breaking our Ruby/Elixir monoliths into services. Our mobile apps are native, Swift on iOS and Kotlin on Android, and the APIs you write serve them too. You don't need Swift or Kotlin on day one, but you will work across them as the work requires.

What We're Looking For

  • Experience: 5+ years building and running product software in production.
  • Depth on one side, competence on the other: You're strong in either the frontend or the backend and you can hold your own in the other. Tell us which way round you are. We are not looking for someone who is shallow in both.
  • Frontend: Commercial experience with React and TypeScript, and with building interfaces that hold up. Comfortable with CSS, including animation, and with the usual JavaScript build tooling.
  • Backend: You've built and run services in production. We don't expect Ruby or Elixir on day one, but we do expect you to pick things up fast.
  • APIs: You've designed and consumed GraphQL APIs, and you think about the people on the other end of them.
  • Correctness: You think about what happens when a request arrives twice, a downstream call times out halfway through, or two things update the same record at once. You design for it rather than finding out later.
  • Distributed systems: You've worked with services that talk to each other over events and RPC, and you know how they fail. Kafka, gRPC or equivalent.
  • Comfortable close to production: You're at ease shipping behind flags and watching a change land. You know what to instrument before a rollout and what to watch afterwards.
  • AI in your workflow: You use AI coding tools day to day and have a clear view of where they help and where they don't. You're happy building your own workflow rather than waiting for one, and you review what comes back before it ships.
  • Pragmatic: You care about the right tool for the job more than any particular stack, and you've worked in more than one style of language.
  • Curious: You like getting deep into a domain, and you're willing to get into the weeds.
  • Willing to broaden: Native mobile experience is a bonus rather than a requirement, but we do expect engineers to pick up what a piece of work needs.

At Fresha, we value passion and potential as much as specific skills. If you're enthusiastic and eager to learn, we encourage you to apply, even if you don't meet every listed requirement.

Your Opportunity at Fresha

  • Scale: Around 1 million bookings a day across 120 countries, and the payments that go with them, running on a platform we're breaking out of its monoliths while it serves traffic.
  • Speed: We release daily, 500+ deploys a day, with not much standing between your branch and your users.
  • Ownership: The tooling, data and permissions to run what you build, and a say in the technical direction of your area.
  • The whole vertical: You see a feature from the screen a salon owner taps to the service that handles it. Very few places let one engineer hold that whole picture.
  • Room to broaden: When you move into a part of the stack you haven't worked in before, you get the time and support to learn it rather than being thrown at it.

Inclusive workforce

At Fresha, we are creating a culture where individuals of all backgrounds feel comfortable.

We want all Fresha people to feel included and truly empowered to contribute fully to our vision and goals. Everyone who applies will receive fair consideration for employment.

We do not discriminate based on race, colour, religion, sex, sexual orientation, age, marital status, gender identity, national origin, disability, or any other applicable legally protected characteristics in the location in which the candidate is applying.

If you have any accessibility requirements that would make you more comfortable during the interview process and/or once you join, please let us know so that we can support you.

We may use artificial intelligence (AI) tools to support parts of the hiring process, such as reviewing applications, analyzing resumes, or assessing responses. These tools assist our recruitment team but do not replace human judgment. Final hiring decisions are ultimately made by humans. If you would like more information about how your data is processed, please contact us.

Similar roles