Frontend Product Engineer (React + TypeScript)
Warsaw
Engineering – Performance /
B2B /
On-site
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