Backend Engineer
Develop the services that retrieve vehicle records, preserve source context and deliver dependable report results.
Car Check helps people understand a used car’s history. We bring vehicle records together with clear explanations, keeping the source, timing and limits of the information close to each finding.
We care about the whole experience, from the reliability of a lookup to the words that help someone decide what to ask next.
The opportunity
We are looking for a Backend Engineer to build the services behind a dependable vehicle research product. A useful report starts with much more than a successful API response: requests need clear ownership, records need consistent meaning and failures need to leave the system in a state we can understand.
You will work on the boundaries between external providers, application services and stored account and report data. A source may respond slowly, return only part of a result or send information that does not match our expectations. Your work will help the product handle those situations without confusing a technical success with a complete answer.
This is a role for someone who likes making systems easier to reason about. You will contribute to architecture decisions, implement the details and give other engineers the tools to investigate problems without depending on undocumented knowledge.
What you’ll work on
- Design dependable service contracts. Define inputs, validation, response states and error behaviour for lookups, report generation and account workflows so callers know what each result means.
- Handle external dependencies deliberately. Implement timeouts, bounded retries and idempotent operations where needed, keeping provider failures from producing duplicate work or misleading results.
- Protect access and data integrity. Make authentication, authorisation and ownership checks explicit, and preserve consistent records when several operations happen at the same time.
- Make stored data maintainable. Develop schemas, migrations and queries that support the product’s needs while giving the team a safe way to investigate and change them.
- Build useful observability. Add actionable logs and operational signals that help trace a request, identify a failing dependency and understand the effect on customers.
- Test the failure paths. Exercise partial responses, interrupted workflows and invalid access, and document the recovery behaviour that engineers need when something goes wrong.
What you’ll bring
- You have built and operated APIs or application services, and can describe a reliability problem you investigated beyond the initial error message.
- You are comfortable with TypeScript or a comparable server language, SQL and relational data modelling, including transactions, constraints and query performance.
- You understand the difference between authentication and authorisation and can reason about access to data across requests, accounts and background work.
- You can evaluate operational tradeoffs around retries, consistency and external services without assuming that every failure should be hidden or automatically repeated.
- You write clear technical explanations, review changes with care and prefer service boundaries that another engineer can understand without a lengthy handover.
Useful, but not required
- Experience integrating data providers, document generation or workflows with several independently failing steps.
- Practical work with PostgreSQL access controls, asynchronous jobs or payment event processing.
- Experience improving incident investigation, recovery procedures or tests after an unexpected production failure.
Your first few months
- Map the lifecycle of a lookup and report, including access checks, data ownership and the points where external dependencies can fail.
- Improve one service boundary with a clear contract, focused failure tests and enough visibility to investigate its behaviour.
- Document a recurring operational risk and work with the team on a practical plan to reduce it.
How we work
Start with the buyer, follow the evidence and make the complex clear. We value thoughtful questions, shared learning and care in the details of what we build.
We work in focused pieces, make important decisions easy to follow and bring questions into the open while there is still time to act on them. You will have room to shape the work, with the responsibility to explain your choices, ask for help and follow through on the result.
Apply for this role
Describe a service or integration you owned and a difficult failure you investigated. We are interested in how you found the cause, chose a fix and made the system easier to operate afterwards.