Location: Warsaw, Poland - Hybrid (4 days on-site / 1 day remote)
Contract: B2B · 25-40 k PLN net / month + RSUs
Why Fresha & Why Now?
Fresha is re-imagining how the global beauty and wellness industry runs. 120k+ businesses, 450k+ professionals, millions of clients, and 1 billion+ appointments already rely on our platform for everything from bookings to payments.
Join us at a moment of rapid scale - your work will surface on screens around the world within days, not quarters.
What You’ll Do
* Own and evolve our core booking & scheduling engine - the heartbeat of Fresha - ensuring it scales smoothly and delivers seamless experiences for millions.
* Design, build, and ship new user-facing features in React + TypeScript, reaching millions of professionals and clients.
* Own features end-to-end: discovery, technical design, implementation, testing, rollout, and observability.
* Tap into (and extend) our Design System to ship polished UI quickly while raising the bar for consistency.
* Write robust automated tests (Cypress, Jest, React Testing Library) and keep the CI/CD pipeline green.
* Partner closely with Product, Design, Backend, Infrastructure, and Mobile engineers to take features from discovery to rollout and beyond.
* Accelerate with AI: harness AI agents, LLM-powered coding tools, and access to a wide range of AI tools (e.g., chatbots, dev assistants).
* Curious about backend, DevOps, or mobile? Great - we’ll support you in exploring any part of the stack.
What We’re Looking For
Deep expertise in modern React & TypeScript, with a track record of shipping large-scale, consumer-facing web apps.
Solid grasp of GraphQL (Apollo or urql) and REST fundamentals.
Experience working with design systems.
Fluency in web performance, cross-browser, and responsive design best practices.
A testing mindset and familiarity with JS/TS testing frameworks.
Don’t meet every single requirement? Passion and potential matter more than perfect check-boxes. If this role excites you, apply today and grow with us!
Why You’ll Love It Here
Direct impact & ownership - your decisions shape the product.
Modern tech stack, continuous learning, and innovation.
Competitive salary, equity, private healthcare, and more.
Our Technology Stack - Frontend Technologies
React - Modern JavaScript UI library
TypeScript - Strongly typed JavaScript
React Router DOM - Client-side routing
React Redux - State management
Zustand - Lightweight state management
Formik - Form management
Build Tools & Bundlers
Rsbuild - Modern build tool (Rspack-based)
esbuild - Fast JavaScript bundler
Turbo - High-performance build system
SWC - Rust-based JavaScript compiler
UI & Design System
Fresha Design System - Custom design system
Sass/SCSS - CSS preprocessor
PostCSS - CSS transformation
Lottie - Animations
State Management & Data Fetching
Redux with Redux Actions
URQL - GraphQL client
Backend Communication
GraphQL - API query language
GraphQL Code Generator - Type-safe GraphQL
Phoenix - Real-time WebSocket channels
WebSocket & Server-Sent Events support
Backend Technologies
Node.js
TypeScript
Elixir
Ruby on Rails
PostgreSQL
Redis
Docker
Kubernetes
NginxAWS
Testing Framework
Jest - Unit testing
Cypress - Component and integration testing
Testing Library - React testing utilities
MSW - API mocking
Code Quality & Linting
ESLint - JavaScript linting
TypeScript strict mode
Development Tools
Storybook - Component documentation
Happo - Visual regression testing
Mobile Development
Capacitor - Native mobile app wrapper
iOS & Android - Native mobile platforms
CI/CD & DevOps
GitHub Actions - Continuous integration
AWS - Cloud infrastructure
Datadog - Monitoring and analytics
Monitoring & Analytics
Sentry - Error tracking
Amplitude - User analytics
Unleash - Feature flags
Date & Time
date-fns - Date manipulation
moment - Date handling (legacy)
Interview Process
Screen call - Video call with a member from the Talent Team - 30 - 60 minutes
1st stage - Technical Video call/In-person interview with our Engineers- Up to 60 minutes
Tech stage - Technical Video call/In-person interview with our Engineers - up to 2 hours
Final stage - Video call/In person meet with our CTO - up to 60 minutes
We aim to finalise the entire interview process and deliver feedback within 4 weeks.
Every job application received is reviewed manually by our talent team. While we strive to assess applications within 7 days, the sheer volume of talented individuals expressing interest may occasionally extend this timeframe