Software engineer

We’re fully remote, and we’ve built the company this way since the start in 2009, so you won’t be on your own, without support, or missing out on discussions at the office – there is no office.

We rely on good communication & collaboration (both within and across teams), and we’re still small enough that you’ll meet everyone. For day to day work, you’ll work on a team of 4-8 developers with a range of experience levels and strengths, and a dedicated product expert.

If you haven’t already, find out more about PKB – our service makes life better for millions of patients, healthcare professionals and carers. Our roll-out in NW Londonmakes us the UK’s largest patient portal, and we’re expanding into a global market. We start all projects, new features, and even bug fixes by understanding who our work will affect.

Our work focuses on a few major things:

  • expanding and improving the web application: patients, professionals, customer admins, and carers all use our web interface to work with & understand the data in patient records.
  • refactoring the early codebase, relying on our automated test coverage to migrate to better structures and microservices (we’re midway through this process)
  • integrations: customers send us medical data via our HL7v2 API, or via integrations with other major providers. We’re expanding a FHIR-based REST API (and our new Angular-based web app uses it already).
  • and architecturally – every “feature” project normally also includes related platform upgrades; we’re gradually moving up to nation-scale patient populations.

We talk every day (brief daily team stand-ups at a minimum; other regular calls only if they have clear goals/focus – ad-hoc calls any time it’s faster than typing).
Everyone is generally available for scheduled calls during core hours, something like 9 am – 4 pm London time. Most of us are parents, so we may fill in extra time in the early morning or evening.

We communicate mostly via Slack, with periodic calls & screensharing.
We track epics, stories & bugs in Jira; PRs go through GitHub.

We follow a scrum development process, estimating work complexity (not time) and iterating two weeks at a time, and all teams work closely with Product to understand & help shape projects from early stages.

Requirements

You’ll need Java experience; most of our codebase is in Java.

We’re expecting 1+ years of professional work experience.

Beyond that: we are not looking for people who “tick all the boxes” in a long list; we’re more interested if you:

  1. have some deep skills and interesting achievements – even if they are not directly related to this role
  2. are comfortable asking questions, and interested in expanding your knowledge
  3. willing and interested in taking a problem or spec all the way to delivery – this is a hands-on role

This is what our stack looks like – including both what we have, and where we want to go. You wouldn’t work with everything here, but you’ll get to learn a lot of it (and possibly teach others some of it):

  • Most of the current code runs inside Wildfly AS and is written in Java (8), using JEE and Spring.
  • Other services are mostly container-less, using Spring Boot or Dropwizard.
  • We also use Kotlin, Python, Go, bash, Clojure
  • Our legacy webapp uses Struts and JSPs; the next generation webapp we are gradually migrating to is based on Angular and REST APIs
  • PostgreSQL for relational data
  • Pulsar is going to be our messaging platform – PKB is on the path towards embracing reactive principles in system design.
  • Docker and Kubernetes for orchestration and development
  • Testing: end-to-end tests with a custom framework built on Selenium; integration & unit tests with Arquillian & JUnit
  • Prometheus and Grafana for time series data collection, reports and alerting.
  • We use both cryptography and standard infrastructure security to have a good defense in depth.
  • Industry-standard specifications like HL7v2 and FHIR serve as the basis of our APIs. It’s useful if you can contribute knowledge about these or if you would like to learn more about them.

Our dev teams are fairly independent, so they each need a range of expertise. Here are some specific requests we have from teams (not required, but let us know if you have deeper experience in any of these areas):

  • Code & architecture refactoring experience
  • Microservices & reactive programming
  • Devops: do you know containers well? Container orchestration?
  • SQL/RDBMS performance and best practices
  • Application security – OWASP risks; thinking about how to balance security with access for people with a wide range of technical experience
  • System/integration testing

Benefits

Fully-remote: manage your own working environment and schedule; pragmatic flexibility. We are mostly full-time but we make exceptions.

Competitive salary, benefits and equity options (including for non-UK contracts).

We’ll pay for your work computer; choose your OS & IDE (we’ll share the setups that have worked best for us)

We need diversity in our team to build a great global service, so we work actively to exclude bias from our hiring process and from our work culture. Your race, color, sex, sexual orientation, gender identity, religion, national origin, age, disability, or any other aspect of your personal life & history that aren’t harming your work will not block you from being hired and advancing your career with us. You will be treated with respect, kindness & a willingness to learn, and we’ll expect you to treat your colleagues the same way.

When your personal life does affect your work (it happens; more than half of our developers have small children at home, for example), our smart & flexible policies will help by default, and we’ll work with you to adapt your work/life integration sensibly.

Patients Know Best

Transforming healthcare by giving patients access and control of their personal health records.

Technology we use

Python
Java
Go
Kotlin
PostgreSQL
JIRA
Bash

More jobs in Patients Know Best