Client-Side Developer

Situation Publishing, the owner of The Register, is looking for a junior to mid-level client-side developer to join us in building one of the world’s great IT websites.

About Us

Situation Publishing is a global publisher of enterprise technology news. The Register is our flagship site and is arguably the biggest and most influential news site for IT Professionals in the world.

We are a well established business but with the mind of a startup. We have been a small business for most of our existence but have seen rapid expansion over the past couple of years which we expect to continue. We have a lot of very experienced people who all share a can-do attitude and do not like to overcomplicate things. We give people lots of room to grow and everyone is encouraged to contribute ideas.

About the Role

This is a remote role, with the option to work from our London office some of the time if desired.

You will be an employee or a contractor, depending on your location and your circumstances.

You will take charge of our website's client-side code and features, work closely with technical and non-technical members of the team, developing a good understanding of business requirements.

As our readership grows and revenue streams change, there is a steady flow of work. You will ensure that our website remains performant and that our journalists have the tools they need. We need your help in keeping the business profitable whilst ensuring that we can provide great free content to our readers.

One of your first mid-term goals might be to migrate bits of the administrative back-ends from static/templated HTML to something based on JS/Svelte. Or, if you are looking to diversify, to create a proof-of-concept in HTML/JS/CSS for a site redesign.

Skills & Qualities

We are a small team and we wear many hats; the right candidate will be knowledgeable, adaptable, and eager to learn.


  • Good communication (and listening) skills.
  • A willingness to learn.
  • Excellent written and verbal English.
  • Excellent reading comprehension and attention to detail.
  • Deep knowledge of JavaScript, CSS, HTML.
  • Deep knowledge of jQuery or similar frameworks.
  • Working knowledge of SEO and analytics.
  • Working Linux experience (we use Debian stable).
  • Good familiarity with version control software such as Git.


  • Experience with templating systems such as Template::Toolkit or Text::Xslate.
  • A working knowledge of Apache and nginx.
  • Some knowledge of design principles for the web, data driven design, user and A/B testing, responsive design.
  • A working knowledge of CSS preprocessors like SASS, LESS.
  • Some knowledge of reactive front-end libraries, like Svelte.

Our Tech Stack and Team

Our tech team is small, distributed, focused and has autonomy. You will be expected to produce great work without being enticed by a carrot or threatened by a stick. We don't always use the latest and greatest, and we don't always just “put it in the cloud”. We are not averse to either, but this isn't the best place to fill your CV with trendy buzzwords.

We broadly favour open source. We use SCSS, plain JavaScript, jQuery, Svelte, Debian, Apache, Nginx, Exim, Redis, MySQL/MariaDB, and PostgreSQL in our stack. We often write our own tools. We rely on Git for process and revision control.

You will be comfortable communicating with the wider team and the business via email, phone, instant messaging, video etc.


To apply, please send your CV to and include a cover letter describing why you’d like to work with us and what you think you could bring to our team. Please include:

  • Your gross salary/annual compensation expectations.
  • The script described in Grocery Basket Test, below.
  • A brief answer to one of the following:
    • What can make software hard to test?
    • Explain one thing that you most dislike about JavaScript.

If we like your CV and cover letter, we’ll contact you requesting you answer a short test before scheduling a video interview.

This position is open to residents of the United Kingdom, Switzerland, and the European Economic Area.

Grocery Basket Test

You have data in the following JSON format:


name is the name of a grocery product.

baskets is a list that contains the quantity in each basket sold.

Write a JavaScript script that, via “console.log” or a simple HTML document, displays for each product the total number of baskets and the total number of products. For example:

60 apples in 3 baskets
45 bananas in 4 baskets
  • The script need not accept any arguments; the above data can be hard-coded.
  • The script need not convert from JSON. You may choose to hard-code the data in a structure of your choice.
  • The script MUST calculate the results; it MUST NOT print hard-coded results.

Published 2021-07-09. Updated 2021-10-13.