Software engineer
- Location
- San Francisco
- Type
- Full time
- Compensation
- $150k-$200k
- Posted
- 2 days ago
Join a team building useful software. Work closely with engineering and design to turn new ideas into products.
Find roles through people you trust, and message a verified founder or page admin about your interest.
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 OverviewSenior Software Engineer - Delivery Platform | The Bower, 207-211, Old St, Tower, London EC1V 9NR | Four days in office, Wednesdays remote
The Delivery Platform team owns the path every change at Fresha takes from a merged pull request to production: CI, deployments, canaries and rollbacks, feature flags, and the internal tooling ~150 engineers use to ship every day. The team is part of the Infrastructure group and reports to the Head of Infrastructure.
You'd be the third engineer on a small team, so you'd be at the core of deciding what we build and then building it. The job is to keep Fresha shipping as fast as it does today as the organisation grows, without giving up the reliability and security our customers depend on.
Today that means around 3,000 production deployments a week and, in the last month alone, ~1.4 million CI jobs and ~22 million CPU minutes. Both numbers keep climbing. We want merge-to-deploy under two minutes wherever we can get it, and every deploy to be one nobody has to think twice about.
We build our tools as software, and we look after them as software. The team is accountable for what it ships, including a support rota for the tools other engineers rely on.
How We BuildProduction first: We have no pre-production environments. We test locally, validate in CI, ship behind feature flags, and hold a high quality bar. We ship with confidence because the platform makes it safe.
Unix philosophy: Each service does one thing well behind a clear interface, and complexity stays at the edges. We optimise for rate of change: an engineer with one year of experience should be able to make a change quickly.
Optional adoption, mandatory value: Teams choose their tools. Platform features win by being better, not by force. Only security and compliance are non-negotiable.
Automate first, document second: A check that blocks the merge beats a page nobody reads. We still write down context and decisions, for people and for AI.
Independent teams: Tribes own their code, deployments, on-call and roadmaps. The platform gives them what they need without waiting on anyone.
Make CI fast: Profile, redesign and scale our GitHub Actions pipelines and runner infrastructure so feedback reaches engineers in minutes, not tens of minutes.
Make deploys safe: Build out canaries, automated rollbacks and progressive delivery so that shipping often stays low risk.
Secure the path to production: CI and deployments are part of our attack surface. Pin every action and dependency we run, give pipelines short-lived credentials with the least privilege they need, isolate runners, and make sure only signed, scanned images reach production.
Keep the platform reliable: CI and deployments are production for around 150 engineers. Set SLOs for them, alert on what matters, and fix the cause when they fail, not only the symptom.
Build our internal developer platform: Our in-house platform, written in Go, is both a CLI engineers use to work with the platform and a backend service that orchestrates our deployment process and exposes internal metadata. You'll shape where it goes next.
Prepare for multi-cluster and multi-region: Design the deployment model that lets us run Fresha across more clusters and regions without making engineers' lives harder.
Find the right balance: Decide what should be centralised and what teams should own, and design the platform so that big migrations are rare.
Own what you build: Design it, ship it, support it and keep improving it. Your users sit a few desks away and will tell you what's working.
GitHub Actions for CI
Golang for our internal developer platform and tooling
Kubernetes on AWS EKS, with Docker and Terraform
Services in Elixir, Ruby and TypeScript, using Kafka, gRPC, federated GraphQL, PostgreSQL and Redis, yaml, yaml, yaml.
OpenTelemetry/Datadog for observability
Experience: 5+ years building and running software in production.
Strong engineering fundamentals: You write well-structured, tested, maintainable code, and you treat internal tools with the same care as a customer-facing product.
Delivery experience: You've worked hands-on with CI/CD systems, deployment pipelines or developer tooling, and you understand what makes them fast, reliable and safe.
Security: You treat CI and deployments as part of the attack surface. You know the supply-chain risks in a pipeline and how to close them: pinned dependencies, short-lived credentials, least privilege and signed artifacts.
Systems thinking: You can reason about the trade-offs between central control and team autonomy, and turn them into tooling and standards people actually adopt.
Ownership: You can take a loosely defined problem, form an opinion backed by data, and see it through, including the migration work that comes after the build.
Production-first mindset: you make production safe to change instead of hard to reach. Ship small changes behind feature flags, roll them out step by step, watch them, and roll back fast, with no staging copy to hide behind.
Reliability: You've set SLOs for systems you own, been on call for them, and seen the postmortem actions through to done.
Nice to have: Go experience, Kubernetes, Terraform, or experience building internal developer platforms or CLIs.
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 FreshaLeverage: Make every engineer at Fresha faster. A minute off CI or a safer rollout pays off thousands of times a week.
Scale: ~3,000 deploys a week and millions of CI jobs a month, on a platform that's growing into multiple clusters and regions.
Influence: Join as the third engineer on the team and help set its technical direction from the start.
Challenge: Much of what we run was built for a smaller Fresha, and some of it needs a rebuild, not a patch. We want you to say so from your first week, back it with data, and lead the rebuild. This role is for someone with the courage to go against the status quo when they know what's better.
Screen Call - Video call with a member of the Talent Team (45-60min)
1st Stage - Technical video/in-person interview + system design and architecture (up to 2hours)
Final Stage - Video interview with the Head of Infrastructure / VP of Architecture (60min)
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