Full Stack Engineer
We are looking for a Lead Platform Engineer to lead the team behind web platform, the Laravel + Vue application that pharma marketing teams use to run and measure their campaigns. This is a technical management role: you lead a small team of developers and a QA engineer, and you keep writing code yourself. You propose how a feature should be built, write it down as an FRD, agree it with the CTO, and then take it through review, release and whatever it does in production. You report to the CTO and work day to day with our product lead, who decides what we build and why.
Together with the product lead, you co-own the web platform: how it works, how it feels to use, and where it goes next. When a feature is under-specified on the UX side, you initiate changes in user flow and interaction design, and bring in design support only for larger initiatives.
Requirements
General
- Product-minded: you can take a business goal from the product lead and turn it into a concrete user flow and interface decision, and you push back when a request does not serve the user
- 2+ years leading engineers as a tech lead, team lead or hands-on engineering manager: task breakdown, code review, mentoring, 1:1s
- 5+ years building and shipping web products as a full-stack engineer
- Experience carrying a whole product in production: releases, incidents, data correctness
- Comfortable in a fully remote team with hours overlapping EU timezones
- English B2 or above. Most of our communication is written and async
Technical
- Strong eye for UI/UX: you can critique an existing flow, spot friction, and ship the improvement without waiting for a designer. The current UI has real usability debt and raising that bar is part of the job
- Laravel in depth: Eloquent, queues, events, service providers, testing. We run Laravel 12 on PHP 8.3, with queues on Redis
- Vue: the SPA is Vue 2.7 with the Options API, Vuex and Vue Router, and there is no Composition API anywhere in it. Either Vue 2 or Vue 3 experience counts, as long as you can work inside an existing codebase and improve it. The rest of the frontend is dated too (Vite 2, bootstrap-vue 2, chart.js 2, vee-validate 2), so this is a frontend platform question rather than a framework upgrade. What we do about it, and when, is one of the first calls we will ask you to make with us
- PostgreSQL beyond CRUD: indexing, query plans, migrations against live tables. Production is Cloud SQL 14 while local and CI run 17, so a major-version upgrade is on the table
- Real SQL ability plus hands-on work with an analytical store: ClickHouse, BigQuery, Snowflake or similar. Our largest tables run to 1.5 billion rows, and Apache Druid is still in the hot path behind several controllers, so there are three analytical stores to hold in your head
- Writing FRDs and keeping technical documentation current: requirements, architecture decisions, API contracts, data models. We do not have this discipline today, and establishing it is a core part of the role rather than a bonus
- GCP at the service-design level: Cloud Run, Cloud SQL, GCS. You answer for what you deploy
- Docker and CI. GitHub Actions is primary, on a mix of self-hosted and GitHub-hosted runners, and a legacy Bamboo pipeline survives as a manual fallback for production deploys
- Automated testing as a habit. A mature Cypress E2E suite of 135 specs gates every pull request; PHPUnit coverage across 819 PHP files and 206 migrations is uneven, and there are no frontend unit tests at all. Closing that gap is part of the job
- Production debugging with Sentry and Laravel and nginx logs. Observability is thin today and improving it is yours to drive
Soft
- You think in user flows, not just tickets: you ask who is doing this, why, and what happens next before you ask how to build it
- You lead in practice: you split work for other people, review their code, unblock them, and say no when that is the right answer
- You write clearly in English: FRDs, decision records, review comments
- Analytical: you find the root cause before you propose a fix
- Task management: your board reflects what is actually happening, and you raise risks while there is still time to act on them
- Care with healthcare-professional data: access, consent, PII
AI baseline
AI-assisted development is how we ship, not something we are piloting. Concretely, what we expect from day one:
- Daily use of AI coding agents (Claude Code, Cursor, Codex or similar): required, not “I tried it once”
- 50%+ of the code you ship is drafted by agents and reviewed by you line by line
- Able to run 2–4 agents in parallel on isolated branches or worktrees and merge the results yourself
- You maintain agent context for your projects: CLAUDE.md / AGENTS.md, custom commands, rules files. At least 1 such artifact you wrote yourself and keep current
- You automate at least 1 recurring routine per month with an agent: reports, migrations, release checks, test generation
- You can tell when the agent is wrong and throw the output away. Whatever ships, you are the engineer on the hook for it. We ask about this in the interview
Nice to have
- Experience building or maintaining a design system or component library
- Proficiency with Figma or a similar design tool for sketching flows before they are built
- Experience shaping product requirements directly with a PM or founder, not only implementing them
- Ad-tech or marketing analytics background: impressions, clicks, attribution windows, audience matching
- Healthcare or pharma domain, especially consent and PII handling
- Infrastructure as code with Pulumi or Terraform. Our infrastructure is in Pulumi, in a separate repository
- Experience migrating a Vue 2 codebase to Vue 3
- TypeScript. There is none in the frontend today. Whether we introduce it, where we start, and whether the cost is worth paying is a call for this role to make
- Apache Druid
- BigQuery and ClickHouse cost and performance tuning
Responsibilities
- Own the user experience of the web platform: make day-to-day UI and user-flow decisions independently, and propose UX improvements that nobody asked for when you see the need
- Partner with the product lead on what gets built, not only how: challenge assumptions, propose alternatives, and advocate for the user in both design and technical decisions
- Lead a small team of 2–4 developers plus QA: task breakdown, code review, mentoring, input into hiring
- Stay hands-on: you write code yourself as well as distributing it
- Design how features are built (data model, API, UI, tests, rollout), write the FRD, and take it through review with the CTO before the work starts
- Keep technical documentation current after the feature ships: architecture, API contracts, data models
- Work directly with the product lead on weekly priorities
- Query and shape campaign data across PostgreSQL, BigQuery, ClickHouse and Druid, and keep dashboards fast
- Own releases and reliability: deploys across four production VMs with an NFS-shared release directory and automatic rollback, monitoring, alerting, incident response
- Look after the per-PR preview environments, where every pull request gets its own database clone and a routed environment
- Work with healthcare-professional data under our access, consent and PII rules
- Report to the CTO and agree architecture and technical standards with them
Tech stack
PHP 8.3 / Laravel 12 · Vue 2.7, Vuex, Vite · PostgreSQL 14 in production (17 locally and in CI), Redis · ClickHouse, BigQuery, Apache Druid · GCP, Docker, GitHub Actions · Sentry · PHPUnit, Cypress · Claude Code
What we offer
- Real ownership of a product zone: the UX of the platform is yours to shape, with the product lead as a partner rather than a gatekeeper
- Fully remote with flexible hours, overlapping EU timezones for syncs
- Direct access to the CTO. You bring architecture proposals and technical standards, we argue them out together, and the CTO signs off. What you will not get is a backlog handed down as tickets with the design already made
- Paid AI tooling, including Claude Code
- Dashboards over tables of up to 1.5 billion rows, and ad-platform APIs that fail in ways no documentation describes
- A small team with no bureaucracy, where decisions happen the same day