Careers Design Senior Product Designer

Design · Open role

Senior Product Designer

  • Remote in Europe (UTC−1 to UTC+3)
  • Full-time
  • €78,000–92,000
  • Design team of 4
Apply for this role
A paperbark tree at the edge of a wetland, its cream and rose bark peeling in papery curls, with ferns at its foot and an open field notebook, a pencil and a survey flag on the bank.

About Paperbark

Rangers and ecologists record wildlife and plant surveys in places without signal: peat bogs, sea cliffs, the far end of a national park. Paperbark is the app they record them in. Every sighting, photo and GPS point is saved on the device first and syncs when there’s signal again, so a season of fieldwork never depends on one bar of 4G.

Our founder Elin started Paperbark after three months of her bat counts went into a river, notebook and all. Today we’re 40 people, profitable, and used by park services, conservation charities and research teams in 14 countries.

What you’ll do

  • Design how a ranger records a sighting in ten seconds, with cold hands, in the rain.
  • Lead the redesign of the survey builder, where ecologists plan a whole season of fieldwork.
  • Work in a trio with a product manager and an engineer, from the first sketch to the release.
  • Go out with our customers twice a year: a bird count, a river survey or a night of bat detecting.
  • Look after our design system across phone, tablet and web, together with the other designers.

What we’re looking for

  • Six or more years designing products that people depend on at work.
  • Strong interaction and visual craft, and the habit of testing ideas with real people early.
  • Experience with mobile apps, ideally ones that have to work offline, outdoors or in a hurry.
  • Clear writing. We’re remote and mostly asynchronous, so a lot of design happens in docs and comments.
  • Curiosity about the outdoors helps. You don’t need to know a curlew from a whimbrel.

What we offer

  • Remote in Europe Work from anywhere between UTC−1 and UTC+3.

  • Together twice a year The whole team meets in person, travel paid.

  • €150 for co-working Every month, if you’d rather not work from home.

  • 30 days of holiday Plus the public holidays where you live.

  • €1,500 to learn Every year, for courses, books and conferences.

  • Visa and relocation Sponsorship and a paid move to the Netherlands or Portugal.

How we hire

  1. Intro call with Noor 30 min

    Noor, our talent partner, tells you about the role and the team, and asks about you. Bring any questions: pay, time zones, what a normal week looks like.

  2. Portfolio conversation 1 hour

    Two of our designers ask about two or three of your projects: the problem, your part in it, and what you’d do differently now.

  3. The design exercise 90 min No homework

    A conversation, not a take-home test. Walk us through a project you’re proud of, then we sketch together on a real, already-shipped Paperbark screen. You get the screen a day ahead. No spec work.

  4. Meet the founders 45 min

    Elin and Tomás talk about where Paperbark is going, and you can ask them anything.

You’ll have a decision within two weeks of your intro call.

Questions before you apply?

Ask here and get an answer right away. Noor from our hiring team can join the conversation.

Other open roles

All four roles

How it works · Stand Inline

The last line of the job post answers back

Candidates have questions they won’t email a recruiter about: is it really remote, what does it pay, is the design exercise unpaid homework? Here they ask in the last line of the job post and get the answer right under it. When a question needs a person, like a visa, someone from the hiring team joins the same conversation.

Try it

  1. At the end of the post, click Ask anything about this role. A greeting and three suggestions fold out of the line.
  2. Pick a suggestion or type your own question. The conversation unfolds in the post and pushes the rest of the page down. Scroll up to check a detail: the sidebar’s link takes you back to your conversation.
  3. Ask for a person, for example about a visa. On your own site, a recruiter can take the chat over in Stand: the header switches from the AI Stand-in to their name, with a green dot instead of the AI badge.
  4. Or : scripted, nothing is sent.
Chats here use site="demo", Stand Chat's shared demo site. Its demo Stand-in reads the page's private prompt, but it may still decline to speak for a made-up employer. With your own Site ID, your own Stand-ins answer, trained on your website.

The element

<script type="module" src="stand-inline.js"></script>

<h2>Questions before you apply?</h2>
<p>Ask here and get an answer right away. Noor from our hiring team can join the conversation.</p>

<stand-inline
  site="YOUR-SITE-ID"
  look="line"
  grow="unfold"
  placeholder="Ask anything about this role"
  greeting="Hi! Ask me about the role, the team or how we hire."
  suggestions="Is it fully remote? | What’s the salary range? | What does the design exercise look like?"
  prompt="The visitor is reading the job post for a Senior Product Designer at Paperbark: remote within UTC−1 to UTC+3, €78,000–92,000, visas for the Netherlands and Portugal only… If something isn’t in these facts, say so. For visas, relocation or anything personal, offer to bring in Noor Haddad."
  analytics-id="careers-senior-product-designer">
</stand-inline>

Make it yours

It takes its font and text color from the page. Paperbark sets three tokens and a size, styles two parts, and uses data-state to point the sidebar back to an open conversation:

stand-inline {
  --si-accent: #1F4D3A;
  --si-visitor-bg: #EFE6D8;
  --si-max-height: min(76vh, 700px);
  font-size: 18px;
}

stand-inline::part(avatar) { background: #EBDDCB; color: #1F4D3A; }
stand-inline::part(suggestion) { border-radius: 8px; }

/* Once a conversation is going, the sidebar link points back to it. */
.when-talking { display: none; }
body:has(stand-inline[data-state="conversation"]) .when-idle { display: none; }
body:has(stand-inline[data-state="conversation"]) .when-talking { display: inline; }

Good to know

Copy this example

npx degit standchat/examples/stand-inline my-stand-inline