Skip to main content
Horizon Bop

About Horizon Bop

A practice built around judgement

Horizon Bop is an IT company working on custom software, cloud platforms and data systems. What defines the practice is not a single technology but the way decisions are made: slowly where it matters, quickly where it does not, and always in writing.

Software engineering desk with two monitors displaying code beside notebooks and sketches
Fig. 1 — Design discussion precedes implementation
Who we are

Who Horizon Bop is

Horizon Bop is a software engineering company. We are engaged to build new systems, to make existing ones dependable, and to advise where an architecture should go next. The work is delivered by small teams who stay with a system long enough to understand it properly.

We describe ourselves by the way we work rather than by claims we cannot evidence. There are no promises of speed without scope, no guarantees detached from constraints, and no assertions about results that belong to the organisations we work with.

Everything the company does starts from the same question: what will this system need to do two years from now, and what would make that change cheap rather than painful?

Approach to technology

Our approach to technology

Abstract diagram of connected system nodes drawn as fine ink lines on warm paper
Fig. 2 — Boundaries drawn before code is written

Technology choices are consequences of a problem, never a starting position.

We choose tools that are well understood, well documented and supportable by the team who will live with them. A mature database and a boring deployment pipeline usually beat a novel stack that only its author can operate. Where something newer is genuinely the better fit, we adopt it deliberately and record why.

Architecture is treated as a set of reversible decisions. We keep interfaces explicit, dependencies few and data models honest, so that a wrong call can be corrected without dismantling the system around it.

We also accept that software is read far more often than it is written. Clarity in naming, structure and documentation is part of the deliverable, not an optional extra.

Engineering values

Engineering values we hold to

  • Correctness first

    A feature is finished when its behaviour is defined, tested and observable — not when it renders.

  • Honest estimates

    Uncertainty is stated as uncertainty, with the assumptions that would change the answer.

  • Small changes

    Frequent, reviewable increments make risk visible early and rollbacks trivial.

  • Shared ownership

    No part of a system is allowed to depend on a single person's memory.

  • Written reasoning

    Architecture notes, decision records and readable commits are part of the work.

  • Restraint

    Features, services and abstractions are added only when their cost is understood.

Collaboration

Collaboration principles

Direct contact
Engineers speak with the people who own the outcome, without intermediaries rewriting the requirement.
Written by default
Decisions, open questions and risks are recorded so that progress is legible to anyone joining later.
Predictable rhythm
Short iterations, a fixed review cadence and a demonstrable increment at the end of each one.
Disagreement welcome
Technical objections are expected and examined; the strongest argument wins, not the loudest.
Handover as a goal
Every engagement is run so your team could take full ownership at any point.
Quality & security

Quality standards

Quality is enforced by process rather than goodwill. Changes are peer reviewed, automated tests guard the rules that matter, and pipelines refuse work that does not build, lint or pass its suite. Performance and accessibility are treated as functional requirements with thresholds, not as polish applied at the end.

When defects appear, the fix includes the reason the defect was possible: a missing test, an unclear boundary or an unvalidated assumption.

Security mindset

We assume any system with users is a target. Access is granted at the least privilege that works, secrets are held in managed storage, dependencies are monitored, and inputs are validated at the boundary rather than deep inside business logic.

Threats are discussed while the design is still cheap to change, and security review is part of ordinary code review rather than a separate gate at the end.

Long-term thinking

Long-term product thinking

Most of a system's cost arrives after the first release.

We plan for that period from the beginning: migrations that can run again, configuration that differs only by environment, logging that answers questions during an incident, and documentation that explains intent rather than restating code.

Roadmaps are treated as hypotheses. Instead of committing years ahead, we keep the architecture capable of turning — small deployable units, clear contracts and data that can be reshaped without a rewrite.

Enquiries are welcome by email at [email protected].