Careers

One theme, built in the open.

We make a HubSpot CMS theme and the sites that run on it. The work is public, the spec is written down, and nothing ships on the strength of looking finished.

Open roles

What we are looking for now.

Every role is on the theme and the sites built on it. If none of them is you but the work is, the form at the bottom of this page goes to the same place.

straighten

Product designer, design system

Own the type scale, the colour ramp and the component specs, and defend the numbers in review. Full-time, remote.

code

Front-end developer, HubSpot CMS

HubL, module fields and CSS custom properties. You would be building the modules a marketer edits without asking you. Full-time, remote.

fact_check

QA engineer, rendered pages

Measure the live site, reproduce what is reported, and refuse to close what has not been measured. Half of the register exists because of this work. Full-time, remote.

menu_book

Technical writer, documentation

Write the theme settings and module fields for the person who inherits the site, not for the one who installed it. Full-time, remote.

support_agent

Support engineer, buyer questions

Answer the messages that arrive through the contact form, turn the repeated ones into FAQs, and send the reproducible ones to the register. Full-time, remote.

A filterable project grid with photographs and captions
Templates

Page templates

A tab strip switching between preset, colour, typography and layout settings
Settings

Theme settings

A grid of video thumbnails with titles and durations
Modules

Section modules

What the work produces

The output is a folder somebody else edits.

Nothing here ships as a one-off page. A change is a field, a token or a module, and the test is whether a marketer who has never met you can use it without asking.

A comparison table with one column raised above the others
How the work runs

Three rules that decide most arguments.

They are written down rather than absorbed, which means a new person can hold a senior one to them in the first week.

straighten

The spec wins, or it changes

Type scale, colour, radius, spacing and component sizes are one document with measured numbers in it. Where the theme disagrees with the document, the theme is wrong. Where the document is wrong, you say so and it gets edited.

tune

Every value is a token

No hardcoded hex, no magic pixel, in the theme or in a module. A value that reaches the page any other way is a defect, however good it looks, because it is the one thing a buyer cannot change from theme settings.

fact_check

Nothing is done off a clean upload

Work is finished when it has been measured on a rendered page, with the number written down. A defect nobody has reproduced is not assigned, and a fix nobody has measured is not closed.

1

You send work

Something you made and two lines on what was hard about it. A cover letter is not read and a portfolio site is not required. Ends with a yes or a no, both of which are sent.

2

A conversation

Half an hour on what you have built and what you want to be doing next. It is not a quiz. Ends with both sides knowing whether the next step is worth booking.

3

A real piece of work

One item from the defect register, on a copy of the theme, scoped and agreed with you before it starts and small enough to fit an evening. Ends with a change we could ship and a conversation about how you got there.

4

An answer

A decision with the reasoning attached, including when it is a no. Ends there, or with an offer and a start date.

What you get

The parts of the job that are ours to promise.

Written as conditions of the work rather than as perks, because these are the ones we can be held to.

public

Work with your name on it

What you build goes on a marketplace listing and on this site, where anyone can click through it. That is uncomfortable in the first month and it is the reason the work is worth showing later.

schedule

Hours you set, remote

The work is asynchronous and written down, so it does not depend on everyone being awake at once. There is no core-hours rule and no expectation of an evening.

menu_book

A written spec you can point at

Design decisions arrive as measured numbers, not as an opinion delivered late. If a reviewer wants something changed, they point at the line in the document or they change the document.

bug_report

A defect register that names causes

Every defect has an owner, a measurement and a status. Nothing is closed on a code read, and nothing is assigned to you that somebody has not reproduced first.

edit_note

Permission to say it is wrong

The spec, the register and this page were all edited by somebody arguing with them. Bringing back the thing that was asked for, knowing it will not work, is the failure here.

group

One product, all the way through

You see a change from the argument about it to the page it lands on, without it being handed to a delivery team you never meet.

A URL, a repository, a file, a screenshot of something half-built. One paragraph on the part that did not work the first time is worth more than the finished thing beside it, because it is the only part that shows how you think.

It is not a test and there is no hidden point for writing one. Two sentences on what you want to be doing in a year is the part we read instead.

If the good work is under an agreement you cannot share, say so and describe it instead. Nobody is asked to break a contract to apply.

For the front-end role it shortens the first month considerably. For design, QA and writing it matters less than whether you can read a spec and argue with it.

Including the no. If a role closes while you are in it, you are told that rather than left in a pipeline.

A person reads the application and a person writes the reply. We would rather be slower than send you something nobody wrote.

Open application

None of the roles is you?

Send the thing you are proudest of and say what you want to be doing in a year. It goes to the same inbox as the applications and it is read the same way.

Send work, skip the cover letter a link and two sentences is a complete application

  • send One message, no account to create and no form with twelve fields
  • forum Two conversations, one of them about a real item from the register
  • assignment The work sample is a real register item, scoped and agreed before it starts
  • mark_email_read Every application gets an answer, including the no

Applications are kept and read again when a role opens, not deleted at the end of a search.